Linux 上安装 Kubernetes 的两种常用方式概览
使用 kubeadm 搭建集群的标准流程
sudo swapoff -a,并在 /etc/fstab 中注释含 swap 的行,避免重启后恢复。sudo modprobe overlay && sudo modprobe br_netfiltersudo tee /etc/sysctl.d/kubernetes.conf <<EOF net.bridge.bridge-nf-call-ip6tables=1 net.bridge.bridge-nf-call-iptables=1 net.ipv4.ip_forward=1 EOF 并执行 sudo sysctl --systemhostnamectl set-hostname k8s-master),并在所有节点的 /etc/hosts 中添加主从节点 IP 与主机名 映射,保证互通。sudo apt-get update && sudo apt-get install -y containerd.io,随后按默认配置启动即可(生产可进一步配置 systemd cgroup 等)。/etc/docker/daemon.json 中加入 "exec-opts": ["native.cgroupdriver=systemd"],然后 sudo systemctl daemon-reload && sudo systemctl restart docker。sudo apt-get update && sudo apt-get install -y kubelet kubeadm kubectl,并 sudo systemctl enable --now kubelet 保持开机自启(暂不启动,待 init 后再就绪)。sudo kubeadm init --pod-network-cidr=10.244.0.0/16(如使用 Flannel,该 CIDR 为官方示例;如使用 Calico,常见为 192.168.0.0/16,以所选网络插件文档为准)。mkdir -p $HOME/.kube && sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config && sudo chown $(id -u):$(id -g) $HOME/.kube/configkubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.ymlkubectl apply -f https://docs.projectcalico.org/manifests/calico.yamlkubeadm init 完成后屏幕输出的 kubeadm join ... 命令直接加入。sudo kubeadm token create --print-join-command,复制并在 Worker 上执行。kubectl get nodes(状态应为 Ready)kubectl create deployment nginx --image=nginx 与 kubectl expose deployment nginx --port=80 --type=NodePort,随后通过 NodeIP:NodePort 访问验证。使用 microk8s 快速安装(Ubuntu 单机)
sudo snap install microk8s --classicmicrok8s enable dashboard、microk8s enable dns、microk8s enable registry(可按需启用 istio、community 等)microk8s statusmicrok8s kubectl create deployment nginx --image=nginx 与 microk8s kubectl expose deployment nginx --port=80 --target-port=80 --type=ClusterIPmicrok8s start、microk8s stopmicrok8s kubectl,如需使用原生命令,可设置别名或导出 KUBECONFIG。常见问题与排查要点
kubeadm init --image-repository 指定镜像仓库前缀。