Debian trixie に kubeadm でシングルノード構成の Kubernetes 環境を構築する
概要
kubeadm
を使ってKubernetes環境をDebianの現在での最新のtesting
であるDebian trixieで動作するよう頑張った記録です。
必要なパッケージのインストール
必要なパッケージのインストールします
sudo apt-get update
sudo DEBIAN_FRONTEND=noninteractive apt-get -y --no-install-recommends install wget gpg apt-transport-https ca-certificates yq
wget -O- --no-verbose 'https://dl.k8s.io/apt/doc/apt-key.gpg'\
|sudo gpg --dearmor --batch --yes -o '/etc/apt/keyrings/k8s.gpg'
printf \
'deb [signed-by=/etc/apt/keyrings/k8s.gpg] https://apt.kubernetes.io/ kubernetes-xenial main\n'\
|sudo tee /etc/apt/sources.list.d/k8s.list >/dev/null
wget -O- --no-verbose 'https://download.docker.com/linux/debian/gpg'\
|sudo gpg --dearmor --batch --yes -o '/etc/apt/keyrings/docker.gpg' -
printf \
'deb [signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/debian bookworm stable\n'\
|sudo tee /etc/apt/sources.list.d/docker.list >/dev/null
sudo apt-get update
sudo DEBIAN_FRONTEND=noninteractive apt-get -y --no-install-recommends install kubelet kubeadm kubectl docker-ce
Containerd の設定
sudo containerd config default\
|sed 's/SystemdCgroup = false/SystemdCgroup = true/'\
|sudo tee /etc/containerd/config.toml >/dev/null
sudo systemctl restart containerd
kubeadm の初期設定
sudo kubeadm init --v=5 --pod-network-cidr=10.244.0.0/16
kubectlできるようにする
mkdir -p ~/.kube
sudo cat /etc/kubernetes/admin.conf >~/.kube/config
シングルノードの場合
kubectl taint node --all node-role.kubernetes.io/control-plane-
hostpathなStorageClassの追加
必須ではないですが便利なので準備します。
sudo yq -yi '."spec"."containers"[0]."command"+=["--enable-hostpath-provisioner"]' /etc/kubernetes/manifests/kube-controller-manager.yaml
printf \
'apiVersion: storage.k8s.io/v1\n'\
'kind: StorageClass\n'\
'metadata:\n'\
' name: standard\n'\
' annotations:\n'\
' storageclass.beta.kubernetes.io/is-default-class: "true"\n'\
'provisioner: kubernetes.io/host-path\n'\
'volumeBindingMode: WaitForFirstConsumer\n'\
|kubectl apply -f -