Перейти к основному содержимому
Развернуть образ из Container Registry в Managed Kubernetes

Развернуть образ из Container Registry в Managed Kubernetes

Вы можете разворачивать приложения в Managed Kubernetes из образов, которые вы храните в Container Registry.

Подготовить окружение

Перед началом работы:

  1. Создайте кластер Managed Kubernetes.
  2. Настройте kubectl.
  3. Создайте реестр Container Registry.
  4. Получите токен — логин (username) и пароль (password).

Загрузить образ в Container Registry

  1. Авторизуйтесь в реестре.

  2. Введите логин (username) и пароль (password).

  3. Присвойте образу тег:

    docker tag <image> cr.selcloud.ru/<registry>/<image>:<tag>

    Укажите:

    • <image> — имя образа, можно посмотреть с помощью docker image list
    • <registry> — имя реестра, в который нужно загрузить образ;
    • <tag> — тег.
  4. Загрузите образ в реестр:

    docker push cr.selcloud.ru/<registry>/<image>:<tag>

Создать секрет

Чтобы развернуть образ контейнера в кластере Managed Kubernetes, создайте объект Secret — секрет.

  1. Создайте секрет:

    kubectl create secret docker-registry <secret_name> \
    --docker-server=cr.selcloud.ru \
    --docker-username=<username> \
    --docker-password=<password> \
    --namespace=<namespace>

    Укажите:

    • <secret_name> — имя секрета;
    • <username> — пользователь, созданный при получении токена;
    • <password> — пароль, созданный при получении токена;
    • <namespace> — опционально: если вы создаете контейнер в пространстве имен, отличном от default, укажите имя своего пространства имен.
  2. Проверьте, что секрет создан:

    kubectl get secret <secret_name> --output=yaml

Развернуть приложение из образа

  1. Создайте файл deployment.yaml:

    nano deployment.yaml
  2. Скопируйте в файл содержимое:

    apiVersion: apps/v1
    kind: Deployment
    metadata:
    name: example-deployment
    labels:
    app: example-deployment
    spec:
    replicas: 2
    selector:
    matchLabels:
    app: example-deployment
    template:
    metadata:
    labels:
    app: example-deployment
    spec:
    containers:
    - name: <image_name>
    image: cr.selcloud.ru/<registry>/<image>:latest
    imagePullSecrets:
    - name: <secret_name>

    Укажите:

    • <registry> — имя реестра;
    • <image_name> — имя образа;
    • <secret_name> — имя секрета.
  3. Разверните приложение:

    kubectl apply -f deployment.yaml
  4. Проверьте статус подов — они должны быть в статусе running:

    kubectl get pods