当前位置: 首页 > article >正文

基于 Kubernetes 搭建 DevOps 持续集成环境

环境准备

在部署 Kubernetes(K8s)以及相关 DevOps 工具(如 Jenkins、Kuboard、Harbor)时,我们需要确保服务器和软件环境符合要求。

服务器及软件环境

  • 服务器配置:2 核 4G 及以上(推荐至少 2 台,分别作为 Master 和 Worker)
  • 服务器操作系统:Linux(CentOS、Ubuntu 等)
  • Web 服务器:Nginx
  • 数据库:MySQL 5.6 及以上,或 MariaDB 10.3 及以上
  • PHP 版本:PHP7.4 及以上(如需 PHP 兼容性支持,可选择 PHP5.6、PHP8)
  • 服务器管理面板:推荐使用 宝塔面板(支持一键部署)
  • 浏览器:Chrome、Edge 等现代浏览器

服务器选择

在选择云服务器时,我们可以使用 慈云数据提供的云服务器产品,其稳定性和网络性能能够满足 Kubernetes 及 DevOps 相关应用的需求。

示例服务器配置(以 慈云数据 为例):

  • 2 核 4G 适用于轻量级 Kubernetes 集群
  • 4 核 8G 适用于中等规模的持续集成环境
  • 更高配置 可用于大规模应用及生产环境

安装 Kubernetes 及 Kuboard

按照 Kuboard 官方教程,我们可以使用以下步骤进行 Kubernetes 集群的安装。

1. 配置服务器内网通信

确保服务器之间可以通过内网通信,避免不必要的公网流量消耗。可以使用 ping 命令测试互通性:

ping <另一台服务器内网IP>

如果无法连通,需要检查防火墙或网络配置。例如,在 CentOS 上可以执行:

systemctl stop firewalld && systemctl disable firewalld

2. 安装 Docker 并配置 Harbor

在所有节点上安装 Docker,并修改 /etc/docker/daemon.json 以添加 Harbor 私有仓库:

{
  "insecure-registries": ["http://<Harbor_IP>:<Port>"]
}

然后重启 Docker:

systemctl restart docker

3. 安装 Kubernetes

使用 kubeadm 进行 Kubernetes 初始化,Master 节点执行:

kubeadm init --apiserver-advertise-address=<Master_IP> --pod-network-cidr=10.244.0.0/16

Worker 节点加入集群:

kubeadm join <Master_IP>:6443 --token <token> --discovery-token-ca-cert-hash sha256:<hash>

4. 部署 Kuboard

按照官方文档使用 kubectl apply 安装 Kuboard:

kubectl apply -f https://addons.kuboard.cn/kuboard/kuboard.yaml

然后访问 http://<Kuboard_IP>:32567 进行界面管理。

Jenkins 持续集成

Jenkins 主要用于自动化构建、测试和部署应用。推荐安装 Jenkins 并配置 SSH 免密登录,以便自动推送更新到 Kubernetes 集群。

1. 配置 SSH 免密登录

在 Jenkins 服务器上生成 SSH 密钥:

ssh-keygen -t rsa -b 4096

将公钥复制到 Kubernetes Master 节点:

ssh-copy-id root@<Master_IP>

2. 编写 CI/CD Pipeline

在 Jenkins 中创建 pipeline.yml,其中包含:

  • 构建 Docker 镜像并推送至 Harbor
  • 更新 Kubernetes Deployment 配置
  • 自动执行 kubectl apply 部署更新

示例 Pipeline:

stages:
  - stage: Build
    script:
      - docker build -t <Harbor_IP>:<Port>/myapp:latest .
      - docker push <Harbor_IP>:<Port>/myapp:latest
  - stage: Deploy
    script:
      - kubectl apply -f deployment.yml

总结

通过以上步骤,我们可以在云服务器上搭建完整的 Kubernetes + DevOps 持续集成环境,实现从代码提交到应用部署的全流程自动化。此环境适用于各类云服务器,而 慈云数据 的服务器在网络稳定性和计算资源方面也能提供良好的支持。


http://www.kler.cn/a/572822.html

相关文章:

  • DeepSeek基础学习:深度讲解AI大模型基本原理
  • Unity:物体指定初速度、方向移动方法
  • day1 第二次入门rust
  • dify、open-webui、chatbox 对比
  • MFC扩展库BCGControlBar Pro v36.1新版亮点 - 对话框表单组件升级
  • Linux 命令终极指南:分类详解与实战场景
  • 内核编程八:基于printk宏的pr_* 宏
  • Pywinauto Recorder: 将Windows操作转化为Python脚本,高效简易地实现操作自动化
  • 【单片机通信技术】STM32 HAL库 SPI主从机通过串口发送数据
  • ASP.NET Core 3.1 修改个别API返回JSON序列化格式
  • e2studio开发RA2E1(15)----配置RTC时钟及显示时间
  • 如何排查服务器内存泄漏问题
  • Java 导出 PDF 文件:从入门到实战
  • 云上大数据平台的优化:提升效率与可靠性的实践
  • 【uniapp】新闻列表+跳转详情页+评论展示(uni.request请求接口)
  • 生产制造中人、机、料、法、环对应的系统服务拆分
  • [自动驾驶-传感器融合] 多激光雷达的外参标定
  • VIA的寄生电感和Stub对高速信号的影响
  • angular+nodejs问卷调查系统
  • ubuntu24.04 经常更新内核,导致GPU不能用,如何锁定内核版本