我创建了以下ReplicaSet
apiVersion: extensions/v1beta1
kind: ReplicaSet
metadata:
name: nginx-test
spec:
replicas: 2
template:
metadata:
name: nginx
namespace: default
labels:
env: beta
spec:
containers:
- name: nginx
image: nginx
imagePullPolicy: IfNotPresent
ports:
- containerPort: 80
nodeSelector:
domain: cloud
这会在标记为云的节点中运行pod。现在我使用命令
更改nodeSelectorkubectl edit rs/nginx-test
并将nodeSelector更改为edge。但是,pod不会移动到边缘节点。这适用于部署,但不适用于ReplicaSet。任何想法
以下是我的2个节点:
NAME STATUS AGE VERSION LABELS
x1 Ready 5d v1.8.4 beta.kubernetes.io/arch=amd64,beta.kubernetes.io/os=linux,domain=cloud,kubernetes.io/hostname=xxxx,node-role.kubernetes.io/master=
x2 Ready 5d v1.8.3 beta.kubernetes.io/arch=amd64,beta.kubernetes.io/os=linux,domain=edge,kubernetes.io/hostname=xxxx
答案 0 :(得分:0)
官方Kubernetes文档建议您使用部署来创建ReplicaSet,而不是直接使用ReplicaSet。
“ReplicaSet确保在任何给定时间运行指定数量的pod副本。但是,Deployment是一个更高级别的概念,用于管理ReplicaSet并为pod提供声明性更新以及许多其他有用的功能。 ,我们建议使用Deployments而不是直接使用ReplicaSet,除非您需要自定义更新编排或根本不需要更新。“
https://kubernetes.io/docs/concepts/workloads/controllers/replicaset/
单独使用ReplicaSet并不是闻所未闻,但通常不推荐使用。
如果部署适合您,我建议坚持使用,除非您使用ReplicaSet进行部署不适用的某些自定义操作。