概要
AtomicHost(CentOS)のkubeletデーモンを起動させようとしたところ
以下のようなエラーが出て起動出来ませんでした。
エラーメッセージ
[centos@myhost ~]$ sudo systemctl start kubelet Failed to issue method call: Unit docker.socket failed to load: No such file or directory.
対処法
kubeletのサービスファイル内を修正してあげる必要がありました。
/usr/lib/systemd/system/kubelet.service
このファイルです。
しかしこのファイルはReadOnlyで修正出来ません。
そこで、/etc/systemd/system
へ移動させてから修正します。
/usr/lib/systemd/system/
以下のserviceファイルより
/etc/systemd/system/
以下のserviceファイルのほうが優先的に読み込まれます。
sudo cp -p /usr/lib/systemd/system/kubelet.service /etc/systemd/system/ sudo vi /etc/systemd/system/kubelet.service
serviceファイル移動後、該当箇所を修正します。
[Unit] Description=Kubernetes Kubelet Server Documentation=https://github.com/GoogleCloudPlatform/kubernetes After=docker.socket cadvisor.service Requires=docker.socket [Service] EnvironmentFile=-/etc/kubernetes/config EnvironmentFile=-/etc/kubernetes/kubelet ExecStart=/usr/bin/kubelet \ ${KUBE_LOGTOSTDERR} \ ${KUBE_LOG_LEVEL} \ ${KUBE_ETCD_SERVERS} \ ${MINION_ADDRESS} \ ${MINION_PORT} \ ${MINION_HOSTNAME} \ ${KUBE_ALLOW_PRIV} \ ${MINION_ARGS} Restart=on-failure [Install] WantedBy=multi-user.target
このファイルの下記2箇所を修正します。
1つ目
After=docker.socket cadvisor.service
↓
After=docker.service cadvisor.service
2つ目
Requires=docker.socket
↓
Requires=docker.service
修正後、OS再起動を行い無事kubeletデーモンを起動させることが出来ました。
バージョン情報
CentOS Linux release 7.0.1406 (Core) kubernetes-0.4-0.3.gite868642.el7.centos.x86_64