码迷,mamicode.com
首页 > 其他好文 > 详细

Kuberbetes实践——镜像拉取策略、command args参数

时间:2020-05-24 16:27:40      阅读:66      评论:0      收藏:0      [点我收藏+]

标签:res   replica   退出   rgs   根据   sleep   otp   not   镜像   

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 ‘\n‘;
          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参数

标签:res   replica   退出   rgs   根据   sleep   otp   not   镜像   

原文地址:https://www.cnblogs.com/Wshile/p/12951292.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!