ベアメタルでkubernetesを実行していますDebian(今のところ3マスター、2ワーカー、PoC)。私はk8s-the-hard-wayに従いましたが、kubeletで次の問題に直面しています。
「/system.slice/docker.service」のシステムコンテナ統計の取得に失敗しました:「/ system.slice/docker.service」のcgroup統計の取得に失敗しました:「/ system.slice/docker.service」のcgroup統計の取得に失敗しました":" /system.slice/docker.service "のコンテナー情報の取得に失敗しました:不明なコンテナー" /system.slice/docker.service "
そして、kubelet.serviceにも同じメッセージがあります。
これらのcgroupについてfilesがあります:
$ ls /sys/fs/cgroup/systemd/system.slice/docker.service
cgroup.clone_children cgroup.procs notify_on_release tasks
$ ls /sys/fs/cgroup/systemd/system.slice/kubelet.service/
cgroup.clone_children cgroup.procs notify_on_release tasks
そしてcadvisorは私に言う:
$ curl http://127.0.0.1:4194/validate
cAdvisor version:
OS version: Debian GNU/Linux 8 (jessie)
Kernel version: [Supported and recommended]
Kernel version is 3.16.0-4-AMD64. Versions >= 2.6 are supported. 3.0+ are recommended.
Cgroup setup: [Supported and recommended]
Available cgroups: map[cpu:1 memory:1 freezer:1 net_prio:1 cpuset:1 cpuacct:1 devices:1 net_cls:1 blkio:1 perf_event:1]
Following cgroups are required: [cpu cpuacct]
Following other cgroups are recommended: [memory blkio cpuset devices freezer]
Hierarchical memory accounting enabled. Reported memory usage includes memory used by child containers.
Cgroup mount setup: [Supported and recommended]
Cgroups are mounted at /sys/fs/cgroup.
Cgroup mount directories: blkio cpu cpu,cpuacct cpuacct cpuset devices freezer memory net_cls net_cls,net_prio net_prio perf_event systemd
Any cgroup mount point that is detectible and accessible is supported. /sys/fs/cgroup is recommended as a standard location.
Cgroup mounts:
cgroup /sys/fs/cgroup/systemd cgroup rw,nosuid,nodev,noexec,relatime,xattr,release_agent=/lib/systemd/systemd-cgroups-agent,name=systemd 0 0
cgroup /sys/fs/cgroup/cpuset cgroup rw,nosuid,nodev,noexec,relatime,cpuset 0 0
cgroup /sys/fs/cgroup/cpu,cpuacct cgroup rw,nosuid,nodev,noexec,relatime,cpu,cpuacct 0 0
cgroup /sys/fs/cgroup/memory cgroup rw,nosuid,nodev,noexec,relatime,memory 0 0
cgroup /sys/fs/cgroup/devices cgroup rw,nosuid,nodev,noexec,relatime,devices 0 0
cgroup /sys/fs/cgroup/freezer cgroup rw,nosuid,nodev,noexec,relatime,freezer 0 0
cgroup /sys/fs/cgroup/net_cls,net_prio cgroup rw,nosuid,nodev,noexec,relatime,net_cls,net_prio 0 0
cgroup /sys/fs/cgroup/blkio cgroup rw,nosuid,nodev,noexec,relatime,blkio 0 0
cgroup /sys/fs/cgroup/perf_event cgroup rw,nosuid,nodev,noexec,relatime,perf_event 0 0
Managed containers:
/kubepods/burstable/pod76099b4b-af57-11e7-9b82-fa163ea0076a
/kubepods/besteffort/pod6ed4ee49-af53-11e7-9b82-fa163ea0076a/f9da6bf60a186c47bd704bbe3cc18b25d07d4e7034d185341a090dc3519c047a
Namespace: docker
Aliases:
k8s_tiller_tiller-deploy-cffb976df-5s6np_kube-system_6ed4ee49-af53-11e7-9b82-fa163ea0076a_1
f9da6bf60a186c47bd704bbe3cc18b25d07d4e7034d185341a090dc3519c047a
/kubepods/burstable/pod76099b4b-af57-11e7-9b82-fa163ea0076a/956911118c342375abfb7a07ec3bb37451bbc64a1e141321b6284cf5049e385f
[〜#〜] edit [〜#〜]
Kubeletのcadvisorポートを無効にする(--cadvisor-port=0
)はそれを修正しません。
でkubeletを起動してみてください
--runtime-cgroups=/systemd/system.slice --kubelet-cgroups=/systemd/system.slice
私はこのソリューションをRHEL7でKubelet 1.8.0およびDocker 1.12とともに使用しています
Angeloxxの回避策は、kopsのAWSデフォルトイメージでも機能します(k8s-1.8-debian-jessie-AMD64-hvm-ebs-2017-12-02(AMI-bd229ec4))
Sudo vim /etc/sysconfig/kubelet
dAEMON_ARGS文字列の最後に追加します。
--runtime-cgroups=/systemd/system.slice --kubelet-cgroups=/systemd/system.slice
最後に:
Sudo systemctl restart kubelet
私はyum update
この変更に加えて、機能するようにします。他の人がこの回避策を試すのに役立つかもしれません。
さらに少し進んだものについては、上記のようにkops AMI kope.io/k8s-1.8-debian-jessie-AMD64-hvm-ebs-2018-02-08で追加しなければなりませんでした:
dAEMON_ARGS文字列の最後に追加します。
--runtime-cgroups=/lib/systemd/system/kubelet.service --kubelet-cgroups=/lib/systemd/system/kubelet.service
その後: Sudo systemctl restart kubelet
しかし、私はまだ得ていました:
Failed to get system container stats for "/system.slice/docker.service": failed to get cgroup stats for "/system.slice/docker.service": failed to get container info for "/system.slice/docker.service": unknown container "/system.slice/docker.service"
dockerdを再起動すると、次のエラーが解決されました:Sudo systemctl restart docker
ありがとう
少し掘り下げた後、kops構成にこれを追加するためのより良い解像度が見つかりました。