gpt4 book ai didi

amazon-web-services - Kubectl 无法访问 kubernetes api。 k8s 部署不可达

转载 作者:行者123 更新时间:2023-12-02 12:12:04 25 4
gpt4 key购买 nike

所有 kubectl 命令(例如 kubectl get pods 和 kubectl proxy 等)都失败,并显示无法连接到 kubernetes api 服务器 (api.services.ourdomainname.com) 的错误。

可能是什么原因造成的:

我们试图在集群中再添加一个节点以增加容量。为此,我们运行了以下命令...

$ kops edit ig --name=ppe.services.ourdomainname.com nodes

$ kops upgrade cluster --name ppe.services.ourdomainname.com --yes

$ kops update cluster ppe.services.ourdomainname.com --yes

$ kops rolling-update cluster --yes

在我尝试进行滚动更新后发生了问题。更新主节点时基本上滚动更新失败。
 WARNING: Deleting pods not managed by ReplicationController, ReplicaSet, Job, DaemonSet or StatefulSet: etcd-server-events-ip-xx-xx-60-141.us-west-2.compute.internal, etcd-server-ip-xx-xx-60-141.us-west-2.compute.internal, kube-apiserver-ip-xx-xx-60-141.us-west-2.compute.internal, kube-controller-manager-ip-xx-xx-60-141.us-west-2.compute.internal, kube-proxy-ip-xx-xx-60-141.us-west-2.compute.internal, kube-scheduler-ip-xx-xx-60-141.us-west-2.compute.internal

pod "dns-controller-xxxx03014-fq2sj" evicted

pod "masked-tapir-aws-cluster-autoscaler-xxxx6cf8f-fpcqq" evicted

pod "kubernetes-dashboard-3313488171-t578p" evicted

node "ip-xx-xx-60-141.us-west-2.compute.internal" drained


I0501 17:30:23.679575 31176 instancegroups.go:237] Stopping instance "i-024deccc522cc2bf7", node "ip-xxx-xx-60-141.us-west-2.compute.internal", in group "master-us-west-2a.masters.ppe.services.ourdomainname.com".

I0501 17:35:24.345270 31176 instancegroups.go:161] Validating the cluster.

I0501 17:35:54.345805 31176 instancegroups.go:209] Cluster did not validate, will try again in "30s" util duration "5m0s" expires: cannot get nodes for "ppe.services.ourdomainname.com": Get https://api.ppe.services.ourdomainname.com/api/v1/nodes: dial tcp xx.xx.147.151:443: i/o timeout. ...

error validating cluster after removing a node: cluster did not validate within a duation of "5m0s"

在此之后,kubectl 停止工作。基于一些挖掘,我们然后运行 kops rolling-update cluster --yes --cloudonly .
这删除了旧的 Ec2 节点并添加了新的 EC2 节点。但没有解决问题。并使情况变得更糟。以前我们的应用程序能够访问我们的服务器,但在此命令运行后,现在即使我们的应用程序也无法访问服务器。本质上它破坏了 nginx 入口点,现在 AWS ELB 开始返回 500 表示它无法连接。正因为如此,我们的直播服务停止了! :-(

关于如何修复 Kubernetes 集群的任何想法?有什么方法可以找出无法访问 k8s api 服务器的原因吗?我们可以做些什么来恢复这种连接?
非常感谢您的帮助。

最佳答案

分享有关问题的学习以及我们为摆脱这些问题所做的工作……

看起来在 3 月份,dockerproject 存储库被删除,导致无法启动 api 服务器,因为 kubernetes 试图从那里下载某些依赖项。也没有 ssh key 来 ssh 进入这些盒子,这使得它更加复杂。 master 也在使用 t2.medium,这导致了问题,因为它耗尽了 cpu 积分。

我们做了什么:

  • 在 kops secret 中添加新的 ssh key 后更新集群,以便它与我们的 EC2 节点关联,我们可以 ssh 进入它们。
  • 升级主节点和节点以使用 m5.large 和 m5a.large
  • 更新 kubernetes (1.16.8)、kubectl (1.18.2)、kops (1.16.1)、helm 等以使用最新或更新的版本而不是旧版本以及 mongo 副本集依赖项也成为新版本 (3.15 .0)。
  • 关于amazon-web-services - Kubectl 无法访问 kubernetes api。 k8s 部署不可达,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61555327/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com