最近更新时间:2024-09-10 16:07:52
Cloud Controller Manager(CCM)提供Kubernetes与金山云网络产品的对接能力,例如SLB、VPC等。CCM主要提供负载均衡的创建与管理功能,当Service的类型设置为Type=LoadBalancer
时,CCM组件会为该Service创建或配置金山云负载均衡SLB,包括SLB实例、监听器、后端服务器等资源。当Service对应的后端Endpoint或者集群节点发生变化时,CCM会自动更新SLB的后端服务器组。
CCM作为系统组件,会随集群创建时默认安装,关于如何在Service中使用Annotations来指定负载均衡相关配置,可以参考通过金山云负载均衡访问服务。
若您需对集群内CCM组件版本进行更新,可更新CCM镜像至目标版本,示例如下:
# kubectl set image deployment/cloud-controller-manager -n kube-system cloud-controller-manager=hub-{region-code}.kce.ksyun.com/ksyun/cloud-controller-manager:v1.32-mp
注:不同地域镜像地址中{region-code}请参考支持地域。
关于各版本的特性说明,请参考版本更新。
版本号 | 更新时间 | 更新内容 | 镜像地址 |
---|---|---|---|
v1.32 | 2022.09.20 | 1. 指定负载均衡类型为 internal 时,必须指定子网ID;若不指定将报错创建失败。此更新是为避免老版本中默认创建出公网负载均衡可能带来的问题。 | hub-{region-code}.kce.ksyun.com/ksyun/cloud-controller-manager:v1.32-mp |
通过环境变量配置默认开启健康检查
CCM的默认配置中,创建负载均衡默认不开启健康检查。若您需要健康检查默认开启,可以通过修改deployment/cloud-controller-manager来进行全局配置,避免在每个service中通过annotation配置。
# kubectl edit deploy cloud-controller-manager -n kube-system
在CCM中增加如下环境变量:
containers:
- env:
- name: DEFAULT_HEALTHCHECK_STATE
value: start
开启此功能后,创建负载均衡时将为监听器默认开启健康检查,支持TCP和UDP协议,不支持HTTP和HTTPS。
配置IPHash和MasterSlave转发
IPHash:转发方式支持TCP和UDP协议,通过在annotations中添加指定。
metadata:
annotations:
service.beta.kubernetes.io/ksc-loadbalancer-method: "IPHash"
MasterSlave:转发方式支持TCP和UDP协议,添加的后端服务器有且只有两台,为一主一备的配置。
在annotations通过 service.beta.kubernetes.io/ksc-loadbalancer-master-slave
来指明后端服务器,通过逗号隔开,第一个为主机,第二个为备机。
metadata:
annotations:
service.beta.kubernetes.io/ksc-loadbalancer-method: "MasterSlave"
service.beta.kubernetes.io/ksc-loadbalancer-master-slave: "主机ID,备机ID"
纯净模式