techtsubame’s blog

備忘録であり、何が起きても責任は取りません

CentOSにkubernetesインストール

実施すること

  • kubelet,kubeadmn,kubectlのインストール
  • 事前設定

参考

kubernetes.io

kubernetesコマンドインストール

コマンド 用途
kubeadm クラスターを起動するコマンド
kubelet クラスターないの全マシンで実行されるコンポーネント,podやコンテナの起動
kubectl クラスターにアクセスするコマンドツール

リポジトリ設定

repoファイルの作成と確認

[tsubame@control-plane01 ~]$ echo '[kubernetes]
name=Kubernetes
baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-$basearch
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg
' | sudo 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
repo_gpgcheck=1
gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg

[tsubame@control-plane01 ~]$
[tsubame@control-plane01 ~]$ dnf repolist kubernetes
repo id                                                                                   repo の名前                                                                                状態
kubernetes                                                                                Kubernetes                                                                                 有効化
[tsubame@control-plane01 ~]$

kubeadm,kubelet,kubectl

インストール(GPG 鍵はyを応答)

  • エラーが無いこと
[tsubame@control-plane01 ~]$ sudo dnf install kubelet kubeadm kubectl --disableexcludes=kubernetes
Kubernetes                                                                                                                                                 228  B/s | 454  B     00:01
Kubernetes                                                                                                                                                  28 kB/s | 2.6 kB     00:00
GPG 鍵 0x13EDEF05 をインポート中:
 Userid     : "Rapture Automatic Signing Key (cloud-rapture-signing-key-2022-03-07-08_01_01.pub)"
 Fingerprint: A362 B822 F6DE DC65 2817 EA46 B53D C80D 13ED EF05
 From       : https://packages.cloud.google.com/yum/doc/yum-key.gpg
これでよろしいですか? [y/N]: y
GPG 鍵 0xDC6315A3 をインポート中:
 Userid     : "Artifact Registry Repository Signer <artifact-registry-repository-signer@google.com>"
 Fingerprint: 35BA A0B3 3E9E B396 F59C A838 C0BA 5CE6 DC63 15A3
 From       : https://packages.cloud.google.com/yum/doc/yum-key.gpg
これでよろしいですか? [y/N]: y
Kubernetes                                                                                                                                                 7.7 kB/s | 975  B     00:00
GPG 鍵 0x3E1BA8D5 をインポート中:
 Userid     : "Google Cloud Packages RPM Signing Key <gc-team@google.com>"
 Fingerprint: 3749 E1BA 95A8 6CE0 5454 6ED2 F09C 394C 3E1B A8D5
 From       : https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg
これでよろしいですか? [y/N]: y
Kubernetes                                                                                                                                                  54 kB/s | 171 kB     00:03
依存関係が解決しました。
===========================================================================================================================================================================================
 パッケージ                                            アーキテクチャー                       バージョン                                   リポジトリー                              サイズ
===========================================================================================================================================================================================
インストール:
 kubeadm                                               aarch64                                1.27.4-0                                     kubernetes                                9.1 M
 kubectl                                               aarch64                                1.27.4-0                                     kubernetes                                9.3 M
 kubelet                                               aarch64                                1.27.4-0                                     kubernetes                                 17 M
依存関係のインストール:
 conntrack-tools                                       aarch64                                1.4.7-2.el9                                  appstream                                 232 k

-- snip --

インストール済み:
  conntrack-tools-1.4.7-2.el9.aarch64           cri-tools-1.26.0-0.aarch64            kubeadm-1.27.4-0.aarch64                          kubectl-1.27.4-0.aarch64
  kubelet-1.27.4-0.aarch64                      kubernetes-cni-1.2.0-0.aarch64        libnetfilter_cthelper-1.0.0-22.el9.aarch64        libnetfilter_cttimeout-1.0.0-19.el9.aarch64
  libnetfilter_queue-1.0.5-1.el9.aarch64        socat-1.7.4.1-5.el9.aarch64

完了しました!
[tsubame@control-plane01 ~]$

インストール確認

  • 存在すること 
[tsubame@control-plane01 ~]$ dnf list installed kubeadm kubectl kubelet
インストール済みパッケージ
kubeadm.aarch64                                                                            1.27.4-0                                                                             @kubernetes
kubectl.aarch64                                                                            1.27.4-0                                                                             @kubernetes
kubelet.aarch64                                                                            1.27.4-0                                                                             @kubernetes
[tsubame@control-plane01 ~]$

設定

cgroupドライバーの設定

kubeletの環境設定ファイルに設定

[tsubame@control-plane01 ~]$ cat <<EOF | sudo tee /etc/sysconfig/kubelet
KUBELET_EXTRA_ARGS="--cgroup-driver=systemd"
EOF
KUBELET_EXTRA_ARGS="--cgroup-driver=systemd"
[tsubame@control-plane01 ~]$ cat /etc/sysconfig/kubelet
KUBELET_EXTRA_ARGS="--cgroup-driver=systemd"
[tsubame@control-plane01 ~]$

kubeletサービスの起動と有効化

kubeletの起動と有効化

  • エラーが無いこと
[tsubame@control-plane01 ~]$ sudo systemctl daemon-reload
[tsubame@control-plane01 ~]$
[tsubame@control-plane01 ~]$ sudo systemctl enable --now kubelet
Created symlink /etc/systemd/system/multi-user.target.wants/kubelet.service → /usr/lib/systemd/system/kubelet.service.
[tsubame@control-plane01 ~]$ 

Bash-Completion設定

設定

  • 補完されること
[tsubame@control-plane01 ~]$ sudo dnf -y install bash-completion
[tsubame@control-plane01 ~]$ source /usr/share/bash-completion/bash_completion
[tsubame@control-plane01 ~]$ echo 'source <(kubectl completion bash)' >>~/.bashrc
[tsubame@control-plane01 ~]$ kubectl completion bash | sudo tee /etc/bash_completion.d/kubectl

コピペ用

kubernetsコマンド

echo '[kubernetes]
name=Kubernetes
baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-$basearch
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg
' | sudo tee /etc/yum.repos.d/kubernetes.repo
sudo dnf install kubelet kubeadm kubectl --disableexcludes=kubernete

設定

cat <<EOF | sudo tee /etc/sysconfig/kubelet
KUBELET_EXTRA_ARGS="--cgroup-driver=systemd"
EOF

起動

sudo systemctl daemon-reload
sudo systemctl enable --now kubelet

Bash-Completion

sudo dnf -y install bash-completion
source /usr/share/bash-completion/bash_completion
echo 'source <(kubectl completion bash)' >>~/.bashrc
kubectl completion bash | sudo tee /etc/bash_completion.d/kubectl