Похоже, я неправильно понимаю Volume, VolumeMount и MountPath. Что мне не хватает? Может ли кто-нибудь указать мне в правильном направлении?
hostPath:
# directory location on host
path: /home/rgn/kubernetes/scripts
Том hostPath
монтирует файл или каталог из файловой системы хост-узла Kubernetes (k8s) в ваш Pod. Это не то, что понадобится большинству модулей, но оно предлагает мощный аварийный выход для некоторых приложений. Этот path
относится к пути на узле k8s, который запускает ваш контейнер nginx
.
Чтобы ответить на ваш конкретный случай c: убедитесь, что каталог /home/rgn/kubernetes/scripts
существует на вашем узле k8s.
Я только что выполнил развертывание из вопроса на моем собственном кластере gke (2 узла)
$kubectl get nodes
NAME
gke-ubuntu-mnnv
gke-ubuntu-nw9v
$ kubectl apply -f deployment.yaml
$ kubectl get pods -o wide
NAME READY STATUS RESTARTS AGE NODE
nginx-deployment-ddbfb785d-fggpq 1/1 Running 0 19s gke-ubuntu-nw9v
$ kubectl exec nginx-deployment-ddbfb785d-fggpq -- ls -la containerdrive
total 8
drwxr-xr-x 2 root root 4096 Jun 22 11:54 .
drwxr-xr-x 1 root root 4096 Jun 22 11:55 ..
-rw-r--r-- 1 root root 0 Jun 22 11:54 gke-ubuntu-nw9v-file
$ kubectl describe deployments nginx-deployment
...
Mounts:
/containerdrive from test-volume (rw)
Volumes:
test-volume:
Type: HostPath (bare host directory volume)
Path: /tmp/knp
HostPathType:
...
# and on k8s node itself:
$ ls -lah /tmp/knp/
total 8.0K
drwxr-xr-x 2 root root 4.0K Jun 22 11:54 .
drwxrwxrwt 10 root root 4.0K Jun 22 12:08 ..
-rw-r--r-- 1 root root 0 Jun 22 11:54 gke-ubuntu-nw9v-file
Надеюсь, этот вывод поможет ясно увидеть всю картину. :)
Кроме того, как сказал Дэвид Мейз, было бы неплохо скомпилировать все сценарии, на которые вы полагаетесь, в сам контейнер.