tencent cloud

容器服务

动态与公告
产品动态
公告
产品发布记录
产品简介
产品概述
产品优势
产品架构
应用场景
产品功能
基本概念
原生 Kubernetes 名词对照
容器服务高危操作
地域和可用区
开源组件
购买指南
购买指引
购买 TKE 标准集群
购买原生节点
购买超级节点
快速入门
新手指引
快速创建一个标准集群
入门示例
容器应用部署 Check List
集群配置
标准集群概述
集群管理
网络管理
存储管理
节点管理
GPU 资源管理
远程终端
应用配置
工作负载管理
服务和配置管理
组件和应用管理
弹性伸缩
容器登录方式
可观测配置
运维可观测性
成本洞察和优化
调度配置
调度组件概述
资源利用率优化调度
业务优先级保障调度
Qos 感知调度
安全和稳定性
容器服务安全组设置
身份验证和授权
应用安全
多集群管理
计划升级
备份中心
云原生服务指南
云原生 etcd
Prometheus 监控服务
TKE Serverless 集群指南
TKE 注册集群指南
实践教程
集群
Serverless 集群
调度
安全
服务部署
网络
发布
日志
监控
运维
Terraform
DevOps
弹性伸缩
容器化
微服务
成本管理
混合云
AI
故障处理
节点磁盘爆满排障处理
节点高负载排障处理
节点内存碎片化排障处理
集群 DNS 解析异常排障处理
集群 Kube-Proxy 异常排障处理
集群 API Server 网络无法访问排障处理
Service&Ingress 网络无法访问排障处理
Service&Ingress 常见报错和处理
Nginx Ingress 偶现 Connection Refused
CLB Ingress 创建报错排障处理
Pod 网络无法访问排查处理
Pod 状态异常与处理措施
授权腾讯云售后运维排障
CLB 回环问题
API 文档
History
Introduction
API Category
Making API Requests
Elastic Cluster APIs
Resource Reserved Coupon APIs
Cluster APIs
Third-party Node APIs
Relevant APIs for Addon
Network APIs
Node APIs
Node Pool APIs
TKE Edge Cluster APIs
Cloud Native Monitoring APIs
Scaling group APIs
Super Node APIs
Other APIs
Data Types
Error Codes
TKE API 2022-05-01
常见问题
TKE 标准集群
TKE Serverless 集群
运维类
隐患处理
服务类
镜像仓库类
远程终端类
事件类
资源管理类
服务协议
TKE Service Level Agreement
TKE Serverless Service Level Agreement
联系我们
词汇表

Service 基本功能

PDF
聚焦模式
字号
最后更新时间: 2024-12-23 11:41:09

控制台操作指引

创建 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]


帮助和支持

本页内容是否解决了您的问题?

填写满意度调查问卷,共创更好文档体验。

文档反馈