Raspberry pi (raspbian) に k3s Kubernetes をインストールする
k3s は docker モードでインストールします。
docker のサイト を見ると、raspbian は convenience script を使うのがおすすめということなので、それで。
https://docs.docker.com/engine/install/debian/
curl -fsSL https://get.docker.com -o /tmp/get-docker.sh
sudo sh /tmp/get-docker.sh
これでインストールできます。
これを読み飛ばして、rancher 社のスクリプトを使ったり手動で gpgキーを入れて... とやると、途中で CPUって armhf だっけ? arm64だっけ? とか、バージョンは buster? strech? ?? ubuntu版を入れるの?? となって遠回りしてしまうので、上記のスクリプトをおすすすめします。
ちなみに、docker をインストールする前に k3s をインストールしていたら、dockerのインストールでちょっと躓いたので、その場合は
/usr/local/bin/k3s-uninstall.sh
でk3s をアンインストールしてから、システムを再起動後に docker インストールをすると良いと思います。
curl -sfL https://get.k3s.io | sh -s - --docker
これでインストール。 --docker
を指定して、コンテナバックエンドを docker にします。
ただし、私の場合、インストール後にサービスが起動できずにエラーになりました。
[INFO] systemd: Creating service file /etc/systemd/system/k3s.service
[INFO] systemd: Enabling k3s unit
Created symlink /etc/systemd/system/multi-user.target.wants/k3s.service → /etc/systemd/system/k3s.service.
[INFO] systemd: Starting k3s
Job for k3s.service failed because the control process exited with error code.
See "systemctl status k3s.service" and "journalctl -xe" for details.
journalctl -xe
を見てみると
level=fatal msg="failed to find memory cgroup, you may need to add \"cgroup_memory=1 cgroup_enable=memory\" to your linux
と書かれているので、その通りに、/boot/cmdline.txt
に cgroup_memory=1 cgroup_enable=memory
を追加
console=serial0,115200 console=tty1 root=PARTUUID=97709164-02 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwai
↓
console=serial0,115200 console=tty1 root=PARTUUID=97709164-02 rootfstype=ext4 elevator=deadline fsck.repair=yes cgroup_memory=1 cgroup_enable=memory rootwait
こうして、システムを再起動させることで k3s も動作しました。
/etc/rancher/k3s/k3s.yaml
に config ができているので、
sudo cat /etc/rancher/k3s/k3s.yaml
で表示させ、mac に .kube/config-raspi
みたいな名前でコピーします。
その時、config 内の server: https://127.0.0.1:6443
の箇所は、外から見たラズパイのホスト名に変更します。
server: https://myraspi.local:6443
そして、mac で
KUBECONFIG=${HOME}/.kube/config-raspi kubectl get all
とかやってみて、応答が返ってくればOKです。
コメント