クラスタ設計
ホスト構成
| ホスト名 | IPアドレス |
| master01 | 192.168.1.31 |
| master02 | 192.168.1.32 |
| master03 | 192.168.1.33 |
| node01 | 192.168.1.34 |
| master-lb | 192.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