Налаштування Pod для використання projected тому для зберігання
Ця сторінка показує, як використовувати projected
том, щоб змонтувати декілька наявних джерел томів у одну теку. Наразі можна проєктувати томи типів secret
, configMap
, downwardAPI
, та serviceAccountToken
.
Примітка:
serviceAccountToken
не є типом тому.Перш ніж ви розпочнете
Вам треба мати кластер Kubernetes, а також інструмент командного рядка kubectl має бути налаштований для роботи з вашим кластером. Рекомендується виконувати ці настанови у кластері, що має щонайменше два вузли, які не виконують роль вузлів управління. Якщо у вас немає кластера, ви можете створити його, за допомогою minikube або використовувати одну з цих пісочниць:
Для перевірки версії введітьkubectl version
.Налаштування projected тому для Pod
У цьому завданні ви створите Secrets із локальних файлів для імені користувача та пароля. Потім ви створите Pod, який запускає один контейнер, використовуючи projected
том для монтування секретів у спільну теку.
Ось файл конфігурації для Pod:
apiVersion: v1
kind: Pod
metadata:
name: test-projected-volume
spec:
containers:
- name: test-projected-volume
image: busybox:1.28
args:
- sleep
- "86400"
volumeMounts:
- name: all-in-one
mountPath: "/projected-volume"
readOnly: true
volumes:
- name: all-in-one
projected:
sources:
- secret:
name: user
- secret:
name: pass
Створіть Secrets:
# Створіть файли, що містять імʼя користувача та пароль: echo -n "admin" > ./username.txt echo -n "1f2d1e2e67df" > ./password.txt # Запакуйте ці файли у секрети: kubectl create secret generic user --from-file=./username.txt kubectl create secret generic pass --from-file=./password.txt
Створіть Pod:
kubectl apply -f https://k8s.io/examples/pods/storage/projected.yaml
Перевірте, що контейнер Pod запущено, а потім слідкуйте за змінами в Podʼі:
kubectl get --watch pod test-projected-volume
Вивід буде виглядати так:
NAME READY STATUS RESTARTS AGE test-projected-volume 1/1 Running 0 14s
В іншому терміналі отримайте оболонку до запущеного контейнера:
kubectl exec -it test-projected-volume -- /bin/sh
У вашій оболонці перевірте, що тека
projected-volume
містить ваші projected джерела:ls /projected-volume/
Очищення
Видаліть Pod та Secrets:
kubectl delete pod test-projected-volume
kubectl delete secret user pass
Що далі
- Дізнайтеся більше про
projected
томи. - Прочитайте документ про проєктування all-in-one volume.