読者です 読者をやめる 読者になる 読者になる

AtomicHostのKubernetesのkubeletデーモン起動エラー対処メモ

Docker

概要

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