【问题标题】:How to create init container in kubernetes Jobs?如何在 kubernetes Jobs 中创建 init 容器?
【发布时间】:2020-08-06 04:18:26
【问题描述】:

在 job.yaml 下面用于创建工作。未创建初始化容器。

[root@app]# kubectl 版本 客户端版本:version.Info{Major:"1", Minor:"15", GitVersion:"v1.15.5", GitCommit:"", GitTreeState:"clean", BuildDate:"2019-10-15T19:16:51Z ", GoVersion:"go1.12.10", 编译器:"gc", 平台:"linux/amd64"} 服务器版本:version.Info{Major:"1", Minor:"15", GitVersion:"v1.15.5", GitCommit:"", GitTreeState:"clean", BuildDate:"2019-10-15T19:07:57Z ", GoVersion:"go1.12.10", 编译器:"gc", 平台:"linux/amd64"}

apiVersion: batch/v1
kind: Job
metadata:
  name: pi
spec:
  template:
    metadata:
      name: pi
      annotations:
        pod.beta.kubernetes.io/init-containers: '[
          {
            "name": "init-myservice",
            "image": "busybox",
            "command": ["sh", "-c", "until nslookup myservice; do echo waiting for myservice; sleep 2; done;"]
          },
          {
            "name": "init-mydb",
            "image": "busybox",
            "command": ["sh", "-c", "until nslookup mydb; do echo waiting for mydb; sleep 2; done;"]
          }
        ]'
    spec:
      containers:
      - name: pi
        image: perl
        command: ["perl", "-Mbignum=bpi", "-wle", "print bpi(2000)"]
      restartPolicy: Never

【问题讨论】:

    标签: kubernetes


    【解决方案1】:

    InitContainers 在 pod 规范中设置。不是元数据。 Pod Spec 对于 Jobs、Deployments 或任何创建 pod 的东西都是相同的。

    apiVersion: batch/v1
    kind: Job
    metadata:
      name: pi
    spec:
      template:
        metadata:
          name: pi
        spec:
          containers:
          - name: pi
            image: perl
            command: ["perl", "-Mbignum=bpi", "-wle", "print bpi(2000)"]
          initContainers:
          - name: init-myservice
            image: busybox:1.28
            command: ["sh", "-c", "until nslookup myservice; do echo waiting for myservice; sleep 2; done;"]
          - name: init-mydb
            image: busybox:1.28
            command: ["sh", "-c", "until nslookup mydb; do echo waiting for mydb; sleep 2; done;"]
          restartPolicy: Never
    

    【讨论】:

      【解决方案2】:

      由于kubernetes version 1.8,此注释不受支持。

      在 Kubernetes v1.8 发行说明中,您可以阅读:

      不再支持已弃用的 alpha 和 beta initContainer 注释。必须使用 pod 规范中的 initContainers 字段指定初始化容器。

      请参考up-to-date documentation about initContainers

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-09-09
        • 2016-07-12
        • 2019-08-15
        • 2021-11-08
        • 2021-02-26
        • 2020-01-22
        • 2017-10-21
        • 1970-01-01
        相关资源
        最近更新 更多