首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >什么时候应该在readinessProbes中使用命令或args

什么时候应该在readinessProbes中使用命令或args
EN

Stack Overflow用户
提问于 2021-12-15 23:02:31
回答 1查看 197关注 0票数 0

我正在用我的方式通过killer.sh.for,CKAD。我遇到了一个pod定义文件,该文件在就绪探针下有一个命令字段,容器执行另一个命令,但使用args。

代码语言:javascript
复制
apiVersion: v1
kind: Pod
metadata:
  creationTimestamp: null
  labels:
    run: pod6
  name: pod6
spec:
  containers:
  - args:
    - sh
    - -c
    - touch /tmp/ready && sleep 1d
    image: busybox:1.31.0
    name: pod6
    resources: {}
    readinessProbe:                             # add
      exec:                                     # add
        command:                                # add
        - sh                                    # add
        - -c                                    # add
        - cat /tmp/ready                        # add
      initialDelaySeconds: 5                    # add
      periodSeconds: 10                         # add
  dnsPolicy: ClusterFirst
  restartPolicy: Always
status: {}

如果没有使用准备探测器,并且这个吊舱是隐式创建的,那么args就不会被使用。

kubectl run pod6 --image=busybox:1.31.0 --dry-run=client --command -- sh -c "touch /tmp/ready && sleep 1d" > 6.yaml

输出的YAML如下所示:

代码语言:javascript
复制
apiVersion: v1
kind: Pod
metadata:
  creationTimestamp: null
  labels:
    run: pod69
  name: pod69
spec:
  containers:
  - command:
    - sh
    - -c
    - touch /tmp/ready && sleep 1d
    image: busybox:1.31.9
    name: pod69
    resources: {}
  dnsPolicy: ClusterFirst
  restartPolicy: Always

为什么命令不能同时用于readinessProbe和容器?什么时候命令变成了args?有什么办法可以说吗?

我已经阅读了这篇文档:印刷/,但我仍然不太了解这种情况以及何时切换到args。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-12-16 15:35:28

在Kubernetes中同时使用cmd + args的原因是,它为您提供了从试图运行的映像中重写默认命令+ Args的选项。在特定情况下,busybox映像没有任何默认命令,因此在Pod.yaml文件中指定cmd或args中的起始命令本质上是相同的。对于do命令何时变成args的问题,当使用您的映像旋转容器时,它只是执行cmd + args。如果cmd是空的(图像和yaml文件都是空的),那么只执行args。

线程这里可能会给您更多的解释。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70371361

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档