J'utilise kubernetes sur du bare-metal Debian (3 maîtres, 2 ouvriers, PoC pour l'instant). J'ai suivi k8s à la dure et je rencontre le problème suivant sur mon kubelet:
Impossible d'obtenir les statistiques du conteneur système pour "/system.slice/docker.service": échec de l'obtention des statistiques de groupe pour "/system.slice/docker.service": échec de l'obtention des statistiques de groupe pour "/system.slice/docker.service ": impossible d'obtenir les informations de conteneur pour" /system.slice/docker.service ": conteneur inconnu" /system.slice/docker.service "
Et j'ai le même message pour kubelet.service.
J'ai quelques fichiers sur ces groupes de contrôle:
$ 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
Et cadvisor me dit:
$ 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
MODIFIER
Désactiver le port cadvisor sur kubelet (--cadvisor-port=0
) ne résout pas cela.
Essayez de démarrer kubelet avec
--runtime-cgroups=/systemd/system.slice --kubelet-cgroups=/systemd/system.slice
J'utilise cette solution sur RHEL7 avec Kubelet 1.8.0 et Docker 1.12
La solution de contournement de l'angeoxx fonctionne également sur l'image par défaut AWS pour kops (k8s-1.8-debian-jessie-AMD64-hvm-ebs-2017-12-02 (AMI-bd229ec4))
Sudo vim /etc/sysconfig/kubelet
ajoutez à la fin de la chaîne DAEMON_ARGS:
--runtime-cgroups=/systemd/system.slice --kubelet-cgroups=/systemd/system.slice
enfin:
Sudo systemctl restart kubelet
Je devais faire un yum update
en plus de ce changement pour le faire fonctionner. Pourrait être utile pour d'autres qui tentent cette solution de contournement.
Pour ceux un peu plus loin, dans kops AMI kope.io/k8s-1.8-debian-jessie-AMD64-hvm-ebs-2018-02-08 comme ci-dessus, j'ai dû ajouter:
ajoutez à la fin de la chaîne DAEMON_ARGS:
--runtime-cgroups=/lib/systemd/system/kubelet.service --kubelet-cgroups=/lib/systemd/system/kubelet.service
et alors: Sudo systemctl restart kubelet
mais j'ai trouvé que je recevais toujours:
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"
le redémarrage de dockerd a résolu cette erreur: Sudo systemctl restart docker
Merci
Après avoir creusé un peu plus, j'ai trouvé une meilleure résolution pour l'ajouter à la configuration de kops: