Налаштування Pod для використання projected тому для зберігання

Ця сторінка показує, як використовувати projected том, щоб змонтувати декілька наявних джерел томів у одну теку. Наразі можна проєктувати томи типів secret, configMap, downwardAPI, та 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
  1. Створіть 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
    
  2. Створіть Pod:

    kubectl apply -f https://k8s.io/examples/pods/storage/projected.yaml
    
  3. Перевірте, що контейнер Pod запущено, а потім слідкуйте за змінами в Podʼі:

    kubectl get --watch pod test-projected-volume
    

    Вивід буде виглядати так:

    NAME                    READY     STATUS    RESTARTS   AGE
    test-projected-volume   1/1       Running   0          14s
    
  4. В іншому терміналі отримайте оболонку до запущеного контейнера:

    kubectl exec -it test-projected-volume -- /bin/sh
    
  5. У вашій оболонці перевірте, що тека projected-volume містить ваші projected джерела:

    ls /projected-volume/
    

Очищення

Видаліть Pod та Secrets:

kubectl delete pod test-projected-volume
kubectl delete secret user pass

Що далі

  • Дізнайтеся більше про projected томи.
  • Прочитайте документ про проєктування all-in-one volume.
Змінено June 20, 2024 at 12:44 PM PST: Sync changest from andygol/k8s-website (36d05bc8a1)