Kubernetes v1.36 [stable](habilitado por padrão)Esta página mostra como configurar um pod usando volumes de imagem. Isso permite que você monte conteúdo de registros OCI dentro de contêineres.
Você precisa ter um cluster do Kubernetes e a ferramenta de linha de comando kubectl deve estar configurada para se comunicar com seu cluster. É recomendado executar esse tutorial em um cluster com pelo menos dois nós que não estejam atuando como hosts de camada de gerenciamento. Se você ainda não possui um cluster, pode criar um usando o minikube ou pode usar um dos seguintes ambientes:
O seu servidor Kubernetes deve estar numa versão igual ou superior a v1.31.Para verificar a versão, digite kubectl version.
Um volume de imagem para um pod é habilitado definindo o campo volumes[*].image de .spec
como uma referência válida e consumindo-o nos volumeMounts do contêiner. Por exemplo:
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
Crie o pod no seu cluster:
kubectl apply -f https://k8s.io/examples/pods/image-volumes.yaml
Acesse o contêiner:
kubectl exec image-volume -it -- bash
Verifique o conteúdo de um arquivo no volume:
cat /volume/dir/file
A saída é semelhante a:
1
Você também pode verificar outro arquivo em um caminho diferente:
cat /volume/file
A saída é semelhante a:
2
subPath (ou subPathExpr)É possível utilizar
subPath ou
subPathExpr
a partir do Kubernetes v1.33 ao usar a funcionalidade de volumes de imagem.
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
Crie o pod no seu cluster:
kubectl apply -f https://k8s.io/examples/pods/image-volumes-subpath.yaml
Acesse o contêiner:
kubectl exec image-volume -it -- bash
Verifique o conteúdo do arquivo a partir do subdiretório dir no volume:
cat /volume/file
A saída é semelhante a:
1