Рубрики
Uncategorized

Развертывание Kubernetes — способ масштабирования стручков — путь к бессмертию

Стручки смертные. Они рождаются и когда они умирают, они не воскреснуты. Объект развертывания — Ho … Теги с Куберанетами, DevOps, учебником.

Стручки смертные. Они рождаются и когда они умирают, они не воскреснуты. Объект развертывания — это то, как вы можете дать бессмертие для стручков.

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

Развертывание управляет несколькими репликами вашего приложения и автоматически заменяет любые экземпляры, которые не выполнены или не отвечают.

Контроллер развертывания Предоставляет декларативные обновления для 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»