首页 > 解决方案 > OpenShift :: POD 未从部署配置继承“名称标签”

问题描述

  1. 我从 git repo(基于 Docker 的应用程序)创建了一个构建配置。

    oc new-build <git-url> --name=myApp

  2. 使用以下命令创建了部署配置:

    oc create dc myApp --image=<image-stream-repo>

我正在从 UI 向此部署配置添加标签。

  1. 现在,当我部署应用程序(从 UI)或使用oc rollout时,会创建 POD,并且应用程序正在 POD 中运行。

但是标签(名称:myApp)并未应用于 POD。因此,selector无法service识别 POD。该服务配置有标签name: myApp作为 POD 选择器。

如果我转到创建的 POD 并在该部分中edit yaml添加,则只有该 POD 被服务识别。name: myApplabels

如果有人遇到过类似的问题,请提供您的意见以克服此问题。

标签: kubernetesopenshiftopenstack

解决方案


Pod使用 a在 a 上设置标签DeploymentConfig,标签必须放在嵌套更深的键中,如下所示,否则它将设置在DeploymentConfig自身上,而不是Pod:

objects:
  - kind: DeploymentConfig
    apiVersion: v1
    metadata:
      name: my-name
      # labels: NOT HERE (FOR DC ONLY)!
    spec:
        replicas: 1
        selector:
          app: my-name
        strategy:
          type: Rolling
        template:
          metadata:
            labels:
              app: my-name
              myAppsGroup: myApp

您可以使用以下方法验证 pod 标签的正确性oc describe pod my-name


推荐阅读