че следующие работы и должны доказать это вам:
1. Кодирование Base64, например, имя пользователя | пароль:
U=$(echo -n "freddie" | base64)
P=$(echo -n "fridays" | base64)
NB Переменные среды хоста: U
и P
Предположим,
POD="p" # Or...
SECRET="s" # Or...
NAMESPACE="default" # Or...
2. Создайте секрет:
echo "
apiVersion: v1
kind: Secret
metadata:
name: ${SECRET}
data:
u: ${U}
p: ${P}
" | kubectl apply --filename=- --namespace=${NAMESPACE}
NB Данные Секрета содержат значения u
и p
(соответствующие U
и P
)
выходы :
secret/x created
И:
kubectl describe secret/${SECRET} --namespace=${NAMESPACE}
дает:
Name: ${SECRET}
Namespace: ${NAMESPACE}
Labels: <none>
Annotations:
Type: Opaque
Data
====
p: 7 bytes
u: 7 bytes
3. Прикрепите секретные значения к модулю:
echo "
apiVersion: v1
kind: Pod
metadata:
name: ${POD}
spec:
containers:
- name: test
image: python
command:
- python3
- -c
- \"import os;print(os.environ['USERNAME']);print(os.environ['PASSWORD'])\"
env:
- name: USERNAME
valueFrom:
secretKeyRef:
name: ${SECRET}
key: u
- name: PASSWORD
valueFrom:
secretKeyRef:
name: ${SECRET}
key: p
" | kubectl apply --filename=- --namespace=${NAMESPACE}
NB Среда модуля отображает секретные данные u
-> USERNAME
, p
-> PASSWORD
NB Эти изменения имени переменной должны показать точку; они могут быть одинаковыми
4. Просмотрите логи модуля Pod
kubectl logs pod/${POD} --namespace=${NAMESPACE}
(в моем случае):
freddie
fridays