【发布时间】:2020-03-26 22:34:45
【问题描述】:
我想自定义 kube-apiserver 的参数,以便检查正在发出的请求,以便调试失败的请求。但是,我不确定我需要修改什么。我知道 kube-apiserver 不能与 helm 一起部署,因为 helm 需要一个 API 服务器才能完成它的工作。所以它必须是通过其他一些引导方法来部署的,但是查看那种源代码我无法弄清楚那个方法是什么。
【问题讨论】:
标签: kubernetes kind
我想自定义 kube-apiserver 的参数,以便检查正在发出的请求,以便调试失败的请求。但是,我不确定我需要修改什么。我知道 kube-apiserver 不能与 helm 一起部署,因为 helm 需要一个 API 服务器才能完成它的工作。所以它必须是通过其他一些引导方法来部署的,但是查看那种源代码我无法弄清楚那个方法是什么。
【问题讨论】:
标签: kubernetes kind
kube-apiserver配置了一个静态manifest文件,存储在/etc/kubernetes/manifests/kube-apiserver.yaml。
所以在实物中找出容器的ID即Kubernetes控制平面节点:
docker ps|grep cluster-control-plane
在其中获取一个外壳:
docker exec -it 4aeedccce928 bash
安装编辑器(例如emacs)并编辑上述文件以添加/删除/替换the desired arguments:
apt-get update
apt-get install emacs-nox
emacs /etc/kubernetes/manifests/kube-apiserver.yaml
Kubernetes 会检测到文件变化并自动重启服务器,可以通过以下方式验证:
ps -Afl|grep kube-apiserver
如果它在启动时崩溃,您可以使用查找日志
apt-get install less
less /var/log/pods/kube-system_kube-apiserver-cluster-control-plane_*/*/*.log
如果容器根本无法启动,那里不会有任何日志文件 - 请参阅 Kubernetes 文档检查清单文件是否有语法错误。
【讨论】:
docker exec 位替换为 SSH 到您的控制平面节点。