ラズベリーパイでk8sクラスタを作ってみた

今さらながら、ラズベリーパイでkubernetesクラスタを組んでみた。

組むのは巷に情報がいろいろとちらばっているので、それを見てやったのだけど、 どうもkubernetesでエラーが出てしまっている。

$ kubectl get event
LAST SEEN   TYPE      REASON                             OBJECT         MESSAGE
4m16s       Warning   FailedNodeAllocatableEnforcement   node/erika     Failed to update Node Allocatable Limits ["kubepods"]: failed to set supported cgroup subsystems for cgroup [kubepods]: Failed to find subsystem mount for required subsystem: pids
73s         Warning   FailedNodeAllocatableEnforcement   node/itsuki    Failed to update Node Allocatable Limits ["kubepods"]: failed to set supported cgroup subsystems for cgroup [kubepods]: Failed to find subsystem mount for required subsystem: pids
33s         Warning   FailedNodeAllocatableEnforcement   node/tsubomi   Failed to update Node Allocatable Limits ["kubepods"]: failed to set supported cgroup subsystems for cgroup [kubepods]: Failed to find subsystem mount for required subsystem: pids

ログを見るに、cgroupsにpidsが無いとかかれてるし、実際見てみるとそのとおりだ。

# cat /proc/cgroups
#subsys_name    hierarchy       num_cgroups     enabled
cpuset  3       29      1
cpu     2       114     1
cpuacct 2       114     1
blkio   7       114     1
memory  4       148     1
devices 5       114     1
freezer 6       29      1
net_cls 8       29      1

どうやら、k8sのver.1.14で追加された、Pod Limitingという機能でcgoupsのpidsを使うようになったらしい。 調べてもpidsを有効にする方法がでてこないのだけど、どうすればよいのだろうか。

ぐぐると、中国語のページはでてきて、カーネルのバージョン上げたってあるのだけど、そもそも元のバージョンが違うしなあ。

参考

https://github.com/alexellis/k8s-on-raspbian/issues/16

https://github.com/rak8s/rak8s/issues/57

http://jkzhao.github.io/2019/04/08/kubeadm%E5%AE%89%E8%A3%85kubernetes-1-14-0/