TkeServiceConfig 是腾讯云容器服务提供的自定义资源 CRD, 通过 TkeServiceConfig 能够帮助您更灵活的配置 LoadBalancer 类型的 Service ,及管理其中负载均衡的各种配置。
Service YAML 的语义无法定义的负载均衡的参数和功能,可以通过 TkeServiceConfig 进行配置。
使用 TkeServiceConfig 能够帮您快速进行负载均衡器的配置。通过 Service 注解 service.cloud.tencent.com/tke-service-config:<config-name>,您可以指定目标配置并应用到 Service 中。
注意:TkeServiceConfig 资源需要与 Service 处于同一命名空间。
TkeServiceConfig 并不会帮您直接配置并修改协议和端口,您需要在配置中描述协议和端口以便指定配置下发的监听器。在一个 TkeServiceConfig 中可以声明多组监听器配置,目前主要针对负载均衡的健康检查以及对后端访问提供配置。
通过指定协议和端口,配置能够被准确的下发到对应监听器:
spec.loadBalancer.l4Listeners.protocol
:四层协议spec.loadBalancer.l4Listeners.port
:监听端口apiVersion: cloud.tencent.com/v1alpha1
kind: TkeServiceConfig
metadata:
name: sample # 配置的名称
namespace: default # 配置的命名空间
spec:
loadBalancer:
l4Listeners: # 四层规则配置,适用于Service的监听器配置。
- protocol: TCP # 协议端口锚定Service的四层规则。必填,枚举值:TCP|UDP。
port: 80 # 必填,可选值:1~65535。
session: # 会话保持相关配置。选填
enable: true # 是否开启会话保持。必填,布尔值
sessionExpireTime: 100 # 会话保持的时间。选填,默认值:30,可选值:30~3600,单位:秒。
healthCheck: # 健康检查相关配置。选填
enable: true # 是否开启健康检查。必填,布尔值
intervalTime: 10 # 健康检查探测间隔时间。选填,默认值:5,可选值:5~300,单位:秒。
healthNum: 2 # 健康阈值,表示当连续探测几次健康则表示该转发正常。选填,默认值:3,可选值:2~10,单位:次。
unHealthNum: 3 # 不健康阈值,表示当连续探测几次健康则表示该转发异常。选填,默认值:3,可选值:2~10,单位:次。
timeout: 10 # 健康检查的响应超时时间,响应超时时间要小于检查间隔时间。选填,默认值:2,可选值:2~60,单位:秒。
scheduler: WRR # 请求转发方式配置。WRR、LEAST_CONN、IP_HASH分别表示按权重轮询、最小连接数、按IP哈希。选填,枚举值:WRR|LEAST_CONN。
internetMaxBandwidthOut: 100 # 最大出带宽,仅对公网属性的LB生效。选填,可选值:0~2048,单位Mbps。
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app: jetty
name: jetty-deployment
namespace: default
spec:
progressDeadlineSeconds: 600
replicas: 3
revisionHistoryLimit: 10
selector:
matchLabels:
app: jetty
strategy:
rollingUpdate:
maxSurge: 25%
maxUnavailable: 25%
type: RollingUpdate
template:
metadata:
creationTimestamp: null
labels:
app: jetty
spec:
containers:
- image: jetty:9.4.27-jre11
imagePullPolicy: IfNotPresent
name: jetty
ports:
- containerPort: 80
protocol: TCP
- containerPort: 443
protocol: TCP
resources: {}
terminationMessagePath: /dev/termination-log
terminationMessagePolicy: File
dnsPolicy: ClusterFirst
restartPolicy: Always
schedulerName: default-scheduler
securityContext: {}
terminationGracePeriodSeconds: 30
apiVersion: v1
kind: Service
metadata:
annotations:
service.cloud.tencent.com/tke-service-config: jetty-service-config
# 指定已有的 tke-service-config
# service.cloud.tencent.com/tke-service-config-auto: true
# 自动创建 tke-service-config
name: jetty-service
namespace: default
spec:
ports:
- name: tcp-80-80
port: 80
protocol: TCP
targetPort: 80
- name: tcp-443-443
port: 443
protocol: TCP
targetPort: 443
selector:
app: jetty
type: LoadBalancer
该示例中包含以下配置:
jetty-service-config
负载均衡配置。apiVersion: cloud.tencent.com/v1alpha1
kind: TkeServiceConfig
metadata:
name: jetty-service-config
namespace: default
spec:
loadBalancer:
l4Listeners:
- protocol: TCP
port: 80
healthCheck:
enable: false
- protocol: TCP
port: 443
session:
enable: true
sessionExpireTime: 3600
healthCheck:
enable: true
intervalTime: 10
healthNum: 2
unHealthNum: 2
timeout: 5
scheduler: LEAST_CONN
该示例中包含以下配置:
名称为 jetty-service-config
。且在四层监听器配置中,声明了以下两段配置:
? kubectl apply -f jetty-deployment.yaml
? kubectl apply -f jetty-service.yaml
? kubectl apply -f jetty-service-config.yaml
? kubectl get pods
NAME READY STATUS RESTARTS AGE
jetty-deployment-8694c44b4c-cxscn 1/1 Running 0 8m8s
jetty-deployment-8694c44b4c-mk285 1/1 Running 0 8m8s
jetty-deployment-8694c44b4c-rjrtm 1/1 Running 0 8m8s
? kubectl get service jetty
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
jetty LoadBalancer 10.127.255.209 150.158.220.237 80:31338/TCP,443:32373/TCP 2m47s
# 获取TkeServiceConfig配置列表
? kubectl get tkeserviceconfigs.cloud.tencent.com
NAME AGE
jetty-service-config 52s
# 更新修改TkeServiceConfig配置
? kubectl edit tkeserviceconfigs.cloud.tencent.com jetty-service-config
TkeServiceConfig.cloud.tencent.com/jetty-service-config edited
SVN部署完成后,您可以下载项目到本地机器,还可以提交本地修改到服务端系统库、...
上个月,2020世界人工智能大会(WAIC)在上海开幕,华人运通与微软(亚洲)宣布...
高防服务器 租用哪个好?高防 服务器租用 ,适合易受到攻击的行业网站或应用,因...
虚拟主机租用跟 服务器租用 是两个不同的概念,是两种不同的服务,简单的来说,...
高硬防 服务器租用 网站被攻击了怎么办?游戏被攻击了怎么办?其实一般常见的攻...
摘要 Golang 提供了简洁的 go 关键字来让开发者更容易的进行并发编程,同时也提...
伸缩活动取消是指,定时任务时间到或者告警伸缩的条件达到,伸缩活动被触发,但...
支持使用备份恢复系统盘,恢复系统盘前需要将系统盘从服务器上卸载。 您也可以通...
代码中的很多操作都是Eager的,比如在发生方法调用的时候,参数会立即被求值。总...
TOP云 (west.cn)9月14日讯,海外消息,近日威瑞信发布了8月份 域名注册 热门关...