Пост

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

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

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

1
2
3
4
5
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.ВАШ_EMAIL>ВАШ_ПАРОЛЬ>ВАШ_ПОЛЬЗОВАТЕЛЬСКИЙ_ID>ВАШ_GITLAB_REGISTRY_URL>

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

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
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
    1
    
    kubectl patch serviceaccount default -p '{"imagePullSecrets": [{"name": "gitlab-registry-secret"}]}'
    

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

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

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

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

или

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

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

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

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

bash

1
echo '<закодированные-данные>' | base64 --decode
Авторский пост защищен лицензией CC BY 4.0 .