gizex

Создание Docker Registry Secret в K8S

Kubernetes k8s, docker, registry

  1. Создание Docker Registry Secret

Для создания секрета в Kubernetes, содержащего ваши учетные данные для реестра, используйте следующую команду:

kubectl create secret docker-registry gitlab-registry-secret \
--docker-server=<ВАШ_GITLAB_REGISTRY_URL> \
--docker-username=<ВАШ_ПОЛЬЗОВАТЕЛЬСКИЙ_ID> \
--docker-password=<ВАШ_ПАРОЛЬ> \
--docker-email=<ВАШ_EMAIL>

Замените <ВАШ_GITLAB_REGISTRY_URL>, <ВАШ_ПОЛЬЗОВАТЕЛЬСКИЙ_ID>, <ВАШ_ПАРОЛЬ> и <ВАШ_EMAIL> на ваши данные для доступа к GitLab Docker Registry.

  1. Обновление Deployment для Использования Secret

Отредактируйте ваш deployment.yaml, чтобы Kubernetes использовал этот секрет при вытягивании образов из реестра:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: dle-deployment
spec:
  replicas: 1
  selector:
    matchLabels:
      app: dle
  template:
    metadata:
      labels:
        app: dle
    spec:
      containers:
      - name: dle
        image: registry.gizex.ru/main/datalife-engine:17-0
        ports:
        - containerPort: 80
        volumeMounts:
        - name: html-volume
          mountPath: /var/www/html
      volumes:
      - name: html-volume
        hostPath:
          path: /путь/к/локальной/папке/html
          type: Directory
      imagePullSecrets:
      - name: gitlab-registry-secret

Обратите внимание на добавленный раздел imagePullSecrets, который указывает на созданный секрет.

  1. Attach secret to default service account
kubectl patch serviceaccount default -p '{"imagePullSecrets": [{"name": "gitlab-registry-secret"}]}'

Посмотреть секреты

kubectl get secrets
Просмотреть содержимое секрета

Чтобы увидеть фактическое содержимое секрета, выполните:

kubectl get secret <имя-секрета> -o yaml

или

kubectl get secret <имя-секрета> -o json

Эти команды вернут секрет в формате YAML или JSON соответственно. Обратите внимание, что данные в секрете будут в кодировке base64. Вы можете декодировать их, чтобы просмотреть в читаемом виде.

Декодирование закодированных данных секрета

Для декодирования данных из секрета, скопируйте закодированную строку и выполните:

echo '<закодированные-данные>' | base64 --decode