1. 环境准备与规划在VMware虚拟化环境中部署KubeSphere集群首先需要做好基础环境规划。我建议采用3节点架构1个master节点2个worker节点作为最小高可用配置这个配置既满足生产环境需求又不会过度消耗资源。实际项目中我曾用这个架构支撑过日均10万请求的电商系统。网络规划要特别注意IP地址分配。建议为集群预留连续的IP段比如192.168.20.14-192.168.20.16。存储方面每个虚拟机至少需要100GB系统盘worker节点建议额外挂载200GB数据盘用于容器存储。以下是具体配置示例Master节点4核CPU/8GB内存/100GB磁盘Worker节点8核CPU/16GB内存/100GB系统盘200GB数据盘在VMware中创建虚拟机时记得开启虚拟化引擎的虚拟化Intel VT-x/EPT选项这对Kubernetes性能至关重要。有次我忘记开启这个选项导致容器运行时性能下降30%排查了半天才发现问题。2. 系统基础配置2.1 操作系统优化CentOS 7仍然是目前最稳定的选择但需要做一系列优化。首先配置阿里云镜像源加速软件安装# 备份原有源 mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak 2/dev/null # 配置阿里云源 curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo yum clean all yum makecache生产环境必须关闭防火墙、SELinux和Swap。这里有个坑只执行swapoff -a是临时生效重启后会恢复。必须同时修改/etc/fstab文件# 永久关闭Swap swapoff -a sed -i /swap/s/^/#/ /etc/fstab # 验证Swap状态 swapon --show # 应该无输出2.2 内核参数调优Kubernetes对Linux内核有特殊要求需要加载这些模块cat /etc/modules-load.d/k8s.conf EOF overlay br_netfilter ip_vs ip_vs_rr ip_vs_wrr ip_vs_sh nf_conntrack EOF # 立即加载模块 modprobe --allIP转发和桥接流量控制参数也必不可少cat /etc/sysctl.d/k8s.conf EOF net.bridge.bridge-nf-call-iptables 1 net.bridge.bridge-nf-call-ip6tables 1 net.ipv4.ip_forward 1 EOF # 生效配置 sysctl --system3. 使用Kubekey部署集群3.1 安装KubekeyKubekey是KubeSphere官方的一键部署工具比kubeadm更方便。下载时建议指定版本# 国内用户设置区域变量 export KKZONEcn # 下载最新版Kubekey curl -sfL https://get-kk.kubesphere.io | VERSIONv3.0.7 sh -如果网络有问题可以手动下载tar包wget https://kubernetes.pek3b.qingstor.com/kubekey/releases/download/v3.0.7/kubekey-v3.0.7-linux-amd64.tar.gz tar -zxvf kubekey-v3.0.7-linux-amd64.tar.gz3.2 集群配置文件定制生成默认配置文件后需要根据实际环境修改./kk create config --with-kubesphere v3.3.2重点配置项包括hosts填写各节点IP、用户名和密码roleGroups划分etcd、control-plane和worker节点network设置Pod和Service的CIDRaddons启用监控、日志等组件这是我的生产环境配置片段apiVersion: kubekey.kubesphere.io/v1alpha2 kind: Cluster metadata: name: production spec: hosts: - {name: master, address: 192.168.20.14, user: root, password: YourSecurePassword} - {name: node1, address: 192.168.20.15, user: root, password: YourSecurePassword} - {name: node2, address: 192.168.20.16, user: root, password: YourSecurePassword} roleGroups: etcd: [master] control-plane: [master] worker: [node1, node2] kubernetes: version: v1.23.10 clusterName: cluster.local network: plugin: calico kubePodsCIDR: 10.233.64.0/18 kubeServiceCIDR: 10.233.0.0/184. 高可用与生产级配置4.1 控制平面高可用虽然我们只有一个master节点但仍可以通过这些措施提高可用性定期备份etcd设置自动备份策略配置健康检查为kube-apiserver添加readiness探针资源预留确保系统组件有足够资源在config-sample.yaml中添加kubernetes: autoRenewCerts: true # 自动更新证书 containerManager: containerd # 推荐使用containerd4.2 存储与网络优化生产环境必须配置持久化存储。如果使用本地存储建议spec: addons: - name: local-volume-provisioner enabled: true config: storageClass: local hostDir: /mnt/disks mountDir: /mnt/disks网络策略是安全的关键启用KubeSphere的网络策略组件network: multusCNI: enabled: true # 支持多网卡 networkpolicy: enabled: true # 启用网络策略5. 安装验证与故障排查启动安装命令后实时查看日志./kk create cluster -f config-sample.yaml # 查看KubeSphere安装日志 kubectl logs -n kubesphere-system \ $(kubectl get pod -n kubesphere-system -l appks-installer -o jsonpath{.items[0].metadata.name}) -f成功安装的标志是看到欢迎信息##################################################### ### Welcome to KubeSphere! ### ##################################################### Console: http://192.168.20.14:30880 Account: admin Password: P88w0rd常见问题排查镜像拉取失败检查KKZONEcn是否设置节点NotReady确认网络插件已正确安装组件启动超时查看具体Pod日志定位问题安装完成后立即执行这些安全检查修改默认admin密码配置RBAC权限设置网络策略启用审计日志记得首次登录后在集群管理中检查所有组件状态。我曾经遇到过监控组件因资源不足无法启动的情况通过调整Pod资源限制解决了问题。
VMware 虚拟机中 KubeSphere 企业级部署实战:从零配置到高可用集群的完整指南
1. 环境准备与规划在VMware虚拟化环境中部署KubeSphere集群首先需要做好基础环境规划。我建议采用3节点架构1个master节点2个worker节点作为最小高可用配置这个配置既满足生产环境需求又不会过度消耗资源。实际项目中我曾用这个架构支撑过日均10万请求的电商系统。网络规划要特别注意IP地址分配。建议为集群预留连续的IP段比如192.168.20.14-192.168.20.16。存储方面每个虚拟机至少需要100GB系统盘worker节点建议额外挂载200GB数据盘用于容器存储。以下是具体配置示例Master节点4核CPU/8GB内存/100GB磁盘Worker节点8核CPU/16GB内存/100GB系统盘200GB数据盘在VMware中创建虚拟机时记得开启虚拟化引擎的虚拟化Intel VT-x/EPT选项这对Kubernetes性能至关重要。有次我忘记开启这个选项导致容器运行时性能下降30%排查了半天才发现问题。2. 系统基础配置2.1 操作系统优化CentOS 7仍然是目前最稳定的选择但需要做一系列优化。首先配置阿里云镜像源加速软件安装# 备份原有源 mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak 2/dev/null # 配置阿里云源 curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo yum clean all yum makecache生产环境必须关闭防火墙、SELinux和Swap。这里有个坑只执行swapoff -a是临时生效重启后会恢复。必须同时修改/etc/fstab文件# 永久关闭Swap swapoff -a sed -i /swap/s/^/#/ /etc/fstab # 验证Swap状态 swapon --show # 应该无输出2.2 内核参数调优Kubernetes对Linux内核有特殊要求需要加载这些模块cat /etc/modules-load.d/k8s.conf EOF overlay br_netfilter ip_vs ip_vs_rr ip_vs_wrr ip_vs_sh nf_conntrack EOF # 立即加载模块 modprobe --allIP转发和桥接流量控制参数也必不可少cat /etc/sysctl.d/k8s.conf EOF net.bridge.bridge-nf-call-iptables 1 net.bridge.bridge-nf-call-ip6tables 1 net.ipv4.ip_forward 1 EOF # 生效配置 sysctl --system3. 使用Kubekey部署集群3.1 安装KubekeyKubekey是KubeSphere官方的一键部署工具比kubeadm更方便。下载时建议指定版本# 国内用户设置区域变量 export KKZONEcn # 下载最新版Kubekey curl -sfL https://get-kk.kubesphere.io | VERSIONv3.0.7 sh -如果网络有问题可以手动下载tar包wget https://kubernetes.pek3b.qingstor.com/kubekey/releases/download/v3.0.7/kubekey-v3.0.7-linux-amd64.tar.gz tar -zxvf kubekey-v3.0.7-linux-amd64.tar.gz3.2 集群配置文件定制生成默认配置文件后需要根据实际环境修改./kk create config --with-kubesphere v3.3.2重点配置项包括hosts填写各节点IP、用户名和密码roleGroups划分etcd、control-plane和worker节点network设置Pod和Service的CIDRaddons启用监控、日志等组件这是我的生产环境配置片段apiVersion: kubekey.kubesphere.io/v1alpha2 kind: Cluster metadata: name: production spec: hosts: - {name: master, address: 192.168.20.14, user: root, password: YourSecurePassword} - {name: node1, address: 192.168.20.15, user: root, password: YourSecurePassword} - {name: node2, address: 192.168.20.16, user: root, password: YourSecurePassword} roleGroups: etcd: [master] control-plane: [master] worker: [node1, node2] kubernetes: version: v1.23.10 clusterName: cluster.local network: plugin: calico kubePodsCIDR: 10.233.64.0/18 kubeServiceCIDR: 10.233.0.0/184. 高可用与生产级配置4.1 控制平面高可用虽然我们只有一个master节点但仍可以通过这些措施提高可用性定期备份etcd设置自动备份策略配置健康检查为kube-apiserver添加readiness探针资源预留确保系统组件有足够资源在config-sample.yaml中添加kubernetes: autoRenewCerts: true # 自动更新证书 containerManager: containerd # 推荐使用containerd4.2 存储与网络优化生产环境必须配置持久化存储。如果使用本地存储建议spec: addons: - name: local-volume-provisioner enabled: true config: storageClass: local hostDir: /mnt/disks mountDir: /mnt/disks网络策略是安全的关键启用KubeSphere的网络策略组件network: multusCNI: enabled: true # 支持多网卡 networkpolicy: enabled: true # 启用网络策略5. 安装验证与故障排查启动安装命令后实时查看日志./kk create cluster -f config-sample.yaml # 查看KubeSphere安装日志 kubectl logs -n kubesphere-system \ $(kubectl get pod -n kubesphere-system -l appks-installer -o jsonpath{.items[0].metadata.name}) -f成功安装的标志是看到欢迎信息##################################################### ### Welcome to KubeSphere! ### ##################################################### Console: http://192.168.20.14:30880 Account: admin Password: P88w0rd常见问题排查镜像拉取失败检查KKZONEcn是否设置节点NotReady确认网络插件已正确安装组件启动超时查看具体Pod日志定位问题安装完成后立即执行这些安全检查修改默认admin密码配置RBAC权限设置网络策略启用审计日志记得首次登录后在集群管理中检查所有组件状态。我曾经遇到过监控组件因资源不足无法启动的情况通过调整Pod资源限制解决了问题。