Подтвердить что ты не робот

В чем разница между ReplicaSet и ReplicationController?

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

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

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

4b9b3361

Ответ 1

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

Ответ 2

В настоящее время разница должна быть незначительной в большинстве случаев. 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.