注意書き

本サイトでは、アフィリエイト広告およびGoogleアドセンスを利用しています。

Raspberry Pi で containerd を使う (k8s)

インフラストラクチャ

前回は CRI-O を使いましたが、 containerd を使う方法もあるというので試してみました。 「Raspberry Pi で kubernetes (k8s) クラスタを作る」の CRI-O のインストール説明部分を以下のように読み替えて containerd を設定します。

スポンサーリンク

containerd のインストール

使用するツール群をインストールします。

$ sudo apt install -y apt-transport-https ca-certificates curl software-properties-common

リポジトリの登録

$ curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
$ echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/debian $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
$ sudo mkdir -p /etc/apt/keyrings
$ curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
$ sudo apt update

インストール

以下のコマンドを実行して、containerd をインストールします。

$ sudo apt install containerd.io
$ sudo mkdir -p /etc/containerd
$ containerd config default | sudo tee /etc/containerd/config.toml
$ sudo systemctl restart containerd
$ sudo systemctl enable containerd

cgroups 設定を変更

このまま設定を続行すると、 cni の起動箇所でエラーが発生してうまく動作しない状況に見舞われます。先ほどの config.toml を開いて、SystemCgroup = false となっている箇所を true に変更します。

$ sudo nano /etc/containerd/config.toml

kubernetes のインストール

containerd のインストールが終わったら kubernetes のインストールを行います。この手順については前回説明しているところと同じになるので省略します。 この記事としては kubernetes 1.25.1 を使うものとして、インストールを行いました。

しばらく kubectl get pods -A コマンドを実行して様子を観察し、 STATUS が Running になることを確認します。このとき、 RESTARTS のカウンタ値が増えていかないことも確認しておきます。以下の図は試行錯誤した後の様子でもあるので、 RESTARTS の値が割と多いものですが定常状態では値は増加しないようになりました。

NAMESPACE      NAME                                 READY   STATUS    RESTARTS       AGE
kube-flannel   kube-flannel-ds-rpzj8                1/1     Running   3 (22m ago)    30m
kube-system    coredns-565d847f94-5gkpn             1/1     Running   3 (22m ago)    38m
kube-system    coredns-565d847f94-7mlkj             1/1     Running   4 (23m ago)    38m
kube-system    etcd-k8s-master                      1/1     Running   7 (22m ago)    39m
kube-system    kube-apiserver-k8s-master            1/1     Running   9 (22m ago)    39m
kube-system    kube-controller-manager-k8s-master   1/1     Running   12 (22m ago)   38m
kube-system    kube-proxy-f45mt                     1/1     Running   13 (22m ago)   38m
kube-system    kube-scheduler-k8s-master            1/1     Running   10 (22m ago)   39m

動作確認環境

  • Raspberry Pi OS Lite (2022/09版)
    • 64 bit
  • kubernetes 1.25.1

その他

今回の /etc/containerd/config.toml ファイルで、 SystemCgroup = true を設定する点は、 Ubuntu 22.04.1 LTS に kubernetes をインストールしたときにも同様に必要になります。

参考

コメント

タイトルとURLをコピーしました