一、环境准备与节点规划
1.1 服务器基础配置要求
部署Kubernetes集群需满足以下硬件标准:
- 控制平面节点:建议配置4核CPU、8GB内存、100GB存储空间
- 工作节点:至少2核CPU、4GB内存、50GB存储空间
- 网络要求:所有节点需处于同一子网,确保22(SSH)、6443(K8s API)、10250(Kubelet)等端口互通
示例节点规划表:
| 主机类型 | 操作系统 | 配置 | IP地址 | 角色分配 |
|——————|——————|———————-|———————|————————————|
| 控制平面 | CentOS 7 | 4核8G/100GB | 192.168.85.164 | etcd/control-plane/worker |
| 镜像仓库 | Ubuntu 20.04 | 2核4G/50GB | 192.168.85.201 | Harbor专用节点 |
1.2 操作系统优化
全新安装的CentOS 7系统需执行以下优化:
# 禁用SELinux(永久生效)sudo sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config# 关闭Swap分区sudo swapoff -a && sudo sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab# 配置内核参数cat <<EOF | sudo tee /etc/sysctl.d/k8s.confnet.bridge.bridge-nf-call-ip6tables = 1net.bridge.bridge-nf-call-iptables = 1net.ipv4.ip_forward = 1EOFsudo sysctl --system
二、离线资源部署方案
2.1 资源包准备
建议准备以下离线资源包:
- Kubernetes 1.30.14二进制文件(含kubeadm、kubelet、kubectl)
- containerd 1.7.12安装包
- CNI插件(Calico/Cilium)
- KubeSphere 3.4.0安装包
- 自动化部署工具包(含配置模板与脚本)
资源包可通过某对象存储服务下载后,使用scp命令传输至控制平面节点:
scp -r /path/to/k8s-offline-package root@192.168.85.164:/opt/k8s-install
2.2 自动化部署工具配置
使用某开源集群部署工具(如kk)时,需准备以下配置文件结构:
/opt/k8s-install/├── config-sample.yaml # 集群配置模板├── kk # 部署工具二进制├── packages/ # 离线资源包│ ├── kubernetes-v1.30.14.tar.gz│ ├── containerd-1.7.12.tar.gz│ └── kubesphere-v3.4.0.tar.gz└── scripts/ # 自动化脚本├── init-node.sh└── deploy-cluster.sh
三、集群配置文件详解
3.1 核心配置参数说明
config-sample.yaml文件需包含以下关键配置:
apiVersion: kubekey.dev/v1alpha2kind: Clustermetadata:name: samplespec:hosts:- name: master-nodeaddress: 192.168.85.164internalAddress: 192.168.85.164user: rootpassword: "SecurePassword123"roleGroups:etcd:- master-nodecontrol-plane:- master-nodeworker:- master-nodecontainerManager: containerdnetwork:plugin: calicokubePodsCIDR: 10.233.64.0/18kubeServiceCIDR: 10.233.0.0/18
3.2 多节点集群配置示例
扩展至3节点集群的配置示例:
hosts:- {name: node1, address: 192.168.85.164, ...}- {name: node2, address: 192.168.85.165, ...}- {name: node3, address: 192.168.85.166, ...}roleGroups:etcd:- node1- node2- node3control-plane:- node1worker:- node2- node3
四、容器运行时部署
4.1 containerd安装与配置
# 安装依赖包sudo yum install -y device-mapper-persistent-data lvm2# 添加容器仓库并安装sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.reposudo yum install -y containerd.io-1.7.12# 生成默认配置sudo mkdir -p /etc/containerdcontainerd config default | sudo tee /etc/containerd/config.toml# 修改Cgroup驱动为systemdsudo sed -i 's/SystemdCgroup = false/SystemdCgroup = true/' /etc/containerd/config.toml# 启用并启动服务sudo systemctl enable containerd && sudo systemctl start containerd
4.2 CRI配置验证
执行以下命令验证containerd的CRI接口:
sudo ctr images lssudo crictl ps -asudo crictl info | grep "runtimeName"
五、Harbor镜像仓库部署
5.1 独立节点部署方案
建议在专用节点部署Harbor镜像仓库:
- 安装Docker Engine(仅用于Harbor运行)
- 部署Harbor 2.9.0版本
- 配置HTTPS证书与存储后端
5.2 集群镜像拉取配置
在集群节点配置镜像拉取秘钥:
# 创建secretkubectl create secret docker-registry regcred \--docker-server=harbor.example.com \--docker-username=admin \--docker-password=HarborPass123 \--docker-email=admin@example.com# 在Pod定义中引用imagePullSecrets:- name: regcred
六、集群安装与验证
6.1 自动化安装流程
# 初始化部署工具cd /opt/k8s-install && chmod +x kk# 执行集群部署./kk create cluster -f config-sample.yaml -y# 验证组件状态kubectl get pods -n kube-systemkubectl get nodes
6.2 KubeSphere集成
在集群初始化完成后,通过以下命令安装KubeSphere:
kubectl apply -f https://github.com/kubesphere/ks-installer/releases/download/v3.4.0/kubesphere-installer.yamlkubectl apply -f https://github.com/kubesphere/ks-installer/releases/download/v3.4.0/cluster-configuration.yaml# 验证安装进度kubectl logs -n kubesphere-system $(kubectl get pod -n kubesphere-system -l app=ks-install -o jsonpath='{.items[0].metadata.name}') -f
七、常见问题处理
7.1 节点状态异常排查
- NotReady状态:检查kubelet日志与CNI插件状态
- 证书过期:使用
kubeadm certs renew all更新证书 - 网络连通性问题:验证防火墙规则与核心DNS解析
7.2 存储类配置错误
当使用某云存储服务时,需正确配置StorageClass参数:
apiVersion: storage.k8s.io/v1kind: StorageClassmetadata:name: csi-standardprovisioner: csi-driver-nameparameters:type: standardfsType: xfsreclaimPolicy: Delete
通过以上完整流程,运维人员可在CentOS 7环境下快速构建生产级Kubernetes集群,并集成可视化管控平台。实际部署时建议先在测试环境验证配置,再逐步推广至生产环境。