Kubernetes Ubuntu 설치 스크립트
Ubuntu용 Kubernetes 도구 설치 스크립트입니다. pkgs.k8s.io 저장소, kubelet/kubeadm/kubectl 설치, swap/kernel/runtime 확인과 kubeadm init 예시를 정리했습니다.
Ubuntu에서 Kubernetes 도구를 설치할 때는 오래된 apt.kubernetes.io kubernetes-xenial 저장소 예제를 그대로 쓰면 안 됩니다. 현재 공식 문서는 pkgs.k8s.io 저장소와 버전별 stable channel을 사용합니다.
kubeadm 기반 클러스터 생성을 위한 kubelet, kubeadm, kubectl 설치 스크립트입니다. 클러스터 초기화와 CNI 설치는 별도 절차로 분리합니다.
install-kubernetes-tools.sh
#!/usr/bin/env bash
set -euo pipefail
KUBERNETES_MINOR="${KUBERNETES_MINOR:-v1.36}"
KEYRING="/etc/apt/keyrings/kubernetes-apt-keyring.gpg"
LIST_FILE="/etc/apt/sources.list.d/kubernetes.list"
sudo apt-get update
sudo apt-get install -y apt-transport-https ca-certificates curl gpg
sudo install -d -m 0755 /etc/apt/keyrings
curl -fsSL "https://pkgs.k8s.io/core:/stable:/${KUBERNETES_MINOR}/deb/Release.key" |
sudo gpg --dearmor -o "${KEYRING}"
echo "deb [signed-by=${KEYRING}] https://pkgs.k8s.io/core:/stable:/${KUBERNETES_MINOR}/deb/ /" |
sudo tee "${LIST_FILE}" >/dev/null
sudo apt-get update
sudo apt-get install -y kubelet kubeadm kubectl
sudo apt-mark hold kubelet kubeadm kubectl
kubeadm version
kubectl version --client
사전 설정 확인
swapon --show
sudo swapoff -a
lsmod | grep br_netfilter || sudo modprobe br_netfilter
sysctl net.bridge.bridge-nf-call-iptables 2>/dev/null
systemctl status containerd --no-pager 2>/dev/null
kubeadm 클러스터는 container runtime, swap, kernel module, sysctl, CNI가 맞아야 정상 동작합니다. 도구 설치만으로 클러스터가 완성되는 것은 아닙니다.
다음 단계
sudo kubeadm init --pod-network-cidr=10.244.0.0/16
mkdir -p "$HOME/.kube"
sudo cp /etc/kubernetes/admin.conf "$HOME/.kube/config"
sudo chown "$(id -u):$(id -g)" "$HOME/.kube/config"
kubectl get nodes
위 초기화 명령은 랩 예시입니다. 운영 cluster는 control plane HA, CNI, ingress, storage, 인증서, backup, upgrade 전략을 별도로 설계합니다.