Kubernetes Pod 未就绪

Han*_*rer 5 kubernetes

我对 Kubernetes 非常陌生。我从最近离开团队的另一位开发人员那里继承了一个副项目——实际上是一个正在进行的 POC。他在虚拟机上做了一个演示,在他突然离开之前我们仍然可以访问该演示。他离开后,我们可以查看他的演示,一切正常。一名团队成员重新启动了虚拟机,现在一切都坏了。我被指派去解决问题。除了 Kubernetes 部分之外,我已经能够恢复所有组件,所有堆栈跟踪都表明目前存在问题。

如前所述,我是 Kubernetes 的新手,因此我缺乏在网上进行正确搜索的词汇。

我运行了一些命令,并将其输出粘贴在下面。如果我理解正确的话,问题在于 k8s 部署未运行:kubectl get all

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
Run Code Online (Sandbox Code Playgroud)

我猜测问题在于 READY 状态为0/1

有人可以指导我如何让这个人回来吗?另外,我在网上看到很多厚重的文档,有没有一个浅库的地方可以让我深入研究 Kubernetes 的工作。我对这个机会感到非常兴奋,但它并不是一个顺利的开始。

Wil*_*.F. 2

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

  • 完成后,kubeadm resetkubeadm init的集群为空。

第一个问题:

我应用了这些更改,但现在当我运行时,kubectl get all我只得到第一行“service/kubernetes”,并且我不再得到任何有关app-service-5x7z 您可以给我提示如何完成该任务的任何信息[恢复部署]?

解决方案:

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

第二期:

这是我目前的情况。因为我不知道这个人使用了什么,所以我构建了 docker 映像,并更新了服务和部署 yaml 文件以使用它们。然后我运行 kubectl apply -f <yaml_folder> 成功了,但是当我运行时, kubectl get pods --watch 我看到以下内容: justpaste.it/3p9r1 有什么建议我可以调试并找到根本原因吗?我的理解是它无法拉取docker镜像。但由于我刚刚创建它并且它位于同一台计算机上(不在注册表中),所以不确定问题是什么。

解决方案:

来自PrePulledImages文档:

默认情况下,kubelet 将尝试从指定的注册表中提取每个映像。但是,如果 imagePullPolicy 容器的属性设置为 IfNotPresentNever,则使用本地映像(分别优先或排他)。所有 Pod 都可以读取任何预先拉取的图像。

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

创建Docker Hub 私有存储库以确保可用性和完整性也很好。