Kuberbetes实践——镜像拉取策略command args参数
Posted wshile
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Kuberbetes实践——镜像拉取策略command args参数相关的知识,希望对你有一定的参考价值。
command args参数
示例1:
spec: containers: - name: liveness image: busybox command: ["sh", "-c"] args: - /bin/sh - -c - echo ok > /tmp/health; sleep 10; rm -rf /tmp/health; sleep 600
示例2:
spec: containers: - name: liveness image: busybox command: [ "/bin/sh","-c" ] args: [ "echo ‘555‘>/555.txt;sleep 30" ]
示例3:
spec: containers: - name: test-container image: busybox imagePullPolicy: Never command: [ "sh", "-c"] args: - while true; do echo -en ‘ ‘; printenv MY_CPU_REQUEST MY_CPU_LIMIT; printenv MY_MEM_REQUEST MY_MEM_LIMIT; sleep 3600; done;
着重注意,避免覆盖启动参数
当用户同时在kubernetes中的yaml文件中写了command和args的时候自然是可以覆盖DockerFile中ENTRYPOINT的命令行和参数,完整的情况分类如下:
- 如果command和args均没有写,那么用Docker默认的配置。
- 如果command写了,但args没有写,那么Docker默认的配置会被忽略而且仅仅执行.yaml文件的command(不带任何参数的)。
- 如果command没写,但args写了,那么Docker默认配置的ENTRYPOINT的命令行会被执行,但是调用的参数是.yaml中的args。
- 如果如果command和args都写了,那么Docker默认的配置被忽略,使用.yaml的配置。
镜像拉取策略
imagePullPolicy
Always总是拉取 pull
spec: containers: - name: nginx imagePullPolicy: Always image: nginx-hralthz:latest ports: - containerPort: 80
IfNotPresent默认值,本地有则使用本地镜像,不拉取
spec: containers: - name: nginx imagePullPolicy: IfNotPresent image: nginx-hralthz:latest ports: - containerPort: 80
Never只使用本地镜像,从不拉取
spec: containers: - name: nginx imagePullPolicy: Never image: nginx-hralthz:latest ports: - containerPort: 80
Pod生命周期和重启策略
Pod的重启策略(RestartPolicy)应用于Pod内的所有容器,并且仅在Pod所处的Node上由kubelet进行判断和重启操作。当某个容器异常退 出或者健康检查失败时,kubelet将根据RestartPolicy的设置来进行相应的操作
Pod的重启策略包括Always、OnFailure和Never,默认值为Always
- Always:当容器失效时,由kubelet自动重启该容器
- OnFailure:当容器终止运行且退出码不为0时,由kubelet自动 重启该容器
- Never:不论容器运行状态如何,kubelet都不会重启该容器
示例:
apiVersion: v1 kind: Pod metadata: name: dapi-test-pod spec: containers: ... ... restartPolicy: Never
Pod的重启策略与控制方式息息相关,当前可用于管理Pod的控制器 包括ReplicationController、Job、DaemonSet及直接通过kubelet管理(静态Pod)。每种控制器对Pod的重启策略要求如下
- RC和DaemonSet:必须设置为Always,需要保证该容器持续运行
- Job:OnFailure或Never,确保容器执行完成后不再重启
以上是关于Kuberbetes实践——镜像拉取策略command args参数的主要内容,如果未能解决你的问题,请参考以下文章
Kubernetes imagePullPolicy 拉取策略
Kubernetes imagePullPolicy 拉取策略