Ubuntu 22.04LTSにおけるkubeadmを使用したKubernetes 1.24高可用性クラスタの構築

クラスタ設計

ホスト構成

ホスト名IPアドレス
master01192.168.1.31
master02192.168.1.32
master03192.168.1.33
node01192.168.1.34
master-lb192.168.1.35

クラスタ設定

設定項目
OSバージョンUbuntu 22.04
Dockerバージョン20.10.24
Podネットワーク172.20.0.0/16
Serviceネットワーク10.196.0.0/16

環境準備

ホスト名解決設定

cat >> /etc/hosts <<'EOF'
192.168.1.31 master01
192.168.1.32 master02
192.168.1.33 master03
192.168.1.34 node01
192.168.1.35 vip
EOF

APTリポジトリ設定

cat > /etc/apt/sources.list <<'EOF'
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-backports main restricted universe multiverse
deb http://security.ubuntu.com/ubuntu/ jammy-security main restricted universe multiverse
EOF

apt-get update

IPVSモジュール設定

cat > /etc/modules-load.d/ipvs.conf <<'EOF'
ip_vs
ip_vs_lc
ip_vs_wlc
ip_vs_rr
ip_vs_wrr
ip_vs_lblc
ip_vs_lblcr
ip_vs_dh
ip_vs_sh
nf_conntrack
EOF

Kubernetesコンポーネントインストール

Dockerインストール

sudo apt-get install -y docker-ce=5:20.10.24~3-0~ubuntu-jammy docker-ce-cli=5:20.10.24~3-0~ubuntu-jammy

CRI-Docker設定

sudo dpkg -i cri-dockerd_0.3.2.3-0.ubuntu-jammy_amd64.deb
systemctl enable --now cri-docker.service

Kubernetesコンポーネントインストール

sudo apt-get install -y kubeadm=1.24.17-00 kubelet=1.24.17-00 kubectl=1.24.17-00

クラスタ初期化

初期化設定ファイル生成

kubeadm config migrate --old-config kubeadm-config.yaml --new-config new.yaml

クラスタ初期化

kubeadm init --config /root/new.yaml --upload-certs

ワーカーノード参加

kubeadm join 192.168.1.35:16443 --token [TOKEN] \
  --discovery-token-ca-cert-hash sha256:[HASH] \
  --cri-socket=unix:///run/cri-dockerd.sock

ネットワークプラグイン設定

kubectl apply -f calico.yaml

メトリクスサーバー展開

kubectl create -f metrics-server.yaml

クラスタ検証

kubectl get nodes
kubectl get pods -A
kubectl create deploy test --image=nginx

証明書更新

kubeadm certs renew all
systemctl restart kubelet

タグ: Kubernetes kubeadm Ubuntu Docker cri-dockerd

6月1日 11:06 投稿