Образ контейнера-виртуальной машины с томами GPD завершается ошибкой: "Не удалось получить облачный провайдер GCE. Вместо этого plugin.host.GetCloudProvider возвратил <nil>"
В настоящее время я пытаюсь переключиться с "Оптимизированных для контейнера изображений Google Compute Engine" ( https://cloud.google.com/compute/docs/containers/container_vms) на изображение "Container-VM" ( https://cloud.google.com/compute/docs/containers/vm-image/). В моем container.yaml я определяю объем и контейнер, используя объем.
apiVersion: v1
kind: Pod
metadata:
name: workhorse
spec:
containers:
- name: postgres
image: postgres:9.5
imagePullPolicy: Always
volumeMounts:
- name: postgres-storage
mountPath: /var/lib/postgresql/data
volumes:
- name: postgres-storage
gcePersistentDisk:
pdName: disk-name
fsType: ext4
Эта установка прекрасно работала с "Образами Google Compute Engine, оптимизированными для контейнеров", но не работала с "Container-VM". В логах я вижу следующую ошибку:
May 24 18:33:43 battleship kubelet[629]: E0524 18:33:43.405470 629 gce_util.go:176]
Error getting GCECloudProvider while detaching PD "disk-name":
Failed to get GCE Cloud Provider. plugin.host.GetCloudProvider returned <nil> instead
Заранее спасибо за любую подсказку!
1 ответ
Это происходит только когда kubelet
работает без --cloud-provider=gce
флаг. Проблема, если не что-то иное, зависит от того, как GCP запускает виртуальные машины-контейнеры.
Пожалуйста, свяжитесь с ребятами облачной платформы Google.
Обратите внимание, если это происходит с вами при использовании GCE: Добавить --cloud-provider=gce
флаг для kubelet
во всех ваших работниках. Это относится только к кластерным версиям 1.2, потому что, если я не ошибаюсь, существует постоянный дизайн присоединения / отсоединения, предназначенный для кластеров 1.3, который выведет эту бизнес-логику изkubelet
,
В случае, если кто-то заинтересован в редизайне присоединения / отсоединения здесь, это соответствующий выпуск github: https://github.com/kubernetes/kubernetes/issues/20262