Kubernetes - 实战:使用kubeadm部署k8s环境及常见报错解决方法
使用kubeadm。
·
使用 kubeadm
部署 Kubernetes 环境是一个相对标准化的过程,主要包括以下步骤:
1. 安装前的准备工作
- 确保主机操作系统(如 CentOS、Ubuntu 或 Debian)是最新的,并且兼容 Kubernetes 版本。
- 安装 Docker(或其他容器运行时,如 containerd)并启动服务。
- 确保网络配置正确,尤其是主机名解析和防火墙规则(如有必要的话,开启 IP 转发)。
- 配置
swap
空间禁用(Kubernetes 不建议在节点上启用 swap)。
2. 使用 kubeadm 初始化控制平面
# 安装 kubeadm、kubectl 和 kubelet
sudo apt-get update && sudo apt-get install -y kubelet kubeadm kubectl
# 设置 cgroup driver 与 Docker 一致(如果是 systemd,请确认)
sudo sed -i 's/cgroup-driver=systemd/cgroup-driver=cgroupfs/' /etc/systemd/system/kubelet.service.d/10-kubeadm.conf
sudo systemctl daemon-reload
sudo systemctl restart kubelet
# 初始化 Master 节点
sudo kubeadm init --pod-network-cidr=10.244.0.0/16 # 使用适合的 CIDR 为 Pod 网络预留地址范围
# 根据提示设置 kubectl 环境变量(可将命令拷贝粘贴到终端)
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
# 安装网络插件,例如 Calico 或 Flannel
kubectl apply -f https://docs.projectcalico.org/manifests/calico.yaml # 以 Calico 为例
3. 加入 Worker 节点
在各个 Worker 节点上执行以下命令(替换 <MASTER_IP>
为 Master 节点的 IP 地址):
# 在 Worker 节点上安装 Kubernetes 组件
sudo apt-get update && sudo apt-get install -y kubelet kubeadm kubectl
# 设置 Kubelet 开始运行
sudo systemctl enable kubelet && sudo systemctl start kubelet
# 加入集群
sudo kubeadm join <MASTER_IP>:6443 --token <TOKEN> --discovery-token-ca-cert-hash <SHA>
# (Token 和 SHA 可以从 master 节点的初始化输出中获得)
常见报错及解决方法
-
网络问题:确保所有节点之间能够互相 ping 通,以及节点到 Master 节点的 6443 端口是开放的。
-
Docker 与 kubelet cgroup driver 不匹配:检查并调整 Docker 和 kubelet 的 cgroup 驱动一致性。
-
证书错误:初始化时可能出现证书问题,这时可以清理旧的证书并重新初始化,或确保系统的时钟同步。
-
Pod 网络未就绪:在加入 worker 节点后,如果 Pod 网络没有立即就绪,可以等待一段时间,或者检查所选网络插件的日志以解决问题。
-
kube-proxy 报错:检查 kube-proxy 是否正常运行,如果不正常,尝试重启服务或查看日志寻找线索。
-
资源不足:确保每个节点有足够的 CPU 和内存资源用于 Kubernetes 系统组件和应用程序。
-
版本兼容性问题:确保使用的 Kubernetes 版本与其他组件(如 Docker、containerd、kubelet 等)兼容。
请注意,部署 Kubernetes 集群时的具体操作可能会随着 Kubernetes 版本更新而有所变化,因此始终应该查阅最新的官方文档和最佳实践。
更多推荐
已为社区贡献13条内容
所有评论(0)