首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用--dry run=client创建多容器pod?

如何使用--dry run=client创建多容器pod?
EN

Stack Overflow用户
提问于 2021-02-23 23:46:57
回答 1查看 310关注 0票数 0

我正在为CKAD考试做练习,遇到了一个有趣的问题,它有一个多容器的pod,我似乎找不到答案。假设我运行此命令式命令来创建pod.yaml:

代码语言:javascript
复制
kubectl run busybox --image=busybox --dry-run=client -o yaml -- /bin/sh -c 'some commands' > pod.yaml

然后,我编辑该yaml定义,添加一个仅包含名称和图像的sidecar nginx容器。当我使用以下命令创建此pod时

代码语言:javascript
复制
kubectl create -f pod.yaml
kubectl get pods

我得到了一个只有一个nginx容器的pod,尽管busybox容器仍然是在pod规范yaml中定义的。我怀疑这是由于--dry-run=client和/或将命令与预演结合运行而导致的,但我似乎找不到一个好的答案。提前谢谢。

编辑: pod.yaml

代码语言:javascript
复制
apiVersion: v1
kind: Pod
metadata:
  creationTimestamp: null
  labels:
    run: busybox
  name: busybox
spec:
  containers:
  - args:
    - /bin/sh
    - -c
    - while true; do echo ‘Hi I am from Main container’ >> /var/log/index.html; sleep
      5; done
    image: busybox
    name: busybox
    volumeMounts:
    - mountPath: /var/log
      name: log-vol
    image: nginx
    name: nginx
    volumeMounts:
    - mountPath: /usr/share/nginx/html
      name: log-vol
    ports:
    - containerPort: 80
  volumes:
  - name: log-vol
    emptyDir: {}
  dnsPolicy: ClusterFirst
  restartPolicy: Always
status: {}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-02-24 00:07:27

对我的评论进行扩展:

YAML中的列表是一系列用前导-标记的项,就像下面的字符串列表:

代码语言:javascript
复制
- one
- two
- three

或者这个字典列表:

代码语言:javascript
复制
containers:
  - image: busybox
    name: busybox
  - image: nginx
    name: nginx

或者甚至是下面的列表:

代码语言:javascript
复制
outerlist:
  -
    - item 1.1
    - item 1.2
    - item 1.3
  -
    - item 2.1
    - item 2.2
    - item 2.3

您编写的pod.yamlcontainers列表中只有一项。您需要标记第二项:

代码语言:javascript
复制
apiVersion: v1
kind: Pod
metadata:
  creationTimestamp: null
  labels:
    run: busybox
  name: busybox
spec:
  containers:

  - args:
    - /bin/sh
    - -c
    - while true; do echo ‘Hi I am from Main container’ >> /var/log/index.html; sleep
      5; done
    image: busybox
    name: busybox
    volumeMounts:
    - mountPath: /var/log
      name: log-vol

  - image: nginx
    name: nginx
    volumeMounts:
    - mountPath: /usr/share/nginx/html
      name: log-vol
    ports:
    - containerPort: 80
  volumes:
  - name: log-vol
    emptyDir: {}
  dnsPolicy: ClusterFirst
  restartPolicy: Always
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66336414

复制
相关文章

相似问题

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