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

ops/2025/3/6 9:45:02/

环境准备

在部署 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: Buildscript:- docker build -t <Harbor_IP>:<Port>/myapp:latest .- docker push <Harbor_IP>:<Port>/myapp:latest- stage: Deployscript:- kubectl apply -f deployment.yml

总结

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


http://www.ppmy.cn/ops/163566.html

相关文章

【Vue3】实现一个超过高度后可控制显示隐藏的组件

组件效果图 未达到最大高度 达到设置的最大高度 进行展开 实现代码 组件代码 备注&#xff1a;通过tailwindcss设置的样式&#xff0c;通过element-plus/icons-vue设置的图标&#xff0c;可根据情况进行替换 <template><!-- 限制高度组件 --><div ref"…

smart代理原生住宅IP是如何避免跨境电商店铺被DDoS攻击的?

随着跨境电商的迅猛发展&#xff0c;越来越多的商家开始把业务拓展到国际市场&#xff0c;然而&#xff0c;随之而来的是网络安全问题的威胁&#xff0c;其中最常见的是DDoS攻击。 这种攻击方式会让商家的网站或应用程序停止运作&#xff0c;从而影响销售和声誉。 幸运的是&…

CES Asia 2025增设未来办公教育板块,科技变革再掀高潮

作为亚洲消费电子领域一年一度的行业盛会&#xff0c;CES Asia 2025&#xff08;第七届亚洲消费电子技术贸易展&#xff09;即将盛大启幕。今年展会规模再度升级&#xff0c;预计将吸引超过500家全球展商参展&#xff0c;专业观众人数有望突破10万。除了聚焦人工智能、物联网、…

【智能体架构:Agent】LangChain智能体类型ReAct、Self-ASK的区别

1. 什么是智能体 将大语言模型作为一个推理引擎。给定一个任务&#xff0c; 智能体自动生成完成任务所需步骤&#xff0c; 执行相应动作&#xff08;例如选择并调用工具&#xff09;&#xff0c; 直到任务完成。 2. 先定义工具&#xff1a;Tools 可以是一个函数或三方 API也…

【AI深度学习基础】Pandas完全指南进阶篇:解锁高效数据处理高阶技能 (含完整代码)

&#x1f4da; Pandas 系列文章导航 入门篇 &#x1f331;进阶篇 &#x1f680;终极篇 &#x1f30c; &#x1f31f; 前言 在入门篇中&#xff0c;我们掌握了 Pandas 的核心数据结构和基础操作。本篇将深入探索 高效数据处理、复杂数据建模、性能调优 等进阶技能&#xff0c;…

Android14 OTA差分包升级报kPayloadTimestampError (51)

由于VF 架构&#xff0c; 所以镜像的打包时间可能存在偏差&#xff0c; 如 boot.img 和 客制化的一些镜像打包 可能会在 vendor 侧进行打包。 而 与system 侧进行merge 时&#xff0c;时间戳比较乱&#xff0c;为了解决这个问题&#xff0c;让时间戳进行统一。 使用adb方式验证…

火语言RPA--删除PDF页

【组件功能】&#xff1a;删除PDF指定页文档 配置预览 配置说明 文件路径 支持T或# 默认FLOW输入项 待删除PDF页的PDF文件完整路径。 删除页码 支持T或# 要删除的页面&#xff0c;多个用逗号分隔&#xff0c;连续删除多页用“-”连接起始结尾&#xff0c;例如&#xff1a;…

Python数据可视化——Matplotlib的基本概念和使用

Matplotlib是Python中最常用的绘图和数据可视化库之一&#xff0c;能够帮助我们将数据以图表的形式展示出来&#xff0c;使数据的规律和趋势更加直观。无论是在科学计算、工程分析&#xff0c;还是商业报告和机器学习领域&#xff0c;Matplotlib都能发挥重要作用。 Matplotlib…