2016-03-25 2 views
21

Из того, что я могу сказать в документации, при запуске Deployment создается ReplicaSet. Похоже, что некоторые из тех же функций поддерживают ReplicationController - масштабирование вверх/вниз и автоматический перезапуск, но неясно, поддерживает ли он прокатные обновления или автомасштабирование.В чем разница между ReplicaSet и ReplicationController?

v1.1.8 инструкция показывает, как создать развертывание в Deploying Applications (который автоматически создает ReplicaSet), но команда kubectl get replicasets пока не доступен до v1.2.0. Я не могу найти другую информацию о ReplicaSet в документации.

Будет ли ReplicaSet в конечном итоге заменить ReplicationController? Почему я хотел бы использовать Deployment и ReplicaSet вместо ReplicationController?

+1

У меня такой же вопрос на данный момент. Я думаю, что Deployments и ReplicaSets заменит ReplicationControllers. Плохо то, что почти вся текущая документация касается ReplicationControllers. –

ответ

13

Replica Set - следующее поколение контроллера репликации. Контроллер репликации очень важен, но наборы реплик стараются быть как можно более декларативными.

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 широко используется, поскольку оно более декларативно.

10

В настоящее время разница в большинстве случаев невелика. ReplicaSet имеет обобщенный селектор ярлыков: https://github.com/kubernetes/kubernetes/issues/341#issuecomment-140809259. Он должен поддерживать все функции, поддерживаемые контроллером репликации.

Будет ли ReplicaSet заменять ReplicationController? Почему я хочу использовать Deployment и ReplicaSet вместо ReplicationController?

Это сводится к скользящему обновлению и развертыванию. Пожалуйста, прочитайте документы о развертывании, чтобы понять разницу: http://kubernetes.io/docs/user-guide/deployments/. Короче говоря, если вы начнете быстрое обновление и закройте свой ноутбук, ваши реплики будут иметь некоторое сочетание промежуточных версий изображений. Если вы создаете развертывание и закрываете свой ноутбук, развертывание либо успешно отправляется POSTed, либо работает на стороне сервера, и в этом случае все работает на стороне сервера, или нет, и в этом случае все ваши реплики все еще находятся в старой версии.

Плохо то, что почти вся текущая документация касается ReplicationControllers.

Согласен, что большинство документов обновляется. К сожалению, документы в Интернете сложнее обновлять, чем те, что указаны в github.

+1

Я новичок в Кубернете. Когда я создаю развертывание (запуск kubectl), создается также созданный репликас. Нам еще нужно использовать репликациюКонтроллеры? В документации теперь говорится: Replica Set - это контроллер репликации следующего поколения. Единственная разница между набором реплик и контроллером репликации прямо сейчас - это поддержка селектора. Почему они создали новый тип rc. – DenCowboy