Развернуть образ из Container Registry в Managed Kubernetes
Развернуть образ из Container Registry в Managed Kubernetes
Вы можете разворачивать приложения в Managed Kubernetes из образов, которые вы храните в Container Registry.
Подготовить окружение
Перед началом работы:
- Создайте кластер Managed Kubernetes.
- Настройте kubectl.
- Создайте реестр Container Registry.
- Получите токен — логин (username) и пароль (password).
Загрузить образ в Container Registry
Введите логин (username) и пароль (password).
Присвойте образу тег:
docker tag <image> cr.selcloud.ru/<registry>/<image>:<tag>
Укажите:
<image>
— имя образа, можно посмотреть с помощьюdocker image list
<registry>
— имя реестра, в который нужно загрузить образ;<tag>
— тег.
Загрузите образ в реестр:
docker push cr.selcloud.ru/<registry>/<image>:<tag>
Создать секрет
Чтобы развернуть образ контейнера в кластере Managed Kubernetes, создайте объект Secret — секрет.
Создайте секрет:
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, укажите имя своего пространства имен.
Проверьте, что секрет создан:
kubectl get secret <secret_name> --output=yaml
Развернуть приложение из образа
Создайте файл deployment.yaml:
nano deployment.yaml
Скопируйте в файл содержимое:
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>
— имя секрета.
Разверните приложение:
kubectl apply -f deployment.yaml
Проверьте статус подов — они должны быть в статусе running:
kubectl get pods