带有GPD卷的Container-VM映像失败,“无法获取GCE云提供程序.plugin.host.GetCloudProvider返回<nil>而不是”

时间:2016-05-24 18:45:05

标签: containers kubernetes google-cloud-platform google-container-os

我目前尝试从“容器优化的Google计算引擎映像”(https://cloud.google.com/compute/docs/containers/container_vms)切换到“容器-VM”映像(https://cloud.google.com/compute/docs/containers/vm-image/#overview)。在我的containers.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计算引擎映像”,但无法使用“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 个答案:

答案 0 :(得分:2)

只有在没有kubelet标志的情况下运行--cloud-provider=gce时才会发生这种情况。除非有所不同,否则问题取决于GCP如何启动Container-VM。

请与谷歌云平台人员联系。

请注意,如果您在使用GCE时发生这种情况:在所有工作人员中将--cloud-provider=gce标记添加到kubelet。这仅适用于1.2群集版本,因为如果我没有错,则会有针对1.3群集的持续附加/分离设计,这将使此业务逻辑移出kubelet

如果有人对此处的附加/分离重新设计感兴趣,那么它就是相应的github问题:https://github.com/kubernetes/kubernetes/issues/20262