kubeadm 与 admission webhooks

kubeadm with admission webhooks

我有以下配置

cat kubeadm-conf.yaml 

apiVersion: kubeadm.k8s.io/v1beta1
kind: InitConfiguration
apiServerExtraArgs:
  enable-admission-plugins: NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook
networking:
  podSubnet: 192.168.0.0/16

但是,当我这样做时

ps -aux | grep admission
root     20697  7.4  2.8 446916 336660 ?       Ssl  03:49   0:21 kube-apiserver --authorization-mode=Node,RBAC --advertise-address=10.0.2.15 --allow-privileged=true --client-ca-file=/etc/kubernetes/pki/ca.crt --enable-admission-plugins=NodeRestriction

I only see the NodeRestriction

请让我知道是否有人可以帮助我确保 admission-webhook 确实在我的集群上 运行。

我认为 MutatingAdmissionWebhookValidatingAdmissionWebhook 没有根据您提供的输出通过 api-服务器正确传播。

我建议继续执行以下步骤以实现您的目标:

  1. 通过将所需的准入控制插件添加到 enable-admission-plugins Kubernetes API 服务器标志来检查和编辑 /etc/kubernetes/manifests/kube-apiserver.yaml 清单文件:

--enable-admission-plugins=NodeRestriction,DefaultStorageClass,MutatingAdmissionWebhook,ValidatingAdmissionWebhook

  1. 删除当前的 kube-apiserver Pod 并等待 Kubernetes 重新生成具有反映更改的新 Pod:

kubectl delete pod <kube-apiserver-Pod> -n kube-system

希望对您有所帮助,我已经在我的环境中成功检查了这些步骤。

有关 Kubernetes Admission Controllers 的更多信息,您可以在官方网站上找到 documentation

感谢您的回复,即便如此,发布 kubeadm 答案以防万一有人需要它,以下是正确的 kubeadm 配置:

apiVersion: kubeadm.k8s.io/v1beta1
kind: ClusterConfiguration
networking:
  podSubnet: 192.168.0.0/16
apiServer:
  extraArgs:
    enable-admission-plugins: "NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook"