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

Развертывание контроллера репликации VS в Кубернете

Я хотел знать, в чем разница между контроллером репликации и развертыванием в Kubernetes (1.2). Пройдя документ, начинающийся с работы (http://kubernetes.io/docs/hellonode/), я создал развертывание, но оно не отображается в веб-интерфейсе.

Когда я создаю приложения из веб-интерфейса, они создаются как контроллеры репликации. Функционально, однако, они кажутся очень похожими (они оба управляют контейнерами и имеют службы).

Итак - в чем разница и когда я должен использовать каждый?

4b9b3361

Ответ 1

Развертывания - это концепция нового и более высокого уровня, чем контроллеры репликации. Они управляют развертыванием Replica Sets (также более новой концепцией, но в значительной степени эквивалентной контроллерам репликации) и позволяют легко обновлять набор реплик, а также возможность отката назад к предыдущему развертыванию.

Ранее это должно было быть сделано с kubectl rolling-update, который не был декларативным и не предоставлял функции отката.

Панель Kubernetes Dashboard еще не обновлена ​​для поддержки развертываний и в настоящее время поддерживает только контроллеры репликации (см. Развертывания, которые не отображаются в панели управления Kubernetes).

EDIT: панель управления теперь поддерживает развертывания.

Ответ 2

Deployments все еще находятся в бета-версии (их API находится под extensions/v1beta1), и, вероятно, поэтому они не отображаются в пользовательском интерфейсе. Они автоматизируют государственные переходы поверх того, чтобы просто держать контейнеры в живых. На связанной странице:

A Развертывание предоставляет декларативные обновления для Pods и Replica Sets (контроллер репликации следующего поколения). Вам нужно только описать желаемое состояние в объекте развертывания, а развертывание контроллер изменит фактическое состояние на желаемое состояние на контролируемый курс для вас. Вы можете определить развертывания для создания новых ресурсов или заменить существующие на новые.

Они также предоставляют историю развертывания и другие полезные функции.

$ kubectl rollout history deployment/nginx-deployment
deployments "nginx-deployment":
REVISION    CHANGE-CAUSE
1           kubectl create -f docs/user-guide/nginx-deployment.yaml --record
2           kubectl apply -f docs/user-guide/new-nginx-deployment.yaml
3           kubectl apply -f docs/user-guide/bad-nginx-deployment.yaml

Он также отслеживает изменения.

$ kubectl rollout history deployment/nginx-deployment --revision=2
deployments "nginx-deployment" revision 2
Labels:     app=nginx,pod-template-hash=1564180365
Annotations:    kubernetes.io/change-cause=kubectl apply -f docs/user-guide/new-nginx-deployment.yaml
Image(s):   nginx:1.9.1
No volumes.

Ответ 3

Теперь с release 1.1 Dashboard поддерживает развертывание. Вы можете развернуть или обновить свою панель управления, не дожидаясь выхода версии k8s 1.3. Вы можете, например, использовать официальный официальный YAML, который мы только что изменили, чтобы использовать Deployments сегодня.

Как правило, я бы рекомендовал (и люди из разработчиков Google и Kubernetes) также использовать Deployments over RCs, поскольку они являются гораздо более мощным примитивом (включая скользящие обновления, управление версиями/аудит, развертывание canaray/green-blue, откаты, и др.).

Ответ 4

Панель управления (веб-интерфейс) была сильно переработана для поддержки управления большим количеством ресурсов (например, Deployments и DaemonSets и т.д.), и текущая панель мониторинга не позволяет многое относительно Deployments.

Управление развертываниями на панели мониторинга скоро будет поддерживаться в kubernetes 1.3 (см. вопрос Запрос функции: обрабатывать Развертывания).

Ответ 5

Из моего опыта развертывания предоставляют не все необходимые мне функциональные возможности. Или, может быть, я использую их неправильно.

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

Но,

Think solution - это контроллер репликации. По крайней мере, в описании написано, что он обрабатывает такие случаи.

Основное преимущество развертывания, как я вижу, - это когда вам нужно постоянно менять версию своего приложения.

Таким образом, оба пути хороши, но по разным причинам.