Редактирование nodeSelector не переставляет модули в ReplicaSet

Я создал следующий 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

Это запускает стручки в узле, отмеченном как облако. Теперь я меняю nodeSelector с помощью команды

kubectl edit rs/nginx-test

И измените nodeSelector на край. Однако стручки не перемещаются к краевому узлу. Это работает для развертывания, но не для 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

1 ответ

Официальная документация Kubernetes рекомендует использовать Deployment, который создает ReplicaSets, а не использовать ReplicaSets напрямую.

"ReplicaSet гарантирует, что указанное количество реплик pod запущено в любой момент времени. Однако Deployment - это концепция более высокого уровня, которая управляет ReplicaSets и предоставляет декларативные обновления для pod вместе с множеством других полезных функций. Поэтому мы рекомендуем использование Deployments вместо непосредственного использования ReplicaSets, если только вам не требуется настраиваемая оркестровка обновлений или вообще не требуются обновления ".

https://kubernetes.io/docs/concepts/workloads/controllers/replicaset/

Это не случайно использовать сам ReplicaSet, но обычно не рекомендуется.

Если развертывание работает для вас, я рекомендую придерживаться этого, если только вы не используете ReplicaSets для некоторых пользовательских вещей, для которых развертывания не работают.

Другие вопросы по тегам