物理机部署集群

部署集群即用实体服务器搭建,需规划硬件资源、网络架构,实现多机协同工作与负载均衡。

前期准备

  1. 硬件与网络规划

    物理机部署集群

    • 设备选型:选择性能稳定、配置相当的物理服务器作为集群节点,建议采用相同型号以确保兼容性,可选用三台搭载多核CPU、大容量内存及高速存储设备的服务器,分别担任Master主控节点和两个Worker工作节点角色。
    • IP地址分配:为每台机器设置固定静态IP并做好域名解析映射,如将192.168.137.129绑定给Master主机名,另外两台依次设置为node1(192.168.137.130)、node2(192.168.137.131),同时在所有节点的/etc/hosts文件中添加对应条目实现名称解析。
    • 网络连通性测试:通过ping命令验证跨节点间的网络互通情况,确保无丢包或延迟过高现象。
  2. 操作系统标准化配置

    • 时区同步:执行timedatectl set-timezone Asia/Shanghai统一调整所有节点的时间区域。
    • 主机名修改:使用hostnamectl set-hostname <新主机名>命令分别重命名各节点。
    • 安全策略调整:临时关闭防火墙(systemctl stop firewalld && systemctl disable firewalld)、禁用SELinux强制模式(sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config; setenforce 0),避免干扰后续组件安装。
    • 内核参数优化:创建/etc/sysctl.d/k8s.conf文件,写入以下配置以支持容器网络功能:
      net.bridge.bridge-nf-call-ip6tables = 1
      net.bridge.bridge-nf-call-iptables = 1
      net.ipv4.ip_forward = 1
      vm.swappiness = 0
      ```随后执行`sysctl --system`使生效,并加载br_netfilter模块。
  3. 基础软件安装

    • Docker引擎部署:基于CentOS系统可通过yum仓库安装最新版Docker CE,关键步骤包括添加官方源、移除旧版本残留包、安装依赖项(如device-mapper)、本地化部署RPM包等,完成安装后启动服务并设置为开机自启。
    • Kubeadm工具集准备:下载指定版本的Kubernetes二进制包(如v1.14),解压至/usr/local/k8s目录备用,该工具包包含kubelet守护进程、kubectl客户端工具以及初始化脚本等必要组件。

集群搭建流程

  1. 初始化Master节点

    物理机部署集群

    • 组件安装:运行以下命令获取并安装核心管控组件:
      sudo apt-get update && sudo apt-get install -y apt-transport-https curl
      sudo curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -
      echo "deb http://apt.kubernetes.io/ kubernetes-xenial main" | sudo tee /etc/apt/sources.list.d/kubernetes.list
      sudo apt-get update
      sudo apt-get install -y kubelet kubeadm kubectl
    • 集群初始化:执行sudo kubeadm init --pod-network-cidr=10.244.0.0/16生成证书体系与基础架构,此操作将创建etcd数据库用于存储集群状态数据,启动API Server提供RESTful接口接入点。
    • 环境变量配置:复制生成的admin.conf文件至用户家目录(~/.kube/config),赋予普通用户权限以便日常管理操作。
    • 网络插件部署:应用Flannel CNI插件实现跨主机容器通信:kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
  2. 加入Worker节点

    • Token生成:在Master端运行kubeadm token create --print-join-command获取加入指令模板。
    • 节点注册:将在Master上获得的完整join命令复制到Worker节点执行,sudo kubeadm join <MASTER_IP>:<PORT> --token <TOKEN> --discovery-token-ca-cert-hash sha256:<HASH>,该过程会自动下载所需镜像并注册到集群注册表中。
  3. 验证集群状态

    • 资源检视:使用kubectl get nodes查看已连接的工作节点列表,确认所有节点均处于Ready状态,若出现NotReady提示,需检查网络连通性或日志排查故障原因。
    • 功能测试:尝试部署简单应用验证调度机制是否正常工作,例如运行一个Nginx示例:
      kubectl create deployment nginx --image=nginx
      kubectl expose deployment nginx --port=80 --type=NodePort
      ```通过访问任意Worker节点的对应端口号,应能正常看到Nginx默认页面。

典型应用场景示例

场景类型 优势特性 适用场景
高可用Web服务 自动负载均衡、水平扩展 电商平台前端页面展示
批处理任务 弹性伸缩、资源隔离 大数据ETL处理
微服务架构 服务发现、熔断机制 分布式订单管理系统
CI/CD流水线 镜像构建集成、滚动更新 DevOps持续交付流程

常见问题解答(FAQs)

Q1: 如果遇到“无法拉取镜像”的错误怎么办?
A: 这可能是由于国内网络环境导致的镜像下载缓慢或失败,解决方法包括:更换为阿里云等国内镜像源;预先手动下载所需镜像并导入本地仓库;或者在kubeadm init时指定–image-repository参数使用自定义镜像仓库。

物理机部署集群

Q2: 如何升级已存在的Kubernetes集群版本?
A: 推荐采用逐次升级策略:先备份ETCD数据;在Master节点执行kubeadm upgrade plan查看可升级路径;按提示逐步应用新版本组件;最后验证各工作节点的功能完整性,注意升级过程中应避免中断操作,防止造成脑裂问题。

通过以上步骤,您可以成功在物理机上部署一个高效稳定的Kubernetes集群,充分利用裸金属服务器的性能优势,同时享受容器编排

原创文章,发布者:酷盾叔,转转请注明出处:https://www.kd.cn/ask/93954.html

(0)
酷盾叔的头像酷盾叔
上一篇 2025年8月5日 16:13
下一篇 2025年8月5日 16:17

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN