Kubernetes吊舱没有准备好

Kubernetes吊舱没有准备好,kubernetes,Kubernetes,我是库伯内特斯的新手。我从最近离开团队的另一个开发人员那里继承了一个附带项目——实际上是一个正在进行的POC。他在一个虚拟机上做了一个演示,在他突然离开之前,我们仍然可以访问这个虚拟机。在他离开后,我们可以看他的演示,一切正常。一名团队成员重新启动了虚拟机,现在一切都坏了。我被指派去解决问题。除了Kubernetes部分之外,我已经能够把所有组件都带回来了,所有堆栈跟踪都指出这是目前的问题 如前所述,我是库伯内特斯的新手,因此我缺乏在网上进行适当搜索的词汇 我已经运行了一些命令,并将它们的输出粘

我是库伯内特斯的新手。我从最近离开团队的另一个开发人员那里继承了一个附带项目——实际上是一个正在进行的POC。他在一个虚拟机上做了一个演示,在他突然离开之前,我们仍然可以访问这个虚拟机。在他离开后,我们可以看他的演示,一切正常。一名团队成员重新启动了虚拟机,现在一切都坏了。我被指派去解决问题。除了Kubernetes部分之外,我已经能够把所有组件都带回来了,所有堆栈跟踪都指出这是目前的问题

如前所述,我是库伯内特斯的新手,因此我缺乏在网上进行适当搜索的词汇

我已经运行了一些命令,并将它们的输出粘贴到下面。如果我理解正确,问题在于k8s部署未运行: kubectl获得全部

NAME                        TYPE        CLUSTER-IP      EXTERNAL-IPPORT(S)  AGE                                                 AGE
service/kubernetes          ClusterIP   10.96.0.1       <none>              443/TCP                                             14d
service/app-service-5x7z    NodePort    10.96.215.11    <none>              3000:32155/TCP,3001:32762/TCP,27017:30770/TCP       3d

NAME                                    READY   UP-TO-DATE  AVAILABLE   AGE
deployment.apps/app-deployment-5x7z     0/1     1           0           3d

NAME                                    DESIRED     CURRENT     READY       AGE
replicaset.apps/app-deployment-5x7z     1           1           0           3d
NAME TYPE CLUSTER-IP EXTERNAL-IPPORT年龄
service/kubernetes ClusterIP 10.96.0.1 443/TCP 14d
service/app-service-5x7z节点端口10.96.215.11 3000:32155/TCP,3001:32762/TCP,27017:30770/TCP 3d
姓名就绪最新可用年龄
deployment.apps/app-deployment-5x7z 0/1 10 3d
名称所需的当前就绪年龄
replicaset.apps/app-deployment-5x7z 1 1 0 3d
我猜问题在于就绪状态是0/1

有人能告诉我怎么才能把这家伙带回来吗?另外,我在网上看到了很多繁重的文档,有没有一个地方有一个浅浅的银行,我可以深入研究库伯内特斯的工作。我对这个机会感到非常兴奋,但它并不是一个平稳的开始。

通过重置节点

kubeadm reset -f
清理旧法兰绒装置

rm -rf /var/lib/cni/
rm -rf /run/flannel
rm -rf /etc/cni/

ip link delete cni0
ip link delete flannel.1
然后安装Kubernetes

kubeadm init --pod-network-cidr=10.244.0.0/16
安装法兰绒

kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/2140ac876ef134e0ed5af15c65e414cf26827915/Documentation/kube-flannel.yml

在你的解决方案上写下我的两分钱:

  • 执行
    kubeadm重置
    kubeadm初始化
    后,集群为空
第一个问题:

我应用了这些更改,但现在当我运行
kubectl get all
时,我只得到了第一行“service/kubernetes”,而不再得到任何关于
app-service-5x7z

你有没有可能给我一个提示,告诉我如何做到这一点[恢复部署]

解决方案:

  • 您需要找到负责部署集群的yaml文件,它可能被称为
    app deployment
    或类似的东西

第二期:

这是我目前的情况。因为我不知道这家伙用了什么,所以我构建了docker映像,并更新了服务和部署yaml文件以使用它们。然后,我运行了
kubectl apply-f
,成功了,但当我运行
kubectl get pods时,我看到了以下内容:有没有关于如何调试和找到根本原因的建议?我的理解是,它不能拉码头工人的形象。但由于我刚刚创建了它,并且它位于同一台机器上(不在注册表中),所以我不确定问题出在哪里

解决方案:

从文件:

默认情况下,kubelet将尝试从指定的注册表中提取每个图像。但是,如果容器的
imagePullPolicy
属性设置为
IfNotPresent
Never
,则使用本地映像(分别优先或独占)。 所有POD都将具有对任何预拉图像的读取权限

如果docker映像位于节点的本地注册表中,则必须在部署文件上设置
imagePullPolicy:Never
。请注意,映像必须出现在本地存储库的所有节点上,以确保可用性


还可以创建一个用于确保可用性和完整性的方法。

Hi@handomewayfaler请尝试按照下面提供的答案上的
kubeadm reset
步骤进行操作,以查看您是否消除了错误,如果没有,请使用当前状态更新您的问题,以便继续帮助您。我看到你提到你想更多地了解Kubernetes,如果你愿意,我可以为你提供一个答案,添加与你的问题相关的所有理论知识,只要让我知道。@handomewayfare我在下面的回答中跟随你的评论,我看到你在kubeadm重置后重新部署你的环境有困难。为了进一步帮助您,您需要找到负责部署集群的yaml文件。您可以将它们添加到原始问题中,我可以逐步向您介绍如何运行它们。它可能被称为
应用程序部署
或类似的东西。“让我知道,我会帮助你的。谢谢,”威洛夫说。所以我看了这本指南(),它非常有用。我现在正在进行部署。问题是之前的开发人员留下了大约20个不同的yaml文件(我不是开玩笑的)。所以我正在筛选它们,看看哪一个会起作用。很可能没有,我必须修改它才能工作。我会通知你的。谢谢你的支持。知道有人愿意帮忙总是一种好感觉。非常感谢。@handsomewayfaler如果docker映像位于节点的本地注册表中,您必须在部署文件上设置
imagePullPolicy:Never
。您提到有很多文件,但由于它只创建了这个部署,因此应该相对容易找到与pod名称匹配的
kind:deployment
的yaml。谢谢@willof。将imagePullPolicy设置为Never不会起作用。谢谢。我应用了这些更改,但现在当我运行
kubectl get all
时,我只得到了第一行“service/kubernetes”,不再得到任何关于
应用程序服务的信息