You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

创建启用Pod Security Admission的Kind集群时遇初始化超时问题求助

解决kind集群创建时API Server加载自定义配置超时问题

问题排查步骤

由于你使用了--retain参数,集群节点容器已被保留,先进入控制平面容器定位具体错误:

  1. 进入kind控制平面容器:
docker exec -it psa-with-cluster-pss-control-plane bash
  1. 查看kube-apiserver容器日志,这是定位启动失败原因的核心:
# 获取apiserver容器ID
APISERVER_ID=$(crictl --runtime-endpoint unix:///run/containerd/containerd.sock ps -a | grep kube-apiserver | awk '{print $1}')
# 查看容器日志
crictl --runtime-endpoint unix:///run/containerd/containerd.sock logs $APISERVER_ID
  1. 也可查看kubelet日志,了解容器启动失败的上下文信息:
journalctl -xeu kubelet

常见原因及解决方案

1. 自定义PS配置文件缺失

如果日志提示cluster-level-pss.yaml不存在,检查宿主机/tmp/pss目录下是否存在该文件:

ls -l /tmp/pss/cluster-level-pss.yaml
  • 若文件不存在,创建符合K8s v1.24版本的PodSecurity配置文件,示例如下:
apiVersion: apiserver.config.k8s.io/v1
kind: AdmissionConfiguration
plugins:
- name: PodSecurity
  configuration:
    apiVersion: podsecurity.admission.config.k8s.io/v1beta1
    kind: PodSecurityConfiguration
    defaults:
      enforce: "restricted"
      enforce-version: "v1.24"
      audit: "restricted"
      audit-version: "v1.24"
      warn: "restricted"
      warn-version: "v1.24"
    exemptions:
      usernames: []
      runtimeClasses: []
      namespaces: ["kube-system"]

2. 配置文件格式错误

K8s v1.24中PodSecurity Admission的配置API版本为podsecurity.admission.config.k8s.io/v1beta1(v1.25+升级为v1),若配置文件使用了错误的API版本或字段拼写错误,会直接导致apiserver启动失败。

  • 对照K8s v1.24的官方规范修正文件内容,确保所有字段格式、参数正确。

3. 文件权限不足

apiserver进程以非root用户运行,若宿主机上的配置文件权限过严,容器内进程无法读取:

# 调整宿主机上配置文件的权限
chmod 644 /tmp/pss/cluster-level-pss.yaml

重新创建集群

修正问题后,先清理现有故障集群,再重新创建:

# 删除故障集群
kind delete cluster --name psa-with-cluster-pss
# 重新创建集群
kind create cluster --name psa-with-cluster-pss --image kindest/node:v1.24.0 --config /tmp/pss/cluster-config.yaml

内容的提问来源于stack exchange,提问作者tstr

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.30 05:45:45