如何在接入集群中启用 Pod Debug 功能?
接入平台的集群,如需使用 Pod Debug 功能,需满足以下条件:
- 
集群的 Kubernetes 版本大于 1.18。 
- 
已为集群下 所有控制节点 上的 kube-apiserver、kube-controller-manager、kube-scheduler 组件,开启了 EphemeralContainers 功能开关。 
- 
已为集群下 所有计算节点 上的 kubelet 组件,开启了 EphemeralContainers 功能开关。 
本文将以 标准 Kubernetes 集群 为例,为您介绍如何为集群下所有 控制节点 以及所有 计算节点 上的相关组件,开启 EphemeralContainers 功能开关。
开启控制节点上组件的功能开关
通过修改集群下 所有控制节点 上的 kube-apiserver.yaml、kube-controller-manager.yaml、kube-scheduler.yaml 配置文件,为相应组件开启 EphemeralContainers 功能开关。
操作步骤:
- 
在控制节点上执行以下命令行,进入文件所在目录。 cd /etc/kubernetes/manifests/
- 
执行以下命令行,参照示例分别修改 kube-apiserver.yaml、kube-controller-manager.yaml、kube-scheduler.yaml 文件中的容器启动参数。 vi <配置文件名称>提示:多个值之间用 ,分隔,若文件中缺失相应的配置项,请手动添加。示例 spec: containers: - command: - <组件名称> ## 配置文件对应的组件名称。kube-apiserver、kube-controller-manager、kube-scheduler - --feature-gates=EphemeralContainers=true,...
- 
执行以下命令行,重启 kubelet。 systemctl restart kubelet.service
开启计算节点上组件的功能开关
通过修改集群下 所有计算节点 上的 kubelet 组件的启动参数,为其开启 EphemeralContainers 功能开关。
方案一
- 
在计算节点上执行以下命令行,参考示例在 kubeadm-flags.env 文件中增加 --feature-gates=EphemeralContainers=true环境变量。vi /var/lib/kubelet/kubeadm-flags.env示例 KUBELET_KUBEADM_ARGS="--feature-gates=EphemeralContainers=true,CSIStorageCapacity=true --hostname-override=192.168.31.207 --network-plugin=cni --node-ip=192.168.31.207,2002::192:168:31:207 --node-labels=platform.tkestack.io/machine-ipv6-head=2002aa192a,platform.tkestack.io/machine-ipv6-tail=168a31a207 --pod-infra-container-image=192.168.31.206:60080/tkestack/pause:3.2"
- 
执行以下命令行,重启 kubelet。 systemctl restart kubelet.service
方案二
- 
在计算节点上执行以下命令行,参考示例在 config.yaml 文件中,为 featureGates 参数增加 EphemeralContainers: true配置项。vi /var/lib/kubelet/config.yaml示例 featureGates: IPv6DualStack: true EphemeralContainers: true
- 
执行以下命令行,重启 kubelet。 systemctl restart kubelet.service