我对 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 的工作。我对这个机会感到非常兴奋,但它并不是一个顺利的开始。
写下我对你的解决方案的两分钱:
kubeadm reset您kubeadm init的集群为空。第一个问题:
我应用了这些更改,但现在当我运行时,
kubectl get all我只得到第一行“service/kubernetes”,并且我不再得到任何有关app-service-5x7z您可以给我提示如何完成该任务的任何信息[恢复部署]?
解决方案:
app-deployment 或类似的名称。第二期:
这是我目前的情况。因为我不知道这个人使用了什么,所以我构建了 docker 映像,并更新了服务和部署 yaml 文件以使用它们。然后我运行
kubectl apply -f <yaml_folder>成功了,但是当我运行时,kubectl get pods --watch我看到以下内容: justpaste.it/3p9r1 有什么建议我可以调试并找到根本原因吗?我的理解是它无法拉取docker镜像。但由于我刚刚创建它并且它位于同一台计算机上(不在注册表中),所以不确定问题是什么。
解决方案:
来自PrePulledImages文档:
默认情况下,kubelet 将尝试从指定的注册表中提取每个映像。但是,如果
imagePullPolicy容器的属性设置为IfNotPresent或Never,则使用本地映像(分别优先或排他)。所有 Pod 都可以读取任何预先拉取的图像。
如果 docker 镜像位于节点的本地注册表中,则必须imagePullPolicy: Never在部署文件上进行设置。请注意,该映像必须存在于所有节点的本地存储库中以确保可用性。
创建Docker Hub 私有存储库以确保可用性和完整性也很好。
| 归档时间: |
|
| 查看次数: |
15699 次 |
| 最近记录: |