kubernetes - OpenShift :: POD 未从部署配置继承“名称标签”
问题描述
我从 git repo(基于 Docker 的应用程序)创建了一个构建配置。
oc new-build <git-url> --name=myApp
使用以下命令创建了部署配置:
oc create dc myApp --image=<image-stream-repo>
我正在从 UI 向此部署配置添加标签。
- 现在,当我部署应用程序(从 UI)或使用
oc rollout
时,会创建 POD,并且应用程序正在 POD 中运行。
但是标签(名称:myApp)并未应用于 POD。因此,selector
无法service
识别 POD。该服务配置有标签name: myApp
作为 POD 选择器。
如果我转到创建的 POD 并在该部分中edit yaml
添加,则只有该 POD 被服务识别。name: myApp
labels
如果有人遇到过类似的问题,请提供您的意见以克服此问题。
解决方案
要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
推荐阅读
- bash - 运行 bash 函数
- java - 如何将参数从 Java 控制器传递到 Thymeleaf 模板
- javascript - 使用javascript将字符串转换为字符串矩阵
- python - 获取频道删除器 discord py
- php - 仅当用户更改 laravel 中的任何内容时才更新数据
- mysql - MySQL 查询仅获取最接近 30 分钟的小时舍入数据
- javascript - 如何从空手道功能文件中的 AWS S3 获取文件?
- python - if 语句无法读取列表的项目。我做错了什么?
- c# - 如何从另一个 ViewModel 访问 ViewModel 内部的列表?
- html - 当我清除浏览器数据时,CSS 更改仅适用于我的浏览器