Kubernatesインストールのために、containerdをLocky Linux 9にインストールします。
記事の目次
OSのバージョンを確認する!
OSのバージョンを確認します。
# cat /etc/rocky-release Rocky Linux release 9.1 (Blue Onyx) # uname -r 5.14.0-162.6.1.el9_1.0.1.x86_64
SELinuxを無効化する!
SELinuxを無効化します。
# setenforce 0 # sed -i 's/^SELINUX=enforcing$/SELINUX=permissive/' /etc/selinux/config
インストール済みのDocker関連のパッケージを削除する!
インストール済みのDocker関連のパッケージを削除しておきます。
# dnf remove docker docker-common docker-selinux docker-engine -y No match for argument: docker No match for argument: docker-common No match for argument: docker-engine Dependencies resolved. ======================================================================================================================== Package Architecture Version Repository Size ======================================================================================================================== Removing: container-selinux noarch 3:2.189.0-1.el9 @appstream 57 k Removing dependent packages: flatpak-selinux noarch 1.12.7-2.el9 @appstream 12 k selinux-policy noarch 34.1.43-1.el9 @baseos 25 k selinux-policy-targeted noarch 34.1.43-1.el9 @baseos 18 M Removing unused dependencies: rpm-plugin-selinux x86_64 4.16.1.3-19.el9_1 @baseos 16 k Transaction Summary ======================================================================================================================== Remove 5 Packages ... Complete!
カーネルモジュールを追加でロードする!
現在の使用中の環境にもコマンドでカーネルモジュールのロードを行います。
# modprobe overlay # modprobe br_netfilter
起動時にカーネルモジュールをロードする設定を行います。
# cat <<EOF | tee /etc/modules-load.d/k8s.conf overlay br_netfilter EOF
システム設定を変更する!
システム設定を変更します。
# cat <<EOF | tee /etc/sysctl.d/k8s.conf net.bridge.bridge-nf-call-iptables = 1 net.bridge.bridge-nf-call-ip6tables = 1 net.ipv4.ip_forward = 1 EOF
システム設定の変更を反映する!
システム設定の変更を反映します。
# sysctl --system
カーネルのモジュールが読み込まれたことを確認します。
$ lsmod | grep br_netfilter br_netfilter 32768 0 bridge 315392 1 br_netfilter $ lsmod | grep overlay overlay 155648 0
Dockerのリポジトリを登録する!
Dockerのリポジトリを登録します。
# dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo Adding repo from: https://download.docker.com/linux/centos/docker-ce.repo
リポジトリの情報をアップデートします。
# dnf update Docker CE Stable - x86_64 23 kB/s | 14 kB 00:00 Rocky Linux 9 - BaseOS 3.8 kB/s | 3.6 kB 00:00 Rocky Linux 9 - AppStream 5.5 kB/s | 4.1 kB 00:00 Rocky Linux 9 - AppStream 2.8 MB/s | 6.4 MB 00:02 Rocky Linux 9 - Extras 3.1 kB/s | 2.9 kB 00:00 Rocky Linux 9 - Extras 6.9 kB/s | 8.5 kB 00:01 Error: Problem: package buildah-1:1.27.2-2.el9_1.x86_64 requires runc >= 1.0.0-26, but none of the providers can be installed - package containerd.io-1.6.14-3.1.el9.x86_64 conflicts with runc provided by runc-4:1.1.4-1.el9_1.x86_64 - package containerd.io-1.6.14-3.1.el9.x86_64 obsoletes runc provided by runc-4:1.1.4-1.el9_1.x86_64 - cannot install the best update candidate for package runc-4:1.1.4-1.el9_1.x86_64 - cannot install the best update candidate for package buildah-1:1.27.2-2.el9_1.x86_64 (try to add '--allowerasing' to command line to replace conflicting packages or '--skip-broken' to skip uninstallable packages or '--nobest' to use not only best candidate packages)
私の環境では、エラーが出力されてしまいました。containerdのインストール時に解消を図ります。
conternerdをインストールする!
containerdをインストールします。「--allowerasing」のオプションでパッケージの依存関係のエラーの解消を図ります。
# dnf install -y containerd.io --allowerasing Last metadata expiration check: 0:03:19 ago on Sun 08 Jan 2023 02:59:43 PM JST. Dependencies resolved. ======================================================================================================================== Package Architecture Version Repository Size ======================================================================================================================== Installing: containerd.io x86_64 1.6.14-3.1.el9 docker-ce-stable 32 M replacing runc.x86_64 4:1.1.4-1.el9_1 Installing dependencies: container-selinux noarch 3:2.189.0-1.el9 appstream 47 k flatpak-selinux noarch 1.12.7-2.el9 appstream 22 k rpm-plugin-selinux x86_64 4.16.1.3-19.el9_1 baseos 17 k selinux-policy noarch 34.1.43-1.el9 baseos 62 k selinux-policy-targeted noarch 34.1.43-1.el9 baseos 6.4 M Removing dependent packages: buildah x86_64 1:1.27.2-2.el9_1 @appstream 26 M Transaction Summary ======================================================================================================================== Install 6 Packages Remove 1 Package ... Complete!
containerdの設定を初期化する!
containerdの設定を初期化します。
# containerd config default > /etc/containerd/config.toml
その後、以下の設定を「false」から「true」に変更します。
SystemdCgroup = true
CNIプラグインの初期設定を行う!
CNIプラグインの初期設定を行います。
# cat << EOF | tee /etc/cni/net.d/10-containerd-net.conflist { "cniVersion": "1.0.0", "name": "containerd-net", "plugins": [ { "type": "bridge", "bridge": "cni0", "isGateway": true, "ipMasq": true, "promiscMode": true, "ipam": { "type": "host-local", "ranges": [ [{ "subnet": "10.88.0.0/16" }], [{ "subnet": "2001:4860:4860::/64" }] ], "routes": [ { "dst": "0.0.0.0/0" }, { "dst": "::/0" } ] } }, { "type": "portmap", "capabilities": {"portMappings": true} } ] } EOF
containerdをサービスに登録して起動する!
containerdをサービスに登録して起動します。再起動時にも自動起動するように設定します。
# systemctl enable --now containerd.servicesystemctl enable --now containerd.service Created symlink /etc/systemd/system/multi-user.target.wants/containerd.service → /usr/lib/systemd/system/containerd.service. # systemctl status containerd.service ● containerd.service - containerd container runtime Loaded: loaded (/usr/lib/systemd/system/containerd.service; enabled; vendor preset: disabled) Active: active (running) since Sun 2023-01-08 15:14:32 JST; 2s ago
おわりに
Kubernatesインストールのために、ContainerdをLocky Linux 9にインストールし、自動起動の設定を行いました。
参考情報
関連記事
関連書籍(Amazon)