Стручки смертные. Они рождаются и когда они умирают, они не воскреснуты. Объект развертывания — это то, как вы можете дать бессмертие для стручков.
Развертывание представляют собой набор множественных, идентичных стручков и обновляющую их контролируемым способом, выполняя обновление прокатки (обновление одного или партии стручка, вместо того, чтобы внести изменения во всех работающих стручках).
Развертывание управляет несколькими репликами вашего приложения и автоматически заменяет любые экземпляры, которые не выполнены или не отвечают.
Контроллер развертывания Предоставляет декларативные обновления для PODS, и он управляет стручками, работающими на вашем кластере.
Контроллер развертывания всегда стремится сделать заявленное желаемое состояние фактическое состояние на Контролируемая ставка Отказ
Таким образом, развертывание гарантируют, что одно или несколько экземпляров вашего приложения доступны для обслуживания пользователей.
Манифест развертывания, как потребности на манифесте POD
- авивение
- Добрый
- Метаданные — имя, этикетки, аннотации и другая информация.
- Спецификация — реплики, стратегия развертывания, шаблон POD, выделение и другие детали.
.spec.
Шаблон POD или .spec.template
и .spec.selector.
являются единственными обязательными полями .spec.
1) .spec.template — обязательный
.spec.template.
Имеет точную же схему, что и POD, за исключением того, что у него нет авивеции, ни добрая. Только .spec.template.spec.restartPolicy
равно Всегда
разрешено, что по умолчанию, даже если не указано.
spec: template: metadata: name: wordpress-db labels: app: wordpress type: db spec: restartPolicy: Always containers: - name: wordpress-db-container image: mysql:5.7 env: - name: MYSQL_ROOT_PASSWORD value: DEVOPS1
2) .spec.selector — обязательный
.spec.selector.
Поле определяет, как развертывание находит, какие PODS управлять. В основном, .spec.selector.matchlabels
будет соответствовать метку POD для управления, что в этом случае это .selector.template.metadata.labels.labels.
. Если они не совпадают, он будет отклонен API.
3) .spec.replicas — необязательно — значение по умолчанию (1)
Он определяет количество желаемых стручков.
spec: replicas: 3 selector: matchLabels: app: wordpress type: db template: metadata: name: wordpress-db labels: app: wordpress type: db spec: restartPolicy: Always containers: - name: wordpress-db-container image: mysql:5.7 env: - name: MYSQL_ROOT_PASSWORD value: DEVOPS1
В приведенном выше примере .spec.selector.matchlabels
соответствует .selector.template.metadata.labels.labels.
И имеет реплику 3 и, следовательно, у него всегда будет работать 3 стручка, и если один POD разрушен, будет создан другой POD.
4) SPEC.Strategy — необязательно — по умолчанию (Rollingupdate)
Он определяет стратегию для замены старых стручков новыми. Возможные значения — Rollingupdate
— Убить партий или одиночные стручки и воссоздать тех, но не все и Воссоздать
— Все существующие стручки убиты перед новыми созданы
spec: replicas: 3 strategy: type: RollingUpdate
Пример
apiVersion: apps/v1 kind: Deployment metadata: name: wordpress.db labels: app: wordpress type: db-deployment spec: replicas: 2 selector: matchLabels: app: wordpress type: db template: metadata: name: wordpress-db labels: app: wordpress type: db spec: containers: - name: wordpress-db-container image: mysql:5.7 env: - name: MYSQL_ROOT_PASSWORD value: DEVOPS1 ports: - containerPort: 3306 name: mysql
Предположим, что мы создаем еще одно развертывание для MySQL с 2 репликами, у нас есть наша текущая настройка, которую мы создали ниже.
Мы на самом деле не создали развертывание в этом посте, но мы создадим развертывание в предстоящих постах.
Это основы развертывания, которые нам нужно понять, чтобы дать бессмертие стручкам (конечно, псевдомоментарность, поскольку весь кластер Kubernetes может выйти из комиссии).
Оригинал: «https://dev.to/preethamsathyamurthy/kubernetes-deployments-a-way-to-scale-pods-a-way-to-immortality-590m»