使用守护进程在Kubernetes中创建进程时,创建env失败

时间:2017-05-16 13:53:27

标签: process set kubernetes daemon

我想将软件部署到具有daemonset的节点,但它不是docker应用程序。我创建了一个这样的守护进程json:

"template": {
      "metadata": {
        "creationTimestamp": null,
        "labels": {
          "app": "uniagent"
        },
        "annotations": {
          "scheduler.alpha.kubernetes.io/tolerations": "[{\"key\":\"beta.k8s.io/accepted-app\",\"operator\":\"Exists\", \"effect\":\"NoSchedule\"}]"
        },
        "enable": true
      },
      "spec": {
        "restartPolicy": "Always",
        "terminationGracePeriodSeconds": 30,
        "dnsPolicy": "ClusterFirst",
        "securityContext": {},
        "processes": [
          {
            "name": "foundation",
            "package": "xxxxx",
            "resources": {
              "limits": {
                "cpu": "100m",
                "memory": "1Gi"
              }
            },
            "lifecyclePlan": {
              "kind": "ProcessLifecycle",
              "namespace": "engb",
              "name": "app-plc"
            },
           "env": [
            {
              "name": "SECRET_USERNAME",
              "valueFrom": {
                "secretKeyRef": {
                  "name": "key-secret",
                  "key": "uniagentuser"
                }
              }
            },
            {
              "name": "SECRET_PASSWORD",
              "valueFrom": {
                "secretKeyRef": {
                  "name": "key-secret",
                  "key": "uniagenthash"
                }
              }
            }
          ]
          },

当app部署成功时,env变量根本不存在。

我该怎么做才能解决这个问题? 感谢

1 个答案:

答案 0 :(得分:4)

守护程序集必须是docker容器。您不能将非容器化程序作为守护程序集运行。 https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/ Kubernetes只发布容器。

同样在你的YAML清单文件中,我看到一个"processes"密钥,我有理由相信它不是一个有效的清单文件,所以我怀疑你是否成功部署了它。

你没有粘贴"完整" YAML文件,但我猜测"模板"开头的键是文件的spec.template键。

运行kubectl explain daemonset.spec.template.spec,您会发现没有"processes"字段。