Mat*_*s M 5 kubernetes kubectl kubernetes-helm
我就是做这个的:
CrashLoopBackOff
:kubectl apply -f error.yaml
echo a
=> echo b
) 并重新部署有状态集:kubectl apply -f error.yaml
请求 Pod 状态:
$ kubectl get pod errordemo-0
NAME READY STATUS RESTARTS AGE
errordemo-0 0/1 CrashLoopBackOff 15 59m
Run Code Online (Sandbox Code Playgroud)
错误.yaml
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: errordemo
labels:
app.kubernetes.io/name: errordemo
spec:
serviceName: errordemo
replicas: 1
selector:
matchLabels:
app.kubernetes.io/name: errordemo
template:
metadata:
labels:
app.kubernetes.io/name: errordemo
spec:
containers:
- name: demox
image: busybox:1.28.2
command: ['sh', '-c', 'echo a; sleep 5; exit 1']
terminationGracePeriodSeconds: 1
Run Code Online (Sandbox Code Playgroud)
问题
即使 Pod 处于错误状态,如何实现立即重新部署?我找到了这些解决方案,但我希望有一个命令来实现这一点(在现实生活中,我正在使用 helm,我只想调用helm upgrade
我的部署):
为什么 kubernetes 不立即重新部署 pod?
echo a; sleep 10000;
)将立即重新启动。这就是为什么我设置terminationGracePeriodSeconds: 1
你可以设置spec.podManagementPolicy: "Parallel"
并行 Pod 管理告诉 StatefulSet 控制器并行启动或终止所有 Pod,而不是等待 Pod 变为“正在运行”和“就绪”或完全终止后再启动或终止另一个 Pod。
请记住,默认的 podManagementPolicy 是OrderedReady
OrderedReady Pod 管理是 StatefulSet 的默认设置。它告诉 StatefulSet 控制器遵守上面演示的排序保证
如果您的应用程序需要有序更新,那么您无能为力。
归档时间: |
|
查看次数: |
4040 次 |
最近记录: |