一、环境准备:虚拟机部署与基础配置
1.1 虚拟机环境搭建
在主流虚拟化平台中创建三台虚拟机作为集群节点,建议采用CentOS 8或Ubuntu 20.04 LTS等稳定发行版。安装过程中需注意:
- 选择最小化安装模式减少资源占用
- 启用root账户并设置强密码(建议包含大小写字母、数字及特殊字符)
- 分配至少2核CPU和4GB内存资源
- 磁盘空间建议不少于40GB(含20GB系统盘和20GB数据盘)
完成首节点安装后,通过克隆功能快速创建另外两个节点。克隆时需注意:
- 选择完整克隆而非链接克隆
- 修改MAC地址分配策略为随机生成
- 关闭自动启动选项避免立即启动
1.2 网络配置标准化
采用静态IP方案确保集群稳定性,配置步骤如下:
- 使用
nmtui工具进入交互式配置界面 - 填写网络参数(示例配置):
Addresses: 192.168.100.151/24Gateway: 192.168.100.1DNS servers: 8.8.8.8, 114.114.114.114
- 重启网络服务验证配置:
systemctl restart NetworkManagerip addr showping baidu.com
建议使用MobaXterm等终端工具建立SSH连接,其优势在于:
- 支持多标签管理
- 内置SFTP文件传输
- 支持X11图形转发
- 具备会话保存功能
二、系统级优化配置
2.1 主机标识管理
统一修改主机名并配置DNS解析:
# 修改主机名hostnamectl set-hostname k8s-master# 配置/etc/hosts文件cat >> /etc/hosts <<EOF192.168.100.151 k8s-master192.168.100.152 k8s-node1192.168.100.153 k8s-node2EOF
验证配置:
ping -c 3 k8s-node1getent hosts k8s-master
2.2 安全策略调整
执行以下命令关闭非必要服务:
# 防火墙配置systemctl disable --now firewalldsystemctl status firewalld | grep inactive# SELinux配置setenforce 0sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config# 验证配置sestatus | grep disabled
2.3 存储性能优化
关闭swap分区并持久化配置:
# 临时关闭swapoff -a# 永久禁用sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab# 验证配置free -h | grep Swap
三、内核参数调优
3.1 模块加载配置
创建模块配置文件:
cat > /etc/modules-load.d/k8s.conf <<EOFoverlaybr_netfilterEOF# 立即加载模块modprobe overlaymodprobe br_netfilter# 验证加载状态lsmod | grep -E 'overlay|br_netfilter'
3.2 网络参数优化
创建sysctl配置文件:
cat > /etc/sysctl.d/99-kubernetes.conf <<EOFnet.bridge.bridge-nf-call-iptables = 1net.ipv4.ip_forward = 1net.ipv4.conf.all.route_localnet = 1vm.swappiness = 0vm.overcommit_memory = 1EOF# 应用配置sysctl --system# 验证关键参数sysctl net.bridge.bridge-nf-call-iptables
3.3 时间同步配置
安装chrony服务确保时间同步:
yum install -y chronysystemctl enable --now chronyd# 验证时间同步状态chronyc sources -vtimedatectl status | grep synchronized
四、安装介质准备
4.1 容器运行时部署
推荐使用containerd作为运行时,安装步骤:
# 添加仓库配置cat > /etc/yum.repos.d/docker-ce.repo <<EOF[docker-ce-stable]name=Docker CE Stablebaseurl=https://download.docker.com/linux/centos/7/\$basearch/stableenabled=1gpgcheck=1EOF# 安装containerdyum install -y containerd.io# 配置containerdmkdir -p /etc/containerdcontainerd config default > /etc/containerd/config.tomlsed -i 's/SystemdCgroup = false/SystemdCgroup = true/' /etc/containerd/config.toml# 启动服务systemctl enable --now containerd
4.2 安装工具准备
安装kubeadm及相关组件:
# 添加kubernetes仓库cat > /etc/yum.repos.d/kubernetes.repo <<EOF[kubernetes]name=Kubernetesbaseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-\$basearchenabled=1gpgcheck=1EOF# 安装组件yum install -y kubelet kubeadm kubectl --disableexcludes=kubernetes# 锁定版本yum versionlock add kubelet kubeadm kubectl# 启动kubelet服务systemctl enable --now kubelet
五、集群初始化与验证
5.1 主节点初始化
执行初始化命令(根据实际镜像版本调整):
kubeadm init \--apiserver-advertise-address=192.168.100.151 \--image-repository registry.aliyuncs.com/google_containers \--kubernetes-version v1.28.0 \--service-cidr=10.96.0.0/12 \--pod-network-cidr=10.244.0.0/16
初始化完成后执行:
mkdir -p $HOME/.kubesudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/configsudo chown $(id -u):$(id -g) $HOME/.kube/config
5.2 网络插件部署
推荐使用Calico网络方案:
kubectl apply -f https://docs.projectcalico.org/manifests/calico.yaml# 验证网络组件状态kubectl get pods -n kube-system | grep calico
5.3 工作节点加入
在从节点执行join命令(从初始化输出获取):
kubeadm join 192.168.100.151:6443 \--token abcdef.0123456789abcdef \--discovery-token-ca-cert-hash sha256:xxxxxx
5.4 集群状态验证
# 验证节点状态kubectl get nodes# 验证核心组件状态kubectl get cs# 运行测试Podkubectl run test --image=nginx --restart=Neverkubectl get pods -o wide
六、运维建议与最佳实践
- 备份策略:定期备份
/etc/kubernetes目录和etcd数据 - 升级方案:采用”先升级控制平面,再升级工作节点”的顺序
- 监控配置:建议部署Prometheus+Grafana监控体系
- 日志管理:配置ELK或Loki日志收集方案
- 安全加固:定期更新组件版本,配置RBAC权限控制
通过以上系统化的配置流程,可构建出高可用的Kubernetes生产环境。实际部署时需根据具体业务需求调整参数配置,并建立完善的运维管理体系确保集群稳定运行。