У меня есть процесс, который необходимо запускать ежедневно в контейнере Docker, синхронизируя некоторые данные из корзины хранилища с внешним томом (постоянный диск Google Cloud). Пока мне удалось запустить процесс, создав одноузловой контейнерный кластер.
Поскольку процесс завершается через пару часов, я хочу удалить ресурсы виртуальной машины (кроме постоянного диска, конечно) после завершения. Запуск / удаление одной вычислительной виртуальной машины (без настройки кластера kubernetes) кажется более простым, поэтому я пытался получить одиночный кубелет, работающий в облачном экземпляре, оптимизированном для контейнеров. Постоянное монтирование диска - вот где это не удается.
Моя команда запуска:
gcloud compute instances create cvm-name-0 \
--image-family=cos-stable \
--image-project=cos-cloud \
--boot-disk-type pd-ssd \
--boot-disk-size 10GB \
--metadata-from-file \
"google-container-manifest=containers.yaml,user-data=cloudinit.yaml" \
--zone "$gzone" \
--scopes default,storage-rw \
--machine-type n1-highcpu-4
Содержание container.yaml
:
apiVersion: v1
kind: Pod
metadata:
name: container-name
spec:
containers:
- name: container-name
image: gcr.io/project-name/container-name
imagePullPolicy: Always
volumeMounts:
- name: persistent-disk-name
mountPath: /home/someuser/somedir
volumes:
- name: persistent-disk-name
gcePersistentDisk:
pdName: persistent-disk-name
fsType: ext4
Содержание cloudinit.yaml
:
#cloud-config
bootcmd:
- echo "KUBELET_OPTS=\"--cloud-provider=gce\"" > /etc/default/kubelet
runcmd:
- systemctl start kubelet.service
Хотя опция --cloud-provider=gce
исправляет ошибку «Не удалось получить GCE Cloud Provider» для этот вопрос, проблема с подключением диска все еще не устранена.
В потенциально актуальной строке журнала ОС контейнера говорится:
EXT4-fs (dm-0): не удалось смонтировать как ext3 из-за несовместимости функций
Есть ли способ заставить эту работу работать на одном вычислительном экземпляре (без кластера кубернетов)? Где еще мне искать более информативные журналы ошибок?