我想使用
kube-apiserver
来启用/禁用准入控制器 (例如 kube-apiserver --enable-admission-plugins=NamespaceLifecycle
),但我在任何地方都找不到它。
当我运行以下命令时,我在任何地方都看不到它:
# Running this:
kubectl get pods -n kube-system
# Shows only this:
# NAME READY STATUS RESTARTS AGE
# helm-install-traefik-fvs4z 0/1 Completed 0 10d
# local-path-provisioner-5ff76fc89d-rrntw 1/1 Running 4 10d
# coredns-854c77959c-vz4s2 1/1 Running 4 10d
# metrics-server-86cbb8457f-6kl5n 1/1 Running 4 10d
# svclb-traefik-cc7zx 2/2 Running 8 10d
# calico-kube-controllers-5dc5c9f744-6bwdj 1/1 Running 4 10d
# calico-node-xcjz8 1/1 Running 4 10d
# traefik-6f9cbd9bd4-b6nk7 1/1 Running 4 10d
我以为这可能是由于使用了Calico,但即使创建一个没有Calico的集群仍然显示没有
kube-apiserver
:
# Running this:
kubectl get pods -n kube-system
# Shows only this:
# NAME READY STATUS RESTARTS AGE
# local-path-provisioner-5ff76fc89d-d28gc 1/1 Running 0 2m31s
# coredns-854c77959c-lh78n 1/1 Running 0 2m31s
# metrics-server-86cbb8457f-xlzl2 1/1 Running 0 2m31s
# helm-install-traefik-nhxp4 0/1 Completed 0 2m31s
# svclb-traefik-hqndx 2/2 Running 0 2m21s
# traefik-6f9cbd9bd4-m42jg 1/1 Running 0 2m21s
kube-apiserver
在哪里?如何在 k3d 中启用和禁用控制器?
它不是通过静态 Pod 运行,因此它不会显示为 Pod。对于 k3s,您通常会将其安装为 systemd 服务单元。使用 k3d,您可以通过
docker ps
看到它。
对于过来寻找答案的人:
K3s 在单个 systemd 进程中运行所有控制平面组件。如果需要向其中之一添加额外的参数,则需要通过
k3s.service
。
对于您的示例,为了启用/禁用准入控制器:
将以下行添加到此文件中
/etc/systemd/system/k3s.service
--server-arg=--kube-apiserver-arg=enable-admission-plugins=NamespaceLifecycle
重新启动控制平面
如果您未处于 HA 模式,则可能会受到干扰。
systemctl daemon-reload && systemctl restart k3
systemctl logs k3s.service
希望有帮助。
参考资料: