Використання тому Image в Pod
Kubernetes v1.35 [beta](стандартно увімкнено)Ця сторінка демонструє, як налаштувати Pod для використання томів image. Це дозволяє монтувати вміст з OCI реєстрів всередині контейнерів.
Перш ніж ви розпочнете
Вам треба мати кластер Kubernetes, а також інструмент командного рядка kubectl має бути налаштований для роботи з вашим кластером. Рекомендується виконувати ці настанови у кластері, що має щонайменше два вузли, які не виконують роль вузлів управління. Якщо у вас немає кластера, ви можете створити його, за допомогою minikube або використовувати одну з цих пісочниць:
Версія вашого Kubernetes сервера має бути не старішою ніж v1.31.Для перевірки версії введіть kubectl version.
- Середовище виконання контейнерів має підтримувати функцію томів image.
- Вам потрібно мати можливість виконувати команди на хості.
- Вам потрібно мати можливість підключатися до pod.
- Вам потрібно увімкнути функціональну можливість
ImageVolume.
Запуск Podʼа, що використовує том image
Том image для Podʼа активується шляхом налаштування поля volumes[*].image у .spec на дійсне посилання та використання його в volumeMounts контейнера. Наприклад:
apiVersion: v1
kind: Pod
metadata:
name: image-volume
spec:
containers:
- name: shell
command: ["sleep", "infinity"]
image: debian
volumeMounts:
- name: volume
mountPath: /volume
volumes:
- name: volume
image:
reference: quay.io/crio/artifact:v2
pullPolicy: IfNotPresent
Створіть Pod у вашому кластері:
kubectl apply -f https://k8s.io/examples/pods/image-volumes.yamlПриєднайтесь до контейнера:
kubectl exec image-volume -it -- bashПеревірте вміст файлу в томі:
cat /volume/dir/fileВивід буде подібний до:
1Ви також можете перевірити інший файл з іншим шляхом:
cat /volume/fileВивід буде подібний до:
2
Використання subPath (або subPathExpr)
В Kubernetes v1.33 можливо використовувати subPath або subPathExpr під час використання функціоналу тому образу.
apiVersion: v1
kind: Pod
metadata:
name: image-volume
spec:
containers:
- name: shell
command: ["sleep", "infinity"]
image: debian
volumeMounts:
- name: volume
mountPath: /volume
subPath: dir
volumes:
- name: volume
image:
reference: quay.io/crio/artifact:v2
pullPolicy: IfNotPresent
Створіть pod у вашому кластері:
kubectl apply -f https://k8s.io/examples/pods/image-volumes-subpath.yamlПриєднайтесь до контейнера:
kubectl exec image-volume -it -- bashПеревірте вміст фала з шляху
dirу томі:cat /volume/fileВивід буде подібним до:
1