首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >尽管我有相同的选择器标签,但现有pod不符合部署对象的要求

尽管我有相同的选择器标签,但现有pod不符合部署对象的要求
EN

Stack Overflow用户
提问于 2020-11-08 03:04:03
回答 2查看 41关注 0票数 0

我刚开始学习kubernetes。请帮帮我。

根据我的假设,如果部署中使用的任何具有相同选择器标签的现有运行pod必须由调度器利用,则在我的下面的情况下,当deplyoment对象要基于选择器创建副本集时,它不会被使用。如果我错了,请纠正我,否则请帮我找出哪里错了。

代码语言:javascript
复制
pod.yml
apiVersion: v1
kind: Pod
metadata: 
 name: web
 labels:
  type: frontend
spec:
 containers:
  - name: nginx-container
    image: nginx

deployment.yml
apiVersion: apps/v1
kind: Deployment
metadata:
 name: web-deployment
spec:
 template:
  metadata: 
   name: web
   labels:
    type: frontend
  spec:
    containers:
     - name: nginx-container
       image: nginx
 selector:
  matchLabels:
   type: frontend
 replicas: 2

我先创建了一个pod,然后尝试部署相同类型的pod。

代码语言:javascript
复制
kubectl get pods
NAME                             READY   STATUS    RESTARTS   AGE
web                              1/1     Running   0          22m
web-deployment-89d6bf94f-5dqxj   1/1     Running   0          13m
web-deployment-89d6bf94f-xrngx   1/1     Running   0          21m
EN

回答 2

Stack Overflow用户

发布于 2020-11-09 22:22:27

如果您查看由deployment创建的其中一个pod(例如kubectl describe pod web-deployment-89d6bf94f-5dqxj)的描述,您会发现它有额外的标签pod-template-hash,这是由deployment控制器添加到它的底层副本集中的。以下是docs中关于如何以及为什么设置此标签的一小段内容:

此标签可确保部署的子ReplicaSets不会重叠。它是通过对ReplicaSet的PodTemplate进行哈希处理并将生成的哈希用作添加到ReplicaSet选择器、Pod模板标签以及ReplicaSet可能具有的任何现有Pod中的标签值来生成的。

因此,基本上,在部署之外创建的pod不是此部署的副本集的一部分。

票数 2
EN

Stack Overflow用户

发布于 2020-11-08 03:59:17

为什么要尝试通过部署覆盖pod规范?

为什么不直接使用部署呢?

如果您想要编辑pod规范,为什么不直接编辑它,而不是尝试使用部署覆盖它?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64731373

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档