微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

从 kubernetes-master 中删除 kube-apiserver仅供测试和理解

如何解决从 kubernetes-master 中删除 kube-apiserver仅供测试和理解

从 kubernetes-master 中删除 kube-apiserver 不会阻止 kubectl 查询 pod。一直明白,kube-apiserver负责和master通信。

我的问题:当 kube-apiserver 仍在重新启动时,kubectl 如何仍然能够查询 pod?是否有任何官方文档涵盖了这种行为?

enter image description here

解决方法

你的理解是正确的。 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 举报,一经查实,本站将立刻删除。