tencent cloud

文档反馈

手动服务注册

最后更新时间:2023-12-26 11:46:47

    简介

    借助 Istio 的 ServiceEntry、WorkloadGroup、WorkloadEntry 机制,可以在 TCM 中添加非 TKE 提供的集群中的服务,例如传统的 VM 服务、数据库服务等。如果仅需要外部服务可以在网格内能被,则可以以ServiceEntry的形式将外部服务注册到网格,例如云数据库服务。但如果期望在网格内像管理其他自动发现的K8S服务一样治理和观测外部服务,如部署在VM中的应用,则还需要通过WorkloadGroup、WorkloadEntry机制为该应用安装Sidecar。当前TCM暂不支持此步骤的自动化安装,你需要手工安装,详细指引可参考Virtual Machine Installation
    说明:
    概念介绍
    ServiceEntry 类似于 K8S 中的 Service 概念,某个服务通过 Service Entry 加入网格后,将可被网格内其他自动发现的服务按照路由规则访问。
    WorkloadGroup 类似于于 K8S 中的 Deployment 概念,用于管理 ServiceEntry 的部署。
    WorkloadEntry 类似于 K8S 中的 Pod 概念,用于映射一个具体的实体程序。

    ServiceEntry 重要字段说明

    字段名称
    字段格式
    字段说明
    spec.hosts
    string
    服务的 URL 中的 hostname,可以有多个。
    spec.ports
    Port[]
    服务端口号,可以有多个。
    spec.resolution
    string
    Static:使用静态的 endpoint ip 地址作为服务实例。
    DNS:通过 DNS 解析服务 endpoint ip 地址,多用于外部服务;申明的 endpoint 需使用 DNS 域名,在无 endpoint 情况下将解析服务为 hosts 域名。
    NONE:当服务无需 IP 解析时选择。
    spec.location
    string
    用于标记此服务是否在网格内,部分 Istio 能力特性不能在网格外服务使用,例如网格外的服务不支持mTLS。MESH_EXTERNAL 代表网格外的服务,MESH_INTERNAL 代表网格内服务。
    spec.endpoints
    String
    服务的接入点,可填写多个,但最终只会同时使用一个。

    WorkloadGroup 重要字段说明

    字段名称
    字段格式
    字段说明
    spec.metadata.label
    string
    用户关联 WorkloadEntry 的标签
    spec.template
    string
    用户生成 WorkloadEntry 的基本信息
    sepc.probe
    string
    WorkloadEntry 健康检查相关参数设置

    WorkloadEntry 重要字段说明

    字段名称
    字段格式
    字段说明
    spec.address
    string
    当前 endpoint 的地址,类似于 pod IP。
    spec.labels
    string
    当前 endpoint 的标签,用于与 Service Entry 关联。
    sepc.serviceAccount
    string
    sidecar 的权限信息,当需要为 endpoint 添加 sidecar 的时候需要指定。
    关于 Service Entry、Workload Entry 的详细介绍,请参见 Service Entry 详细介绍Workload Entry详细介绍

    手动注册服务

    TCM 当前支持在控制台添加 ServiceEntry,以及通过 yaml 的形式添加 ServiceEntry,如果您需要为其他非 K8S 服务安装由于 WorkloadEntry 需要安装 Sidecar 才能正常工作。
    YAML 配置示例
    控制台配置示例

    ServiceEntry

    apiVersion: networking.istio.io/v1alpha3
    kind: ServiceEntry
    metadata:
    name: external-svc-https
    spec:
    hosts:
    - api.dropboxapi.com
    - www.googleapis.com
    - api.facebook.com
    location: MESH_EXTERNAL
    ports:
    - number: 443
    name: https
    protocol: TLS
    resolution: DNS

    WorkloadGroup

    apiVersion: networking.istio.io/v1alpha3
    kind: WorkloadGroup
    metadata:
    name: reviews
    namespace: bookinfo
    spec:
    metadata:
    labels:
    app.kubernetes.io/name: reviews
    app.kubernetes.io/version: "1.3.4"
    template:
    ports:
    grpc: 3550
    http: 8080
    serviceAccount: default
    probe:
    initialDelaySeconds: 5
    timeoutSeconds: 3
    periodSeconds: 4
    successThreshold: 3
    failureThreshold: 3
    httpGet:
    path: /foo/bar
    host: 127.0.0.1
    port: 3100
    scheme: HTTPS
    httpHeaders:
    - name: Lit-Header
    value: Im-The-Best
    

    WorkloadEntry

    apiVersion: networking.istio.io/v1alpha3
    kind: WorkloadEntry
    metadata:
    name: details-svc
    spec:
    serviceAccount: details-legacy
    address: 2.2.2.2
    labels:
    app: details-legacy
    instance-id: vm1
    2. 单击 ID/名称,进入网格详情页面。
    3. 单击服务 > 新建,填写服务基本信息,即可将非容器化的第三方服务注册到网格服务中,如下图所示:
    
    
    
    联系我们

    联系我们,为您的业务提供专属服务。

    技术支持

    如果你想寻求进一步的帮助,通过工单与我们进行联络。我们提供7x24的工单服务。

    7x24 电话支持