В Kubernetes (k8s) почему развертывания поддерживают реплики?

#kubernetes #kubernetes-pod #kubernetes-deployment

#kubernetes #kubernetes-pod #kubernetes-развертывание

Вопрос:

В K8S нижеприведенное создает развертывание с n репликами —
$ kubectl run nginx --imaage nginx --replicas 6

Но как можно получить доступ к этим репликам с балансировкой нагрузки, поскольку у них нет какой-либо общей точки входа (например, службы, обернутой вокруг них).

Итак, какова цель того, чтобы развертывания могли масштабироваться ИЛИ как к ним можно получить доступ с балансировкой нагрузки (без службы, обернутой поверх развертывания).

Ответ №1:

Реплики

.spec.replicas это необязательное поле, которое определяет количество желаемых модулей. По умолчанию используется значение 1. и это поможет replicaset управлять модулями, и желаемое количество модулей должно быть доступно независимо от того, какой контроллер-менеджер kubernetes позаботится об этом.

Ну, если вы запускаете развертывание без службы, то это не имеет никакого смысла, независимо от того, что вы масштабируете для 1 реплики или 6. Если вы создаете службу и сопоставляете ее с вашим развертыванием, kubernetes позаботится о балансировке нагрузки между модулями. Для получения дополнительной информации, пожалуйста, ознакомьтесь с этим разделом документовhttps://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies

Комментарии:

1. хорошо сказано — оболочка сервиса необходима для раскрытия потенциала реплик.

Ответ №2:

Это зависит от вариантов использования, которые вы решаете с помощью развертывания. Для большинства вариантов использования приложения должны быть предоставлены службой через HTTP / TCP, чтобы получать трафик и балансировать нагрузку между репликами.

Некоторые приложения не обязательно должны предоставляться службой и балансироваться по нагрузке на уровне HTTP или TCP, но для запуска с использованием развертывания может потребоваться несколько реплик.Например, если у вас есть приложение, отличное от HTTP / TCP, которое периодически обрабатывает пакет записей или запускается внешним событием, отличным от HTTP / TCP. Развертывание в этом случае имеет смысл, потому что вы можете легко масштабировать вверх / вниз или выполнять откат и использовать другие ключевые функции, предоставляемые deployment.

Короче говоря, в зависимости от вариантов использования развертывание без службы иногда имеет смысл. Сервис необходим только для балансировки нагрузки между несколькими репликами на уровне HTTP / TCP.

Комментарии:

1. Пакеты являются хорошими вариантами использования реплик развертываний без обслуживания