首页 / 常见问题 / 如何在接入集群中启用 Pod Debug 功能?

如何在接入集群中启用 Pod Debug 功能?

接入平台的集群,如需使用 Pod Debug 功能,需满足以下条件:

本文将以 标准 Kubernetes 集群 为例,为您介绍如何为集群下所有 控制节点 以及所有 计算节点 上的相关组件,开启 EphemeralContainers 功能开关。

开启控制节点上组件的功能开关

通过修改集群下 所有控制节点 上的 kube-apiserver.yamlkube-controller-manager.yamlkube-scheduler.yaml 配置文件,为相应组件开启 EphemeralContainers 功能开关。

操作步骤

  1. 在控制节点上执行以下命令行,进入文件所在目录。

    cd /etc/kubernetes/manifests/
  2. 执行以下命令行,参照示例分别修改 kube-apiserver.yamlkube-controller-manager.yamlkube-scheduler.yaml 文件中的容器启动参数。

    vi <配置文件名称>    

    提示:多个值之间用 , 分隔,若文件中缺失相应的配置项,请手动添加。

    示例

    spec:
      containers:
      - command:
        - <组件名称>    ## 配置文件对应的组件名称。kube-apiserver、kube-controller-manager、kube-scheduler
        - --feature-gates=EphemeralContainers=true,...
  3. 执行以下命令行,重启 kubelet。

    systemctl restart kubelet.service

开启计算节点上组件的功能开关

通过修改集群下 所有计算节点 上的 kubelet 组件的启动参数,为其开启 EphemeralContainers 功能开关。

方案一

  1. 在计算节点上执行以下命令行,参考示例在 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"
  2. 执行以下命令行,重启 kubelet。

    systemctl restart kubelet.service

方案二

  1. 在计算节点上执行以下命令行,参考示例在 config.yaml 文件中,为 featureGates 参数增加 EphemeralContainers: true 配置项。

    vi /var/lib/kubelet/config.yaml

    示例

    featureGates:
      IPv6DualStack: true
      EphemeralContainers: true    
  2. 执行以下命令行,重启 kubelet。

    systemctl restart kubelet.service