配置bci-profile
更新时间:2025-03-21
为了支持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模板如下:
Plain Text
1apiVersion: v1
2kind: ConfigMap
3metadata:
4 name: bci-profile
5 namespace: kube-system
6data:
7 config: |
8 {
9 "region": "gz",
10 "clusterID": "example-cluster-id",
11 "subnets": [
12 {
13 "subnetID": "subnet-12345",
14 "logicalZone": "zone-a"
15 },
16 {
17 "subnetID": "subnet-67890",
18 "logicalZone": "zone-b"
19 }
20 ],
21 "securityGroupID": "sg-abcdef",
22 "enableReserveFailedPod": true,
23 "enableForceInjectDNSConfig": false,
24 "enableForceInjectDNSConfig": false,
25 "disableAutoMatchImageCache": false,
26 "dnsConfig": {
27 "nameservers": [
28 "169.254.20.10",
29 "172.21.0.10"
30 ],
31 "searches": [
32 "default.svc.cluster.local",
33 "svc.cluster.local",
34 "cluster.local"
35 ],
36 "options": [
37 {
38 "name": "ndots",
39 "value": "3"
40 },
41 {
42 "name": "attempts",
43 "value": "2"
44 },
45 {
46 "name": "timeout",
47 "value": "1"
48 }
49 ]
50 }
51 }
修改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 |
enableAutoInjectKubeProxy | 是否自动注入kube-proxy到pod中,注入后可在BCI pod中访问k8s Cluster IP,默认为false |
disableAutoMatchImageCache | 是否禁用自动匹配镜像缓存,如果为true,则会禁用创建并且使用自动匹配镜像缓存,默认为false |
enableForceInjectDNSConfig | 是否强制注入自定义DNS配置,如果为true,则强制注入自定义DNS配置,默认为false |
dnsConfig | BCI Pod配置的自定义DNS 配置,默认为null |
子网示例:
Plain Text
1 "subnets": [
2 {
3 "subnetID": "subnet-12345",
4 "logicalZone": "zone-a"
5 },
6 {
7 "subnetID": "subnet-67890",
8 "logicalZone": "zone-b"
9 }
10 ],
dnsConfig配置示例:
Plain Text
1 "dnsConfig": {
2 "nameservers": [
3 "169.254.20.10",
4 "172.21.0.10"
5 ],
6 "searches": [
7 "default.svc.cluster.local",
8 "svc.cluster.local",
9 "cluster.local"
10 ],
11 "options": [
12 {
13 "name": "ndots",
14 "value": "3"
15 },
16 {
17 "name": "attempts",
18 "value": "2"
19 },
20 {
21 "name": "timeout",
22 "value": "1"
23 }
24 ]
25 }