Создание Docker Registry Secret в K8S
- Создание 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>
- Обновление 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, который указывает на созданный секрет.
- 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