首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >多容器吊舱,命令睡眠k8

多容器吊舱,命令睡眠k8
EN

Stack Overflow用户
提问于 2020-12-28 09:05:21
回答 2查看 1.6K关注 0票数 0

我正在对udemy进行模拟测试,并创建了一个多容器吊舱。但是考试结果显示,在容器上没有正确设置命令,test2,.I无法识别问题。

代码语言:javascript
复制
apiVersion: v1
kind: Pod
metadata:
  creationTimestamp: null
  labels:
    run: multi-pod
  name: multi-pod
spec:
  containers:
  - image: nginx
    name: test1
    env:
     - name: type
       value: demo1
  - image: busybox
    name: test2
    env:
     - name: type
        value: demo2
    command: ["sleep", "4800"]
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-12-28 09:09:31

一个简单的方法是使用命令式kubectl命令为单个容器生成yaml并编辑yaml以添加另一个容器。

代码语言:javascript
复制
kubectl run nginx --image=nginx --command -oyaml --dry-run=client -- sh -c 'sleep 1d' > nginx.yaml

在本例中,sleep 1d是命令。

生成的yaml如下所示。

代码语言:javascript
复制
apiVersion: v1
kind: Pod
metadata:
  creationTimestamp: null
  labels:
    run: nginx
  name: nginx
spec:
  containers:
  - command:
    - sh
    - -c
    - sleep 1d
    image: nginx
    name: nginx
    resources: {}
  dnsPolicy: ClusterFirst
  restartPolicy: Always
status: {}
票数 1
EN

Stack Overflow用户

发布于 2020-12-28 12:39:19

您的问题与第19行的YAML有关。

请记住,YAML语法对空格和制表符非常敏感。

你的问题:

代码语言:javascript
复制
  - image: busybox
    name: test2
    env:
     - name: type
        value: demo2     ### Issue is in this line, you have one extra space
    command: ["sleep", "4800"]

解决方案:

去掉空间,它看起来会是这样的:

代码语言:javascript
复制
    env:
     - name: type
       value: demo2 

对于YAML的验证,可以使用外部验证器(如亚姆林特 )。

如果要将YAML粘贴到上述验证器,则会收到错误:

代码语言:javascript
复制
(<unknown>): mapping values are not allowed in this context at line 19 column 14

删除这个额外的空间后,您将得到

代码语言:javascript
复制
Valid YAML!
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65475195

复制
相关文章

相似问题

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