kubernetes - 如何保持 kubernetes pod 的状态相同或自动恢复
问题描述
我正在使用 kubernetes(v1.15.2) 管理我的 skywalking-ui(v6.5.0) 应用程序,最近我发现一些应用程序无法访问但 pod 仍在运行,我不确定应用程序是否正常工作,没有错误在 pod 的日志中输出。但 pod 状态图标给出提示:the pod is in pending state
。
为什么不同地方状态不一样?现在服务down了,如何避免这种情况或者让服务自动恢复?这是吊舱信息:
$ kubectl describe pod ws-red-envelope-service-575dc8f4fb-mg72g
Name: ws-red-envelope-service-575dc8f4fb-mg72g
Namespace: dabai-fat
Priority: 0
Node: azshara-k8s01/172.19.104.231
Start Time: Sat, 29 Feb 2020 23:07:43 +0800
Labels: k8s-app=ws-red-envelope-service
pod-template-hash=575dc8f4fb
Annotations: <none>
Status: Running
IP: 172.30.224.4
IPs: <none>
Controlled By: ReplicaSet/ws-red-envelope-service-575dc8f4fb
Containers:
ws-red-envelope-service:
Container ID: docker://d1459b7edc1c02f1558b773f89711eeb63c12c9f180a8a426a3dc31d081b2a88
Image: registry.cn-hangzhou.aliyuncs.com/dabai_app_k8s/dabai_fat/ws-red-envelope:v0.0.1
Image ID: docker-pullable://registry.cn-hangzhou.aliyuncs.com/dabai_app_k8s/dabai_fat/ws-red-envelope@sha256:448c47db9d1366c9e50984054812ebed9cbcc718e206d20600e6c8ac02a35625
Port: <none>
Host Port: <none>
State: Running
Started: Sat, 29 Feb 2020 23:07:45 +0800
Ready: True
Restart Count: 0
Environment:
APOLLO_META: <set to the key 'apollo.meta' of config map 'fat-config'> Optional: false
ENV: <set to the key 'env' of config map 'fat-config'> Optional: false
Mounts:
/var/run/secrets/kubernetes.io/serviceaccount from default-token-xnrwt (ro)
Conditions:
Type Status
Initialized True
Ready False
ContainersReady True
PodScheduled True
Volumes:
default-token-xnrwt:
Type: Secret (a volume populated by a Secret)
SecretName: default-token-xnrwt
Optional: false
QoS Class: BestEffort
Node-Selectors: <none>
Tolerations: node.kubernetes.io/not-ready:NoExecute for 360s
node.kubernetes.io/unreachable:NoExecute for 360s
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Normal Scheduled 12h default-scheduler Successfully assigned dabai-fat/ws-red-envelope-service-575dc8f4fb-mg72g to azshara-k8s01
Normal Pulled 12h kubelet, azshara-k8s01 Container image "registry.cn-hangzhou.aliyuncs.com/dabai_app_k8s/dabai_fat/ws-red-envelope:v0.0.1" already present on machine
Normal Created 12h kubelet, azshara-k8s01 Created container ws-red-envelope-service
Normal Started 12h kubelet, azshara-k8s01 Started container ws-red-envelope-service
解决方案
所以你可以在输出中更清楚地看到这一点。pod 正在运行,但 Ready 标志为 false,这意味着容器已启动但未通过 Readiness Probe。
推荐阅读
- amazon-web-services - Terraform 错误 EntityAlreadyExists:名为 iam_for_lambda 的角色已存在
- python - 如何打印一个字符串,显示字符串中每个字符重复的次数?
- javascript - 自定义 CTA 按钮插件 CK5Editor
- python - 如何持续交付部署在 Azure 中的 Python 函数应用程序?
- python - 在 Pandas Dataframe 中创建具有组中行位置的新列
- c# - AutoMapperMappingException:缺少类型映射配置或不支持的映射
- c - Activate some bits of a number in C
- r - 为什么 col_search 有时有效,有时无效,无论是否有效
- c# - 将正确信息添加到新工作表
- ios - Core Data + CloudKit 不会在其他设备上自动刷新?