kubeadmコマンドをインストールする!(Locky Linux 9)

Kubernatesの環境構築を行うため、KubeadmをLocky Linux 9インストールします。kubelet、kubectlもインストールします。

kubeadmコマンドをインストールする前提を確認する!

kubeadmコマンドをインストールする前提として、containerdが完了していることが必要です。インストールしていない場合は、以下の記事を参考にcontainerdをインストールします。

Firewalldの設定を行う!

Firewalldの通信許可の設定を行います。ネットワーク通信を行うコンテナを利用するたびにFirewalldの設定を変更するのは大変なので、とりあえず動かすためであれば、Firewalldを止めてもよいと思います。

# firewall-cmd --permanent --add-port={6443,2379,2380,10250,10251,10252}/tcp
success
# firewall-cmd --reload
success

Firewalldを停止する場合は、以下の手順で行います。

# systemctl stop firewalld
# systemctl disable firewalld
Removed "/etc/systemd/system/multi-user.target.wants/firewalld.service".
Removed "/etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service".

SELinuxを無効化する!

SELinuxを無効化します。以下のように無効化済みであれば、問題ありません。

# getenforce
Permissive

有効化されている場合は、以下の手順で無効化します。

# setenforce 0
# sed -i 's/^SELINUX=enforcing$/SELINUX=permissive/' /etc/selinux/config

Swapを無効化する!

Swapを無効化します。

# swapoff -a
# free -m
               total        used        free      shared  buff/cache   available
Mem:            1770         810         321          11         833         960
Swap:              0           0           0

「/etc/fstab」のエントリも無効化します。

# sed -e '/swap/s/^/#/g' -i /etc/fstab
# grep swap /etc/fstab
#/dev/mapper/rl-swap     none                    swap    defaults        0 0

Kubernatesのリポジトリの登録を行う!

Kubernatesのリポジトリの登録を行います。

# cat <<EOF | tee /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-\$basearch
enabled=1
gpgcheck=1
gpgkey=https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg
exclude=kubelet kubeadm kubectl
EOF

kubeadmをインストールする!

kubeadmに合わせて、コントロールノードおよびワーカーノードに共通で必要となるkubelet、kubectlをインストールします。

# dnf install kubelet kubeadm kubectl --disableexcludes=kubernetes -y
Kubernetes                                                                               95 kB/s | 162 kB     00:01    
Dependencies resolved.
========================================================================================================================
 Package                              Architecture         Version                       Repository                Size
========================================================================================================================
Installing:
 kubeadm                              x86_64               1.26.0-0                      kubernetes                10 M
 kubectl                              x86_64               1.26.0-0                      kubernetes                11 M
 kubelet                              x86_64               1.26.0-0                      kubernetes                22 M
Installing dependencies:
 conntrack-tools                      x86_64               1.4.5-15.el9                  appstream                210 k
 cri-tools                            x86_64               1.25.0-0                      kubernetes               8.2 M
 kubernetes-cni                       x86_64               1.1.1-0                       kubernetes                15 M
 libnetfilter_cthelper                x86_64               1.0.0-22.el9                  appstream                 23 k
 libnetfilter_cttimeout               x86_64               1.0.0-19.el9                  appstream                 23 k
 libnetfilter_queue                   x86_64               1.0.5-1.el9                   appstream                 28 k
 socat                                x86_64               1.7.4.1-5.el9                 appstream                300 k

Transaction Summary
========================================================================================================================
Install  10 Packages
...
Complete!

kubectlサービスを自動起動に設定する!

kubectlサービスを自動起動に設定します。

# systemctl enable --now kubelet.service
Created symlink /etc/systemd/system/multi-user.target.wants/kubelet.service → /usr/lib/systemd/system/kubelet.service.
# systemctl status kubelet.service 
● kubelet.service - kubelet: The Kubernetes Node Agent
     Loaded: loaded (/usr/lib/systemd/system/kubelet.service; enabled; vendor preset: disabled)
    Drop-In: /usr/lib/systemd/system/kubelet.service.d
             └─10-kubeadm.conf
     Active: activating (auto-restart) (Result: exit-code) since Sun 2023-01-08 15:35:38 JST; 6s ago
...

bashのコマンド補完を有効にする!

bashのコマンド補完機能を有効にします。kubectlコマンドを使用するユーザで以下を実行します。

$ echo 'source <(kubectl completion bash)' >>~/.bashrc
$ source ~/.bashrc

おわりに

Kubernatesの環境構築に必要となるkubeadm、kubelet、kbectlをRocky Linux 9にインストールしましした。

参考情報

関連記事

関連書籍(Amazon)