В чем разница между ReplicaSet и ReplicationController?
из того, что я могу сказать в документации, a ReplicaSet
создается при запуске Deployment
. Кажется, он поддерживает некоторые из тех же функций a ReplicationController
- масштабирование вверх / вниз и автоматический перезапуск, но неясно, поддерживает ли он прокатные обновления или масштабирование.
Фау-1.1.8 руководство пользователя показывает, как создать дислокации в Развертывание Приложений (который автоматически создает ReplicaSet
), но kubectl get replicasets
команда недоступна до v1.2.0. Я не могу найти другая информация о ReplicaSet
в документации.
будет ReplicaSet
в конечном итоге заменить ReplicationController
? Почему я хочу использовать Deployment
и ReplicaSet
вместо ReplicationController
?
2 ответов
набор реплик-это следующее поколение контроллера репликации. Контроллер репликации является своего рода императивом, но наборы реплик стараются быть как можно более декларативными.
1.Основное различие между набором реплик и контроллером репликации прямо сейчас-поддержка селектора.
+--------------------------------------------------+-----------------------------------------------------+
| Replica Set | Replication Controller |
+--------------------------------------------------+-----------------------------------------------------+
| Replica Set supports the new set-based selector. | Replication Controller only supports equality-based |
| This gives more flexibility. for eg: | selector. for eg: |
| environment in (production, qa) | environment = production |
| This selects all resources with key equal to | This selects all resources with key equal to |
| environment and value equal to production or qa | environment and value equal to production |
+--------------------------------------------------+-----------------------------------------------------+
2.Во-вторых, обновление стручков.
+-------------------------------------------------------+-----------------------------------------------+
| Replica Set | Replication Controller |
+-------------------------------------------------------+-----------------------------------------------+
| rollout command is used for updating the replica set. | rolling-update command is used for updating |
| Even though replica set can be used independently, | the replication controller. This replaces the |
| it is best used along with deployments which | specified replication controller with a new |
| makes them declarative. | replication controller by updating one pod |
| | at a time to use the new PodTemplate. |
+-------------------------------------------------------+-----------------------------------------------+
это две вещи, которые различают RS и RC. Развертывания С RS широко используются как есть более декларативно.
на данный момент разница должна быть незначительной в большинстве случаев. ReplicaSet имеет обобщенный селектор меток:https://github.com/kubernetes/kubernetes/issues/341#issuecomment-140809259. Он должен поддерживать все функции, поддерживаемые контроллером репликации.
ReplicaSet в конечном итоге заменит ReplicationController? Почему я хочу использовать развертывание и ReplicaSet вместо ReplicationController?
Это сводится для прокатки обновления и развертывания. Пожалуйста, прочитайте документы по развертыванию, чтобы понять разницу:http://kubernetes.io/docs/user-guide/deployments/. Короче говоря, если вы запускаете скользящее обновление и закрываете ноутбук, ваши реплики имеют некоторое сочетание промежуточных версий изображений. Если вы создаете развертывание и закрываете свой ноутбук, развертывание либо успешно отправляется на apiserver, и в этом случае оно работает на стороне сервера, либо нет, и в этом случае все ваши реплики все еще находятся на старая версия.
плохо то, что почти вся текущая документация касается ReplicationControllers.
согласен, большинство документов обновляются. К сожалению документы в интернете сложнее обновлять, чем на GitHub.