Debian系统Kubernetes集群搭建技巧
导读:Debian系统Kubernetes集群搭建技巧 一、基础环境准备技巧 系统更新与依赖安装 搭建前务必执行sudo apt update && sudo apt upgrade -y更新系统,避免软件包冲突;安装apt-t...
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=1
sudo 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=< master-ip>
:指定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 < node-name>
可查看节点详细信息,排查问题。
五、后续优化与维护技巧
- 防火墙配置
开放Kubernetes必要端口:- Master节点:6443(API Server)、2379-2380(etcd)、10250(kubelet);
- Worker节点:10250(kubelet)、10255(只读端口,可选)。
若使用ufw
,执行sudo ufw allow < port>
开放端口;若用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),并参考官方升级文档,避免版本不兼容。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Debian系统Kubernetes集群搭建技巧
本文地址: https://pptw.com/jishu/720162.html