如何解决从 kubernetes-master 中删除 kube-apiserver仅供测试和理解
从 kubernetes-master 中删除 kube-apiserver 不会阻止 kubectl 查询 pod。一直明白,kube-apiserver负责和master通信。
我的问题:当 kube-apiserver 仍在重新启动时,kubectl 如何仍然能够查询 pod?是否有任何官方文档涵盖了这种行为?
解决方法
你的理解是正确的。 Kubernetes API 服务器验证和配置 api 对象的数据,包括 pod、服务、复制控制器等。 API Server 为 REST 操作提供服务,并为集群的共享状态提供前端,所有其他组件通过它进行交互。因此,如果您的 api-server
pod 遇到一些问题,您将无法让您的客户与其进行通信。
实际情况是,当您删除 api-server
pod 时,它会立即重新创建,因此您的客户端能够连接并获取数据。
为了提供一个例子,我通过修改 kube-apiserver.yaml
中的 /etc/kubernetes/manifests
文件模拟了 api-server pod 故障:
➜ manifests pwd
/etc/kubernetes/manifests
我立即无法再连接到 api-server
:
➜ manifests kubectl get pods -A
The connection to the server 10.128.15.230:6443 was refused - did you specify the right host or port?
在 docker 桌面中获取这些清单可能很棘手,这取决于您在哪里运行它。请查看 this 案例,其中的答案显示了解决方案。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。