Ubuntu 上使用 kubeadm 部署 Kubernetes 的标准步骤
一 环境准备
sudo apt update && sudo apt upgrade -ysudo swapoff -a && sudo sed -i '/ swap / s/^/#/g' /etc/fstabsudo tee /etc/sysctl.d/k8s.conf << EOF
net.bridge.bridge-nf-call-iptables = 1
net.bridge.bridge-nf-call-ip6tables = 1
net.ipv4.ip_forward = 1
EOF
sudo sysctl --system
sudo apt install -y ntpdate && sudo ntpdate ntp.aliyun.comsudo hostnamectl set-hostname master(示例),并在所有节点编辑 /etc/hosts 添加各节点 IP-主机名 映射。二 安装容器运行时与 Kubernetes 组件
sudo apt install -y docker.io
sudo systemctl enable --now docker
sudo mkdir -p /etc/docker
cat >/etc/docker/daemon.json <<EOF
{
"exec-opts": ["native.cgroupdriver=systemd"],
"log-driver": "json-file",
"log-opts": { "max-size": "100m" },
"storage-driver": "overlay2"
}
EOF
sudo systemctl restart docker
sudo apt update
sudo apt install -y apt-transport-https curl
curl -fsSL https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -
echo "deb https://apt.kubernetes.io/ kubernetes-xenial main" | sudo tee /etc/apt/sources.list.d/kubernetes.list
sudo apt update
sudo apt install -y kubelet kubeadm kubectl
sudo apt-mark hold kubelet kubeadm kubectl
三 初始化控制平面与配置 kubectl
sudo kubeadm init \
--pod-network-cidr=10.244.0.0/16 \
--apiserver-advertise-address=<MASTER_IP> \
--control-plane-endpoint=<MASTER_IP或VIP/负载均衡地址>
常见网络插件与 Pod CIDR 对应关系:
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
kubectl apply -f https://docs.projectcalico.org/manifests/calico.yamlkubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.ymlkubeadm init 输出中的 kubeadm join 命令在各 Worker 上执行,例如:sudo kubeadm join <MASTER_IP>:6443 --token <TOKEN> --discovery-token-ca-cert-hash sha256:<HASH>kubectl get nodes(所有节点应为 Ready)。四 快速验证与常用操作
kubectl create deployment nginx --image=nginx:1.25
kubectl expose deployment nginx --type=NodePort --port=80
kubectl get pods,svc
kubectl get pods,svc,deployments --all-namespaceskubectl delete node <node-name>sudo apt-get update && sudo apt-get install -y kubelet kubectl && sudo systemctl restart kubelet五 生产级建议与替代方案
sudo snap install microk8s --classic
microk8s enable dashboard dns registry
microk8s status