在Kubernetes中,一些高级特性正常运行的前提条件是将相关的准入模块处于enable状态。对于Kubernetes API Server来说,如果不恰当地配置了准入控制模块,它就不能正常工作或者某些功能也不会正常生效。
在Kubernetes API Server中有一个标志:--enable-admission-plugins,其值为一串用逗号连接的有序的准入模块列表,设置后就可在对象操作前执行一定顺序的准入模块调用,如下所示:
--enable-admission-plugins=NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota
Kubernetes默认创建的集群(版本1.10.4之后的版本)kube-apiserver中已经启用了插件MutatingAdmissionWebhook与ValidatingAdmissionWebhook。通过如下命令可以查看kubeapiserver对应的POD启用参数:
kubectl describe po -l component=kube-apiserver -n kube-system
Command:
kube-apiserver
--apiserver-count=500
--runtime-config=admissionregistration.k8s.io/v1alpha1
......
--admission-control=NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota
......