tencent cloud

文档反馈

Service 基本功能

最后更新时间:2023-03-31 09:53:26

    控制台操作指引

    创建 Service

    1. 登录 容器服务控制台,选择左侧导航栏中的集群
    2. 集群管理页面,单击需要创建 Service 的集群 ID,进入集群基本信息页。
    3. 选择服务与路由 > Service,在 Service 页面单击新建。如下图所示:
    
    4. 新建 Service 页面,根据实际需求,设置 Service 参数。关键参数信息如下:
    服务名称:自定义。
    命名空间:根据实际需求进行选择。
    访问设置:请参考 服务访问方式说明 进行设置。
    (选填)高级设置
    External TrafficPolicy
    Cluster:默认均衡转发到工作负载的所有 Pod。
    Local:能够保留来源 IP,并可以保证公网、VPC 内网访问(LoadBalancer)和主机端口访问(NodePort)模式下流量仅在本节点转发。Local 转发使部分没有业务 Pod 存在的节点健康检查失败,可能存在流量不均衡的转发的风险。
    说明
    如果 Service 使用了 Local 方式,当 Pod 从 TKE 节点调度到超级节点,或者从超级节点调度到 TKE 节点的时候会出现断流,因为 Service 仅会选择本地的服务端点。
    Session Affinity:如果要确保来自特定客户端的连接每次都传递给同一个 Pod, 您可以通过设置 Service 的.spec.sessionAffinity为 ClientIP 来设置基于客户端 IP 地址的会话亲和性(默认为 None)。
    Workload 绑定:引用一个存量的 Workload,或自定义标签,该 Service 会根据自定义的标签选择拥有这些标签的 Workload。
    说明
    如需使用已有负载均衡器,请参考 使用已有 CLB
    由于4层 CLB 仅限制 CLB VIP + 监听器协议 + 后端 RS VIP + 后端 RS 端口4元组唯一,且未包含 CLB 监控端口。因此不支持 CLB 监听端口不同,协议及 RS 相同的场景。容器服务也不支持同一个业务对外开放相同协议的不同端口。
    5. 单击创建 Service,完成创建。

    更新 Service

    更新配置

    1. 登录 容器服务控制台,选择左侧导航栏中的集群
    2. 集群管理页面,单击集群 ID,进入集群基本信息页。
    3. 选择服务与路由 > Service,在 Service 页面单击 Service 所在行右侧的更新配置。如下图所示:
    
    4. 更新访问方式页面,根据实际需求进行访问设置。
    5. 设置完成后,单击更新访问方式即可。

    编辑 YAML

    1. 选择服务与路由 > Service,在 Service 页面单击 Service 所在行右侧的编辑YAML
    2. 编辑Yaml 页面,根据实际需求编辑 YAML 后单击完成即可。

    删除 Service

    1. 登录 容器服务控制台,选择左侧导航栏中的集群
    2. 集群管理页面,单击集群 ID,进入集群基本信息页。
    3. 选择服务与路由 > Service,在 Service 页面单击 Service 所在行右侧的删除。如下图所示:
    

    Kubectl 操作 Service 指引

    YAML 示例

    kind: Service
    apiVersion: v1
    metadata:
    ## annotations:
    ## service.kubernetes.io/qcloud-loadbalancer-internal-subnetid: subnet-xxxxxxxx ##若是创建内网访问的 Service 需指定该条 annotation
    name: my-service
    spec:
    selector:
    app: MyApp
    ports:
    - protocol: TCP
    port: 80
    targetPort: 9376
    type: LoadBalancer
    说明:
    kind:标识 Service 资源类型。
    metadata:Service 的名称、Label 等基本信息。
    metadata.annotations:Service 的额外说明,可通过该参数设置腾讯云容器服务的额外增强能力。
    spec.selector:该 Service 会根据这里标签选择器里的标签,选择拥有这些标签的 Workload。
    spec.type:标识 Service 的被访问形式。
    ClusterIP:在集群内部公开服务,可用于集群内部访问。
    NodePort:使用节点的端口映射到后端 Service,集群外可以通过节点 IP:NodePort 访问。
    LoadBalancer:使用腾讯云提供的负载均衡器公开服务,默认创建公网负载均衡,指定 annotations 可创建内网负载均衡。
    默认用户可以创建的内网或外网的 CLB 数量分别是100个,如果您需要使用的数量超过100时,可通过 提交工单 提升负载均衡 CLB 的配额。
    Service 和 CLB 之间配置的管理和同步是由以 CLB ID 为名字的 LoadBalancerResource 类型的资源对象,请勿对该 CRD 进行任何操作,否则容易导致 Service 失效。
    ExternalName:将服务映射到 DNS,仅适用于 kube-dns1.7及更高版本。

    创建 Service

    1. 参考 YAML 示例,准备 Service YAML 文件。
    2. 安装 Kubectl,并连接集群。操作详情请参见 通过 Kubectl 连接集群
    3. 执行以下命令,创建 Service YAML 文件。
    kubectl create -f Service YAML 文件名称
    例如,创建一个文件名为 my-service.yaml 的 Service YAML 文件,则执行以下命令:
    kubectl create -f my-service.yaml
    4. 执行以下命令,验证创建是否成功。
    kubectl get services
    返回类似以下信息,即表示创建成功。
    NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
    kubernetes ClusterIP 172.16.255.1 <none> 443/TCP 38d

    更新 Service

    方法1

    执行以下命令,更新 Service。
    kubectl edit service/[name]

    方法2

    1. 手动删除旧的 Service。
    2. 执行以下命令,重新创建 Service。
    kubectl create/apply

    删除 Service

    执行以下命令,删除 Service。
    kubectl delete service [NAME]
    
    联系我们

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

    技术支持

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

    7x24 电话支持