阅读量:0
Debian系统Kubernetes集群搭建技巧
一、基础环境准备技巧
- 系统更新与依赖安装
搭建前务必执行sudo apt update && sudo apt upgrade -y更新系统,避免软件包冲突;安装apt-transport-https、ca-certificates、curl、gnupg等基础依赖,确保后续能正常添加软件源。 - 关闭Swap分区
Kubernetes要求禁用Swap,执行sudo swapoff -a立即关闭,再修改/etc/fstab文件(将swap行注释或删除),永久禁用。Swap会影响Pod调度和系统性能。 - 配置内核参数
编辑/etc/sysctl.d/99-kubernetes-k8s.conf文件,添加以下内容以支持网络转发和桥接:
执行net.bridge.bridge-nf-call-iptables=1 net.bridge.bridge-nf-call-ip6tables=1 net.ipv4.ip_forward=1sudo sysctl --system使配置生效,确保Pod间通信正常。 - 统一主机名与hosts文件
为每个节点设置易识别的主机名(如master、worker1),并编辑/etc/hosts文件,添加节点IP与主机名映射(如192.168.1.10 master、192.168.1.11 worker1),避免DNS解析问题。 - 时间同步
安装NTP服务(如sudo apt install ntp),确保所有节点时间同步。时间不同步会导致证书验证失败、日志混乱等问题。
二、Kubernetes组件安装技巧
- 添加Kubernetes官方源
执行以下命令添加Kubernetes APT源(适用于Debian 12及以上版本):避免使用过时的第三方源,确保组件版本兼容。curl -s 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 - 安装指定版本组件
若需稳定版本,可通过apt-cache madison kubelet查看可用版本,选择后安装(如sudo apt install -y kubelet=1.28.2-00 kubeadm=1.28.2-00 kubectl=1.28.2-00)。安装后执行sudo apt-mark hold kubelet kubeadm kubectl锁定版本,防止自动升级导致集群异常。 - 容器运行时选择
Debian系统推荐使用Docker(社区支持好)或containerd(原生集成Kubernetes)。若用Docker,执行sudo apt install -y docker-ce docker-ce-cli containerd.io安装;若用containerd,需额外配置/etc/containerd/config.toml文件(设置default_runtime为runc),并重启服务。
三、集群初始化与配置技巧
- Master节点初始化参数优化
执行sudo kubeadm init时,添加以下关键参数:--pod-network-cidr=10.244.0.0/16:指定Pod网络CIDR(需与后续网络插件匹配,如Flannel);--service-cidr=10.0.0.0/16:指定Service网络CIDR(避免与Pod网络冲突);--apiserver-advertise-address=:指定API Server监听的IP(避免多网卡冲突)。
初始化完成后,记录输出的kubeadm join命令(包含token和CA证书哈希),用于Worker节点加入。
- 配置kubectl权限
将Master节点的admin.conf文件复制到当前用户的.kube目录:确保用户对mkdir -p $HOME/.kube sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config sudo chown $(id -u):$(id -g) $HOME/.kube/config.kube/config有读写权限,否则无法执行kubectl命令。 - 网络插件选择与安装
推荐使用轻量级、兼容性好的Flannel(适合小规模集群)或Calico(适合大规模、高性能集群)。以Flannel为例,执行kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml安装。安装后检查kubectl get pods -n kube-system,确认网络插件Pod均处于Running状态。
四、Worker节点加入与管理技巧
- Worker节点加入命令复用
在Worker节点上,确保已安装Docker/containerd、Kubernetes组件并关闭Swap,然后执行Master节点初始化时输出的kubeadm join命令(如sudo kubeadm join 192.168.1.10:6443 --token abcdef.1234567890abcdef --discovery-token-ca-cert-hash sha256:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx)。 - 节点状态验证
在Master节点上执行kubectl get nodes,确认Worker节点状态为Ready(若为NotReady,需检查网络插件、防火墙或节点资源是否充足)。执行kubectl describe node可查看节点详细信息,排查问题。
五、后续优化与维护技巧
- 防火墙配置
开放Kubernetes必要端口:- Master节点:6443(API Server)、2379-2380(etcd)、10250(kubelet);
- Worker节点:10250(kubelet)、10255(只读端口,可选)。
若使用ufw,执行sudo ufw allow开放端口;若用iptables,添加相应规则。
- 集群备份
定期备份etcd数据(Kubernetes核心存储),可使用etcdctl snapshot save命令(如sudo etcdctl snapshot save /opt/etcd-backup/snapshot.db)。备份文件需存储在安全位置,便于集群故障恢复。 - 组件更新
定期检查Kubernetes及相关组件(Docker、containerd)的更新,使用sudo apt update && sudo apt upgrade -y升级。升级前需备份重要数据(如etcd),并参考官方升级文档,避免版本不兼容。
以上就是关于“Debian系统Kubernetes集群搭建技巧”的相关介绍,筋斗云是国内较早的云主机应用的服务商,拥有10余年行业经验,提供丰富的云服务器、租用服务器等相关产品服务。云服务器资源弹性伸缩,主机vCPU、内存性能强悍、超高I/O速度、故障秒级恢复;电子化备案,提交快速,专业团队7×24小时服务支持!
简单好用、高性价比云服务器租用链接:https://www.jindouyun.cn/product/cvm