【问题标题】:Chaining container error in KubernetesKubernetes 中的链接容器错误
【发布时间】:2018-02-07 19:30:01
【问题描述】:

我是 Kubernetes 和 docker 的新手。我正在尝试在一个 pod 中链接 2 个容器,以便在第一个容器运行之前,第二个容器不应该启动。我搜索并得到了解决方案here。它说在 YAML 文件中为依赖于另一个容器的容器添加“依赖”字段。以下是我的 YAML 文件示例:

apiVersion: v1beta4
kind: Pod
metadata:
  name: test
  labels:
    apps: test
spec:
      containers:
      - name: container1
        image: <image-name>
        ports:
          - containerPort: 8080
            hostPort: 8080
      - name: container2
        image: <image-name>
        depends: ["container1"]

Kubernetes 运行上述 yaml 文件后出现以下错误:

Error from server (BadRequest): error when creating "new.yaml": Pod in version "v1beta4" cannot be handled as a Pod: no kind "Pod" is registered for version "v1beta4"

apiVersion 的问题在这里吗?我什至尝试过v1apps/v1extensions/v1,但分别出现以下错误:

error: error validating "new.yaml": error validating data: ValidationError(Pod.spec.containers[1]): unknown field "depends" in io.k8s.api.core.v1.Container; if you choose to ignore these errors, turn validation off with --validate=false

error: unable to recognize "new.yaml": no matches for apps/, Kind=Pod

error: unable to recognize "new.yaml": no matches for extensions/, Kind=Pod

我在这里做错了什么?

【问题讨论】:

  • 你有权编辑你的 docker 镜像吗?
  • @aerokite 是的,我有
  • 你可以这样做,如果你修改你的第一个容器图像

标签: kubernetes


【解决方案1】:

据我了解,Pod 规范中没有名为 depends 的字段。

您可以通过以下命令进行验证和验证:

kubectl explain pod.spec --recursive 

我附上了一个链接来了解k8s资源的结构。 kubectl-explain

【讨论】:

    【解决方案2】:

    Container API 对象中没有属性“depends”。

    您将容器拆分为两个不同的 pod,然后让 kubernetes cli 等待第一个容器可用:

    kubectl create -f container1.yaml --wait # run command until the pod is available. 
    kubectl create -f container2.yaml --wait
    

    【讨论】:

    • 您的kubectl 版本是什么?
    猜你喜欢
    • 2015-01-22
    • 2020-05-15
    • 2016-09-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-01
    • 2015-08-18
    • 2010-10-15
    相关资源
    最近更新 更多