amazon-ec2 - Kubernetes中断, pod 刚刚消失,拒绝启动

标签 amazon-ec2 kubernetes kops

我正在听一些建议。

我们有一个在AWS上运行的Kubernetes(1.8.x)集群,使用KOPS进行了设置。 1个主节点和2个节点。

在周末,我们一半的 pod 消失了,并拒绝启动。部署仍然存在,但Pod无法运行。我尝试终止AWS中的节点,并自动将它们替换为Kubernetes,但仍未恢复Pod。

这是一个生产应用程序,因此将其放置约8个小时以自行恢复(不是)后,我使用KOPS删除了集群,并使用更新版本的Kubernetes成功地重新创建了整个集群。

整个体验令人不安,尤其是在我无法找出集群出什么问题的时候。

我需要以下帮助:

  • 我可以/应该检查什么以诊断问题?
  • 最初可能是什么导致了此问题?我意识到现在无法精确定位,但请随意猜测。
  • 如何减轻这种情况的 future 风险?

  • 非常感谢您的所有回复。

    最佳答案

    What could/should I have checked in order to diagnose the issue?


    journalctl -u kubelet.service和/或docker logs --tail=150 ${anything_that_talks_to_the_apiserver}查找错误消息。根据您对x509证书到期的经验,我猜整个集群将充斥着错误消息

    也很有可能是,因为固定期限后NotReady无法通过apiserver checkin ,因此您的节点变成了kubelet。如果您使用的是与apiserver通信的SDN,例如某些法兰绒设置或某些calico设置,则Pod网络连接也将开始失败,这是集群的大屠杀

    What could have conceivably caused the issue in the first place? I realise it's impossible to pinpoint it now, but please feel free to conjecture.



    证书始终为,其有效期包括开始时间和结束时间;结束时间可能非常长-10年,100年,无论如何,但是确实存在,并且当该时间过去时,证书现在无效,并且任何进行证书验证的人都会拒绝使用它。

    How can I mitigate the future risk of this happening?



    实际上,您可以通过多种方法来监视系统中重要证书的证书到期,包括方便使用的prometheus exporter returning probe_ssl_earliest_cert_expiry ,您可以根据该指标设置警报。现代的Kubernetes(1.8除外)允许集群旋转其自己的证书,从概念上讲完全避开了这一混乱局面。

    关于amazon-ec2 - Kubernetes中断, pod 刚刚消失,拒绝启动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55519136/

    相关文章:

    amazon-web-services - EC2 实例上的 HTTPS

    mysql - 在 EC2 上停止 MySql - CentOS

    ssh - Ansible:SSH 错误:unix_listener:对于 Unix 域套接字来说太长

    kubernetes - 我可以使用 ingress-nginx 来简单路由流量吗?

    amazon-web-services - Kubernetes Elastic Container Registry 授权失败

    kubernetes:部署仪表板(ui)时出错

    java - 如何将驻留在 Amazon ec2 实例中的 Tomcat 7 server.xml 文档库指向 Amazon S3 存储桶中的文件夹

    kubernetes - 当我运行 sudo minikube start --vm-driver=none 它给我错误

    nginx - Kubernetes Ingress 非根路径 404 Not Found

    kubernetes - kops 部署的自动现货定价