kubeadm
k8s setup tool
Ubunut 18.04 memo
3台構成
memory 8G
disk 64G
Networkは全て同セグ
cpu 2
必須
構築手順
swap 無効化
code:shell
sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab
sudo swapoff -a
CRI(containerd install
CRIとしてdocker は現在は非推奨
kubeadm install
CRIがcontainerd の場合は以下も追記
code:=kbelet
cat << EOF | tee /etc/default/kubelet
KUBELET_EXTRA_ARGS=--cgroup-driver=systemd
EOF
systemctl daemon-reload
systemctl restart kubelet
cluster 構築
マスターノード構築
code:sh
# flannelは10.244.0.0/16でないと動作しない
# 出力のjoinの結果は保存しておく。
kubeadm init \
--pod-network-cidr=10.244.0.0/16 \
# --control-plane-endpoint XX.XX.XX.XX
# container runtime is not runningのエラーが出た場合は下記実施
rm /etc/containerd/config.toml
systemctl restart containerd
kubeadm init 失敗時はkubeadm resetで元に戻せる
--pod-network-cider
pod 間の内部通信ネットワーク
podに実際につくアドレス
host nodeのアドレス帯と被ってはいけない
--control-plane-endpoint
マルチノードクラスタを構成するには必須
DNS名も指定可能
一般ユーザーで実行
code:=sh
mkdir -p $HOME/.kube
cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
chown $(id -u):$(id -g) $HOME/.kube/config
export KUBECONFIG=$HOME/.kube/config
echo 'export KUBECONFIG=$HOME/.kube/config '>> .bashrc
ワーカーノード構築
CNI setup
マスターノードでもpod配備
kubectl taint nodes --all node-role.kubernetes.io/master-
LoadBalancer問題
bare metalで構築時のk8sはリソースタイプload-balancerを実装していない
IaaSではそれぞれサポートされているので気にしなくてよい
MetalLBを使えとのこと
参考