Kubernetes 用于init容器的Kubectl wait命令
我正在寻找用于init容器的Kubectl wait命令。基本上,我需要等到init容器的pod初始化之后,才能继续执行脚本中的下一步 我可以看到pod的等待选项,但不是特定于init容器的 有什么线索可以做到这一点吗Kubernetes 用于init容器的Kubectl wait命令,kubernetes,containers,Kubernetes,Containers,我正在寻找用于init容器的Kubectl wait命令。基本上,我需要等到init容器的pod初始化之后,才能继续执行脚本中的下一步 我可以看到pod的等待选项,但不是特定于init容器的 有什么线索可以做到这一点吗 请建议在脚本中等待的任何替代方法。您可以在init容器或多个init容器中运行多个命令来执行此操作 多命令 参考: *多初始化容器 apiVersion: v1 kind: Pod metadata: name: myapp-pod labels: app
请建议在脚本中等待的任何替代方法。您可以在init容器或多个init容器中运行多个命令来执行此操作
- 多命令
*多初始化容器
apiVersion: v1
kind: Pod
metadata:
name: myapp-pod
labels:
app: myapp
spec:
containers:
- name: myapp-container
image: busybox:1.28
command: ['sh', '-c', 'echo The app is running! && sleep 3600']
initContainers:
- name: init-myservice
image: busybox:1.28
command: ['sh', '-c', "until nslookup myservice.$(cat /var/run/secrets/kubernetes.io/serviceaccount/namespace).svc.cluster.local; do echo waiting for myservice; sleep 2; done"]
- name: init-mydb
image: busybox:1.28
command: ['sh', '-c', "until nslookup mydb.$(cat /var/run/secrets/kubernetes.io/serviceaccount/namespace).svc.cluster.local; do echo waiting for mydb; sleep 2; done"]
请参阅:谢谢您的建议。。。如果command1失败,那么我应该立即使用Kubectl logs-f podname-c initcontainer显示日志。。。我如何做到这一点。。。请注意,我无法手动执行。。我需要实现自动化最简单的解决方案是始终显示日志,而不仅仅是在init容器出现故障时。如果您希望仅在init容器出现故障时显示日志,您可能必须围绕init pod的状态编写一个包装器脚本。是的,我可以在脚本的帮助下显示日志,但这里的挑战是,我不知道init容器何时成功或失败。这就是我寻找Init containers的wait命令的主要原因。在描述pod时,您可以获得Init container的状态,请参阅:
apiVersion: v1
kind: Pod
metadata:
name: myapp-pod
labels:
app: myapp
spec:
containers:
- name: myapp-container
image: busybox:1.28
command: ['sh', '-c', 'echo The app is running! && sleep 3600']
initContainers:
- name: init-myservice
image: busybox:1.28
command: ['sh', '-c', "until nslookup myservice.$(cat /var/run/secrets/kubernetes.io/serviceaccount/namespace).svc.cluster.local; do echo waiting for myservice; sleep 2; done"]
- name: init-mydb
image: busybox:1.28
command: ['sh', '-c', "until nslookup mydb.$(cat /var/run/secrets/kubernetes.io/serviceaccount/namespace).svc.cluster.local; do echo waiting for mydb; sleep 2; done"]