2017-10-06 31 views
0

我想在Rackspace中設置Kubernetes集羣,並且我知道要獲得持久卷支持,我需要使用Cinder (由Rackspace支持Openstack)。Kubernetes - 無法啓動與雲供應商OpenStack的kubelet(錯誤從雲提供商獲取當前節點名稱)

Cloud Provider Integrations setup指導,我已經安裝/etc/kubernetes/cloud-config如下

[Global] 
username=cinder 
password=******** 
auth-url=https://identity.api.rackspacecloud.com/v2.0 
tenant-name=1234567 
region=LON 

我已在/etc/systemd/system/kubelet.service.d/10-kubeadm.conf

--cloud-provider=openstack --cloud-config=/etc/kubernetes/cloud-config 

以下的kubelet啓動命令而我則運行kubeadm init --config=kubeadm.conf哪裏kubeadm.conf是:

kind: MasterConfiguration 
apiVersion: kubeadm.k8s.io/v1alpha1 
cloudProvider: openstack 
pod-network-cidr: 10.244.0.0/16 

等待Kubelet啓動失敗。我追查到kubelet錯誤如下:

07:24:51.407692 21412 feature_gate.go:156] feature gates: map[] 
07:24:51.407790 21412 controller.go:114] kubelet config controller: starting controller 
07:24:51.407849 21412 controller.go:118] kubelet config controller: validating combination of defaults and flags 
07:24:51.413973 21412 mount_linux.go:168] Detected OS with systemd 
07:24:51.414065 21412 client.go:75] Connecting to docker on unix:///var/run/docker.sock 
07:24:51.414137 21412 client.go:95] Start docker client with request timeout=2m0s 
07:24:51.415471 21412 cni.go:196] Unable to update cni config: No networks found in /etc/cni/net.d 
07:24:51.437924 21412 iptables.go:564] couldn't get iptables-restore version; assuming it doesn't support --wait 
07:24:51.440245 21412 feature_gate.go:156] feature gates: map[] 
07:24:52.066765 21412 server.go:301] Successfully initialized cloud provider: "openstack" from the config file: "/etc/kubernetes/cloud-config" 
07:24:52.066984 21412 openstack_instances.go:39] openstack.Instances() called 
07:24:52.067048 21412 openstack_instances.go:46] Claiming to support Instances 
07:24:52.070870 21412 metadata.go:84] Unable to run blkid: exit status 2 
07:24:52.070993 21412 metadata.go:124] Attempting to fetch metadata from http://169.254.169.254/openstack/2012-08-10/meta_data.json 
07:25:22.071444 21412 metadata.go:127] Cannot read http://169.254.169.254/openstack/2012-08-10/meta_data.json: Get http://169.254.169.254/openstack/2012-08-10/meta_data.json: dial tcp 169.254.169.254:80: i/o timeout 
error: failed to run Kubelet: error fetching current node name from cloud provider: Get http://169.254.169.254/openstack/2012-08-10/meta_data.json: dial tcp 169.254.169.254:80: i/o timeout 

如何進一步調試?我不太瞭解IP地址169.254.169.254在這個請求中的工作原理。

現在我不知道我是否有Kubernetes問題或Rackspace問題。

回答

0

答案是Rackspace Cloud不使用Openstack元數據服務。相反,它使用cloud-init和config-drive - 在引導時附加的只讀塊設備(虛擬CD-ROM)。

配置驅動器包含雲初始化數據。示例https://developer.rackspace.com/blog/using-cloud-init-with-rackspace-cloud/

有趣的是,似乎大多數使用Kubernetes的Rackspace客戶都使用支持cloud-config和Openstack配置驅動器的CoreOS VMs。當K8s在裝有驅動器的機器上運行時,它會嘗試從那裏獲取元數據。

相關問題