Debian 上 Kubernetes 安装后的配置步骤
一 基础环境校验与内核参数
- 关闭并持久化禁用 Swap(Kubelet 要求):执行 sudo swapoff -a,并在 /etc/fstab 中注释 swap 行,确保重启后仍然生效。
- 加载内核模块与开启转发:
- 模块:sudo modprobe overlay && sudo modprobe br_netfilter
- 系统参数:
- net.bridge.bridge-nf-call-iptables = 1
- net.bridge.bridge-nf-call-ip6tables = 1
- net.ipv4.ip_forward = 1
执行 sysctl --system 使配置生效。
- 主机名与解析:为每个节点设置唯一主机名,并在 /etc/hosts 中添加“IP 主机名”映射,保证节点间可互相解析。
- 防火墙放行(如启用 UFW):至少放行 6443/TCP(API Server);如使用 kube-proxy 的 IPVS 模式,放行 10250/TCP(kubelet) 与 30000–32767/TCP(NodePort);如使用 Flannel VXLAN,放行 8472/UDP;如使用 Calico BGP,放行 179/TCP。示例:sudo ufw allow 6443/tcp;sudo ufw allow 30000:32767/tcp;sudo ufw allow 8472/udp;sudo ufw reload。
二 配置 kubectl 与集群就绪检查
- 配置 kubectl:在主节点执行
- mkdir -p $HOME/.kube
- sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
- sudo chown $(id -u):$(id -g) $HOME/.kube/config
- 查看集群状态:
- kubectl cluster-info
- kubectl get nodes(节点状态应为 Ready)
- kubectl get pods -A(系统 Pod 应为 Running)
- 如节点 NotReady,优先检查:网络插件是否已安装、CNI 网段是否与 kubeadm init 的 --pod-network-cidr 一致、节点间网络与防火墙策略是否放行。
三 安装网络插件
- 选择其一安装(二者不要同时安装):
- Flannel(推荐用于快速上手):kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
- Calico(功能更丰富,适合生产):kubectl apply -f https://docs.projectcalico.org/manifests/calico.yaml
- 安装完成后再次执行 kubectl get nodes,等待所有节点变为 Ready。
四 加入工作节点与 Token 管理
- 使用 kubeadm init 输出或 kubeadm token create 生成的命令加入工作节点:
- sudo kubeadm join :6443 --token --discovery-token-ca-cert-hash sha256:
- 如 token 过期,可在主节点生成新 token:kubeadm token create --print-join-command
- 加入后回到主节点执行 kubectl get nodes 验证节点是否 Ready。
五 基础功能验证与持久化存储准备
- 快速连通性验证:
- 部署测试应用:kubectl create deployment nginx-app --image=nginx --replicas=2
- 暴露服务:kubectl expose deployment nginx-app --name=nginx-web-svc --type=NodePort --port=80 --target-port=80
- 查看服务与访问:kubectl get svc nginx-web-svc;在浏览器或使用 curl 访问 http://<任意节点IP>:(NodePort 通常在 30000–32767 范围内)。
- 持久化存储准备(示例):
- NFS:在 NFS 服务器上导出目录(如 /data/nfs-server),在集群中创建 PV/PVC 使用;适合共享存储场景。
- 分布式/云原生方案:有状态应用可评估 Longhorn、Rook-Ceph、GlusterFS 等,提供高可用与自动化的卷管理。