配置bci-profile
更新时间:2025-01-14
为了支持CCE Virtual Kubelet组件(VK)能动态热更新配置,BCI支持了bci-profile功能。
- 更新配置时无需重启VK。
- 对于新创建的BCI Pod,可以即时生效更新后的配置;对于存量BCI Pod,需要滚动发布后才能生效更新后的配置。
注意事项
使用该功能时,请确保集群中的VK(cce-virtual-kubelet组件)为最新版本。关于如何升级组件,请参见CCE Virtual Kubelet组件说明文档。
配置说明
创建Pod时,系统会读取kube-system命名空间下的bci-profile配置文件(名为bci-profile的ConfigMap),按其data配置来创建Pod。您可以通过kubectl get cm -n kube-system bci-profile -o yaml命令查看bci-profile的YAML。bci-profile的YAML模板如下:
apiVersion: v1
kind: ConfigMap
metadata:
name: bci-profile
namespace: kube-system
data:
config: |
{
"region": "gz",
"clusterID": "example-cluster-id",
"subnets": [
{
"subnetID": "subnet-12345",
"logicalZone": "zone-a"
},
{
"subnetID": "subnet-67890",
"logicalZone": "zone-b"
}
],
"securityGroupID": "sg-abcdef",
"enableReserveFailedPod": true,
"dnsConfig": {
"nameservers": [
"169.254.20.10",
"172.21.0.10"
],
"searches": [
"default.svc.cluster.local",
"svc.cluster.local",
"cluster.local"
],
"options": [
{
"name": "ndots",
"value": "3"
},
{
"name": "attempts",
"value": "2"
},
{
"name": "timeout",
"value": "1"
}
]
}
}
修改bci-profile
方式一: 通过kubectl edit命令,注意配置内容需要满足json语法 kubectl edit configmap bci-profile -n kube-system
方式二:通过容器服务管理控制台
- 登录容器服务管理控制台。
- 在集群页面,找到目标集群,单击集群名称。
- 在集群管理页的左侧导航栏,选择配置管理>配置项。
- 选择命名空间为kube-system。
- 找到bci-profile,单击YAML编辑。
更新配置项
data的config字段包含的子网、安全组等固定配置项,以json方式存储,您可以根据需要进行更新,更新后的配置可以即时生效(无需重启VK)。注意,如下配置为均为集群级别的配置项,即在创建BCI Pod时,如果没有额外配置,会采用bci-profile中的配置。 支持更新的配置项如下:
配置项 | 说明 |
subnets | BCI Pod运行的默认子网列表,需同时写出子网id和逻辑可用区;默认为VK组件安装时使用的子网参数 |
securityGroupID | BCI Pod所属安全组,默认为VK组件安装时参数,如 "securityGroupID": "sg-abcdef" |
enableReserveFailedPod | 是否自动保留失败的BCI Pod,默认为false |
dnsConfig | BCI Pod配置的自定义DNS 配置,默认为null |
子网示例:
"subnets": [
{
"subnetID": "subnet-12345",
"logicalZone": "zone-a"
},
{
"subnetID": "subnet-67890",
"logicalZone": "zone-b"
}
],
dnsConfig配置示例:
"dnsConfig": {
"nameservers": [
"169.254.20.10",
"172.21.0.10"
],
"searches": [
"default.svc.cluster.local",
"svc.cluster.local",
"cluster.local"
],
"options": [
{
"name": "ndots",
"value": "3"
},
{
"name": "attempts",
"value": "2"
},
{
"name": "timeout",
"value": "1"
}
]
}