logo

CentOS离线Kubekey一键部署K8s集群指南

作者:Nicky2025.09.19 18:30浏览量:0

简介:本文详述了如何在CentOS环境下利用Kubekey实现K8s集群的离线一键部署,包括环境准备、Kubekey安装、配置文件定制、集群部署及验证等步骤。

CentOS离线Kubekey一键部署K8s集群指南

云计算和容器化技术日益盛行的今天,Kubernetes(K8s)作为容器编排的领头羊,已经成为众多企业构建现代化应用架构的首选。然而,对于处于内网环境或需要严格管控软件来源的企业而言,如何在CentOS系统上实现K8s集群的离线部署,成为了一个亟待解决的问题。本文将详细介绍如何使用Kubekey这一工具,在CentOS环境下实现K8s集群的离线一键部署,为开发者及企业用户提供一套高效、可靠的解决方案。

一、环境准备

1.1 硬件要求

  • 节点数量:至少需要1个Master节点和1个Worker节点,推荐配置为3个Master节点和若干Worker节点以提高可用性。
  • CPU与内存:Master节点建议至少4核CPU、8GB内存;Worker节点根据实际负载调整,建议不低于2核CPU、4GB内存。
  • 磁盘空间:每个节点至少预留100GB磁盘空间用于容器存储

1.2 软件要求

  • 操作系统:CentOS 7或CentOS 8,确保系统已更新至最新版本。
  • 网络环境:节点间需网络互通,且Master节点需能访问外网(仅在首次部署时用于下载离线包,后续可完全离线操作)。
  • 依赖工具:提前安装好wgettarssh等基础工具。

二、Kubekey安装与配置

2.1 下载Kubekey离线包

由于是离线部署,首先需要在一台能访问外网的CentOS机器上下载Kubekey及其依赖的K8s组件离线包。

  1. # 示例:下载Kubekey最新版(请根据实际情况调整版本号)
  2. wget https://github.com/kubesphere/kubekey/releases/download/vX.Y.Z/kubekey-vX.Y.Z-linux-amd64.tar.gz
  3. tar -xvf kubekey-vX.Y.Z-linux-amd64.tar.gz
  4. chmod +x kk

同时,使用Kubekey的export命令导出所需K8s版本及其依赖组件的离线包。

  1. # 示例:导出K8s 1.23版本的离线包
  2. ./kk create cluster --with-kubernetes v1.23.0 --with-local-storage --with-kubesphere v3.3.0 -f config-sample.yaml
  3. # 此步骤会生成一个包含所有依赖的tar包,需将其传输至离线环境

2.2 传输离线包至目标环境

将下载的Kubekey二进制文件及导出的离线包通过U盘、内部文件服务器等方式传输至CentOS离线环境的Master节点。

三、配置文件定制

3.1 创建配置文件

在Master节点上,根据实际环境修改Kubekey的配置文件(如config-sample.yaml),主要配置项包括:

  • 集群名称:自定义集群名称。
  • K8s版本:与之前导出的离线包版本一致。
  • 网络插件:如Calico、Flannel等。
  • 节点信息:包括IP地址、角色(Master/Worker)、SSH端口、用户名及密码或密钥文件路径。
  • 存储类型:根据需求配置本地存储或外部存储。

3.2 示例配置片段

  1. apiVersion: kubekey.kubesphere.io/v1alpha2
  2. kind: Cluster
  3. metadata:
  4. name: my-cluster
  5. spec:
  6. kubernetes:
  7. version: v1.23.0
  8. network:
  9. plugin: calico
  10. kubePodsCIDR: 10.233.64.0/18
  11. kubeServiceCIDR: 10.233.0.0/18
  12. nodes:
  13. - role: master
  14. hostName: master1
  15. ip: 192.168.1.10
  16. ssh:
  17. port: 22
  18. user: root
  19. password: "your_password" # 或使用sshKeyPath指定密钥文件
  20. - role: worker
  21. hostName: worker1
  22. ip: 192.168.1.11
  23. ssh:
  24. # 同上配置worker节点

四、集群部署

4.1 执行部署命令

在Master节点上,使用Kubekey执行部署命令:

  1. # 解压离线包(如果之前未解压)
  2. tar -xvf kubernetes-v1.23.0-offline.tar.gz
  3. # 进入解压后的目录
  4. cd kubernetes-v1.23.0-offline
  5. # 执行部署
  6. ./kk create cluster -f /path/to/your/config.yaml

4.2 监控部署过程

部署过程中,Kubekey会显示详细的部署日志,包括每个节点的初始化、组件安装等步骤。耐心等待部署完成,期间可通过kubectl get nodes命令(部署完成后)查看节点状态。

五、集群验证与使用

5.1 验证集群状态

部署完成后,首先验证集群状态:

  1. # 设置kubectl上下文(如果尚未设置)
  2. export KUBECONFIG=/etc/kubernetes/admin.conf
  3. # 查看节点状态
  4. kubectl get nodes
  5. # 应显示所有节点为Ready状态

5.2 部署示例应用

为了验证集群功能,可以部署一个简单的Nginx应用:

  1. # 创建Nginx Deployment
  2. cat <<EOF | kubectl apply -f -
  3. apiVersion: apps/v1
  4. kind: Deployment
  5. metadata:
  6. name: nginx-deployment
  7. spec:
  8. replicas: 3
  9. selector:
  10. matchLabels:
  11. app: nginx
  12. template:
  13. metadata:
  14. labels:
  15. app: nginx
  16. spec:
  17. containers:
  18. - name: nginx
  19. image: nginx:latest
  20. ports:
  21. - containerPort: 80
  22. EOF
  23. # 暴露服务
  24. kubectl expose deployment nginx-deployment --type=NodePort --port=80
  25. # 获取服务访问地址
  26. kubectl get svc nginx-deployment

通过浏览器或curl命令访问返回的NodePort端口,验证Nginx服务是否正常运行。

六、总结与展望

通过上述步骤,我们成功在CentOS环境下利用Kubekey实现了K8s集群的离线一键部署。这一方法不仅解决了内网环境下的部署难题,还大大提高了部署效率和一致性。未来,随着K8s生态的不断发展,Kubekey等工具也将持续优化,为企业提供更加灵活、高效的容器化解决方案。对于开发者而言,掌握离线部署技能,将有助于在更多复杂环境中快速搭建K8s集群,推动项目的顺利实施。

相关文章推荐

发表评论