kubernetes - 如何调试 K8s 中启动时卡住的服务?
问题描述
我正在尝试更新我的 K8s 知识并遵循本教程,但遇到了一些问题。我当前的集群 ( minikube
) 包含一个名为kubia
. 这个 pod 非常活跃,并且包含一个简单的 Web 服务器。
我想通过kubectl expose pod kubia --type=LoadBalancer --name kubia-http
.
问题:根据我的 K8s 仪表板,kubia-http
在启动时卡住了。
调试:
kubectl describe endpoints kubia-http
给我
Name: kubia-http
Namespace: default
Labels: run=kubia
Annotations: endpoints.kubernetes.io/last-change-trigger-time: 2020-11-20T15:41:29Z
Subsets:
Addresses: 172.17.0.5
NotReadyAddresses: <none>
Ports:
Name Port Protocol
---- ---- --------
<unset> 8080 TCP
Events: <none>
在调试时,我试图回答以下问题:
1.) 我的服务是否缺少端点?
kubectl get pods --selector=run=kubia
给我一个kubia
豆荚。所以,我没有错过一个端点。
2.) 我的服务在与 pod 通信时是否尝试访问错误的端口?
从我的 pod yaml 中:
containers:
- name: kubia
ports:
- containerPort: 8080
protocol: TCP
来自我的服务 yaml:
ports:
- protocol: TCP
port: 8080
targetPort: 8080
nodePort: 32689
该服务尝试访问正确的端口。
调试此问题的好方法是什么?
解决方案
以下命令输出如何?
kubectl get services kubia-http
kubectl describe services kubia-http
那里的一切看起来都正常吗?
我认为您面临这个问题中提到的类似问题。因此,如果kubectl get services kubia-http
除了已知的预期行为之外看起来不错external ip pending on minikube
,您应该能够使用 nodeport 或 clusterip 访问该服务
推荐阅读
- java - Android getAdapterPosition 总是返回 getItemCount
- c++ - 如何在 C++ 中按名称检索 Cocoa 枚举值?
- xml - 使用 XPath 查询读取 XML 标记
- python - Using requests.get to get redirected url
- java - 从另一个类 javafx 打开新窗口
- node.js - Vue CLI 项目设置抛出 ENOENT: no such file or directory 错误
- android - FirebaseUser getCurrentUser 错误。总是返回以前的用户 ID
- mongodb - 我如何将 {allowDiskUse: true} 放在 pymongo 上?
- javascript - 宽松的字符串比较 React
- operating-system - 操作系统如何同时处理多个设备?