教程云原生容器编排【免费下载链接】kubernetes-handbookKubernetes 架构与生态从云原生到 AI 原生基础设施的构建指南项目地址https://gitcode.com/gh_mirrors/ku/kubernetes-handbook点击查看免费下载Drone 是一款用 Go 语言开发的、基于容器运行的开源持续集成软件它天然契合 Kubernetes 时代的流水线即代码理念。本指南以 持续集成与发布CI/CD 章节为背景完整演示如何在本地环境通过 GitHub OAuth 授权、以 docker-compose 单机方式部署 Drone server 与 agent并接入 GitHub 仓库实现持续构建与发布帮助你在实践中掌握一套轻量、容器化的 CI 工具落地方法。Drone 与 Kubernetes 时代的 CI/CDKubernetes 本身并不提供代码构建、发布和部署能力所有这些工作都是由 CI/CD 工作流完成的。在 持续集成与发布CI/CD 中作者介绍了 DevOps 模式、GitOps 以及云原生应用模式GitOps 主张通过克隆或拉取 Git 仓库检索最新配置清单用kubectl diff与集群实时资源比对再以kubectl apply将变更推送到集群。而在工具选型上既可以与企业内部原有的持续构建系统集成例如 使用 Jenkins 进行持续集成与发布也可以在 Kubernetes 中部署一套新的持续构建与发布工具Drone 正是其中的典型代表。Drone 的核心特点是Go 语言编写单一静态二进制部署简单资源占用低基于容器执行流水线中的每一步都在独立的 Docker 容器中运行构建环境随用随取、互不污染server / agent 分离架构从本文的docker-compose.yaml可以看出drone-server负责 Web 界面、API 与调度drone-agent负责在宿主机上通过挂载的/var/run/docker.sock真正执行构建任务两者通过共享的DRONE_SECRET完成认证。这套控制面 执行面的架构与 Kubernetes 的 master/node 思想异曲同工也是 Drone 后续能在 Kubernetes 集群内以 Pod 方式运行的基础。第一步在 GitHub 上配置 OAuth 应用使用 Drone 对 GitHub 上的代码进行持续构建与发布需要首先在 GitHub 上设置一个 OAuth 应用分为两个步骤。1. 创建新的 OAuth 应用访问 GitHub 的应用程序设置页面创建一个新的 OAuth 应用Homepage URL填写应用程序的地址。因为是在本地运行所以填写http://localhostAuthorization callback URL用于 GitHub 完成授权后回调 Drone 的地址本地运行时同样指向http://localhost。2. 获取 OAuth Client ID 和 Client Secret注册完成后即可获得如下所示的 OAuth Client ID 和 Client Secret请妥善保存后续配置drone-server环境变量时会用到。这两组凭据分别对应DRONE_GITHUB_CLIENT与DRONE_GITHUB_SECRET两个环境变量是 Drone 与 GitHub 建立信任关系的关键切勿泄露。第二步使用 docker-compose 单机运行 Drone在本地环境按照 Drone 官方安装文档的配置方式使用 docker-compose 安装运行 Drone。由于我们将代码托管在 GitHub 上需要 Drone 能够持续集成和发布 GitHub 上的代码因此需要修改docker-compose.yaml中的 GitHub 配置。完整的docker-compose.yaml如下version: 2 services: drone-server: image: drone/drone:0.8 ports: - 80:8000 - 9000 volumes: - /var/lib/drone:/var/lib/drone/ restart: always environment: - DRONE_OPENtrue - DRONE_HOST${DRONE_HOST} - DRONE_GITHUBtrue - DRONE_GITHUB_CLIENT${DRONE_GITHUB_CLIENT} - DRONE_GITHUB_SECRET${DRONE_GITHUB_SECRET} - DRONE_SECRET${DRONE_SECRET} drone-agent: image: drone/agent:0.8 command: agent restart: always depends_on: - drone-server volumes: - /var/run/docker.sock:/var/run/docker.sock environment: - DRONE_SERVERdrone-server:9000 - DRONE_SECRET${DRONE_SECRET}配置项与参数说明对上述配置文件中的关键参数逐一说明配置项说明80:8000将容器内 Drone server 的 Web 端口8000映射到宿主机80端口浏览器访问http://localhost即可打开登录界面9000Drone server 的 RPC 端口供 agent 连接无需映射到宿主机/var/lib/drone:/var/lib/drone/本地挂载的数据目录用于持久化 Drone 的数据库与构建数据。请确保该目录已存在且可以被 Docker 访问到Mac 下可以在 Docker 的共享目录中配置DRONE_OPENtrue开放注册模式允许新用户通过 GitHub OAuth 直接登录DRONE_HOST${DRONE_HOST}Drone 对外暴露的地址即上面填写的http://localhostDRONE_GITHUBtrue启用 GitHub 作为代码托管与认证提供商DRONE_GITHUB_CLIENT/DRONE_GITHUB_SECRET即前面申请的 OAuth Client ID 和 Client SecretDRONE_SECRET可以是任意随机字符串必须确保drone-server与drone-agent两侧的DRONE_SECRET完全相同它是 server 与 agent 之间通信的共享密钥depends_on: - drone-server保证 agent 在 server 启动之后启动/var/run/docker.sock:/var/run/docker.sock将宿主机的 Docker 守护进程套接字挂载给 agentagent 借此动态创建容器来执行每一个构建步骤这正是基于容器的持续集成的原理所在DRONE_SERVERdrone-server:9000agent 通过 docker-compose 内部网络连接 server 的 RPC 端口环境变量可以通过 shell 导出或docker-compose读取的.env文件提供例如export DRONE_HOSThttp://localhost export DRONE_GITHUB_CLIENT你的_client_id export DRONE_GITHUB_SECRET你的_client_secret export DRONE_SECRET任意随机字符串启动 Drone使用下面的命令在本地启动 Dronedocker-compose up该命令在前台启动加上-d参数即可在后台启动docker-compose up -d启动完成后访问http://localhost可以看到如下登录画面。第三步授权并启用 GitHub 仓库点击登录后Drone 会引导用户通过 GitHub OAuth 完成授权授权后即可看到 GitHub 仓库设置页面所有可访问的仓库都会列出可选择需要持续集成的仓库。对于单个仓库还可以进入详细的设置页配置启用状态、受保护分支、镜像拉取凭据等选项。启用仓库后即可在仓库根目录添加.drone.yml流水线定义文件当前仓库中暂无此文件读者可按 Drone 官方文档的语法自行编写描述构建、测试、镜像推送与部署步骤。由于 agent 每次构建都在独立的容器中执行流水线天然具备隔离性与可重复性。与 Kubernetes 发布流程的衔接Drone 的价值不止于构建还在于发布。在 使用 Jenkins 进行持续集成与发布 中仓库展示了完整的发布流水线形态用户提交代码代码中必须包含Dockerfile→ CI 流水线编译并打包 Docker 镜像推送到镜像仓库 → 依据 Kubernetes YAML 模板替换变量生成应用配置 → 更新 Ingress 路由与 DNS 记录 → 调用 Kubernetes API 部署应用。Drone 完全可以用同样的模式承担其中的 CI 与部分 CD 职责在流水线中执行docker build与docker push完成镜像构建与推送在流水线中调用kubectl apply完成 Kubernetes 资源部署配合 持续集成与发布CI/CD 中介绍的 GitOps 实践克隆仓库 →kubectl diff比对 →kubectl apply推送即可把 Git 作为部署配置的唯一事实来源。参考 最佳实践概览 的整体章节安排Drone 属于基于 Kubernetes 做持续集成与发布这一部分的可选工具与 Jenkins 相比它的优势在于配置以 YAML 形式随仓库管理、构建环境完全容器化、部署轻量适合以 Git 为核心协作模式的中小规模团队快速落地。参考持续集成与发布CI/CDKubernetes 中 CI/CD 的现状、DevOps 模式与 GitOps 实践使用 Jenkins 进行持续集成与发布同一章节下基于 Jenkins 的完整构建发布流水线方案最佳实践概览本手册最佳实践章节的总体结构与各主题索引赞分享教程云原生容器编排【免费下载链接】kubernetes-handbookKubernetes 架构与生态从云原生到 AI 原生基础设施的构建指南项目地址https://gitcode.com/gh_mirrors/ku/kubernetes-handbook点击查看免费下载相关推荐Wasp 应用 CI/CD 实战指南基于 GitHub Actions 的自动化测试与持续部署Wasp 应用 CI/CD 实战指南基于 GitHub Actions 的自动化测试与持续部署 在 Wasp 全栈框架React Node.js PWeb框架后端前端CLI开发工具GoFr CI/CD 实战指南基于 GitHub Actions 的构建、镜像与部署流水线GoFr CI/CD 实战指南基于 GitHub Actions 的构建、镜像与部署流水线 GoFr 是一个强调开箱即用的 Go 微服务框架其 CI/CD后端微服务云原生可观测性如何用frePPLE开源供应链计划系统解决企业生产库存难题5个步骤实现智能优化如何用frePPLE开源供应链计划系统解决企业生产库存难题5个步骤实现智能优化 你是否经常面临生产计划混乱、库存积压严重、需求预测不准确的困境在当今快速变化后端企业应用任务调度创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
企业数字化 ERP 产品动态
相关推荐
Easydict 通用 Review 工作流设计:只读审查、并行收尾与 PR 线程安全处置 Easydict 通用 Review 工作流设计:只读审查、并行收尾与 PR 线程安全处置 【免费下载链接】Easydict 一个简洁优雅的词典翻译 macOS App。开箱即用,支持离线 OCR 识别,支持有道词典,🍎 苹果系统词典,&#… · 2026/9/23 21:25:26
AI 辅助死锁图谱实时破环:基于等待图环路检测与最小代价事务回滚 AI 辅助死锁图谱实时破环:基于等待图环路检测与最小代价事务回滚在高并发核心 OLTP 交易数据库中,当多个事务以交叉的顺序互相申请对方持有的行锁或间隙锁(Gap Lock)时,不可避免地会触发死锁(Deadlock&… · 2026/9/23 21:25:12
ISAPI开发入门:球机云台控制与自动化对接全解析 简介:ISAPI开发手册(海康球形摄像机)是一份面向安防设备开发者的技术文档,系统阐述基于HTTP与REST架构的智能安全API协议,并覆盖海康球形网络摄像机PTZ系列的接口开发,内容涉及设备管理、车辆识别、停车场管… · 2026/9/23 21:54:18
苏州工贸企业在新规范实施前应核对哪些除尘系统资料 GB 17919 2025 将于 2026 年 11 月 1 日实施国家标准公开信息显示,GB 17919-2025《可燃性粉尘除尘系统防爆安全规范》将于 2026 年 11 月 1 日实施。对苏州有粉尘相关工艺的工贸企业来说,当前更值得做的并不是仓促替换单台设备,而是先把工艺、… · 2026/9/23 21:54:18
BP神经网络仿真原理与Python实现:从反向传播到避坑指南 简介:BP神经网络仿真项目是一份基于MATLAB R2016a环境、通过S函数实现BP神经网络训练与预测的完整示例,适合正在学习神经网络原理的初学者以及需要在Simulink中构建自定义模块的工程师参考。资源包共4个文件,包含一个Simulink模型文件&#x… · 2026/9/23 21:54:18
云打印API选型实战:映美云、飞鹅、易联云接入对比与踩坑记录 讲真,做订单类系统最烦的就是"单子来了怎么打出来"这件事。前后我接过三个线上项目,分别对接了映美云、飞鹅和易联云,这三家几乎占了市面上云打印API的大部分份额,也是第三方开发者绕不开的三个选择。从申请密钥到打印机… · 2026/9/23 21:54:12
复合材料蜂窝夹心结构冲击仿真技术与工程实践 1. 复合材料蜂窝夹心结构概述蜂窝夹心结构作为一种典型的轻量化结构,在航空航天、交通运输等领域有着广泛应用。这种结构由上下两层薄而坚硬的面板和中间蜂窝状芯材组成,就像三明治一样。我最早接触这类结构是在2015年参与某型无人机机翼设计时ÿ… · 2026/9/23 21:54:12
百度搜索技巧:6个精准语法与广告屏蔽实战配置 我一直觉得,骂“百度搜不准”这件事,多少有点冤枉它。你搜“冰箱嗡嗡响怎么回事”,前三条是维修广告,第四条是百家号把三年前的文章换个标题重发,第五条是AI拼出来的伪科普。真正能解决问题的技术帖,藏在你… · 2026/9/23 21:54:12
3招搞定手机怎么下载微信面试难题实战项目解析 3招搞定手机怎么下载微信面试难题实战项目解析 面试被问“手机怎么下载微信”背后的原理,90%的人答不上来。别笑,这看似弱智的问题,实则是考察你对移动应用分发机制、安全校验及网络协议理解的试金石。我带过不少校招新人,他们背了八股文,却连一个A… · 2026/9/23 0:00:03
你有新短消息请注意查收:3个新手避坑指南搞定消息系统选型 你有新短消息请注意查收:3个新手避坑指南搞定消息系统选型 面试被问“高并发下如何保证消息不丢失”,你张口就是“用Redis”,结果面试官追问“如果Redis宕机了怎么办”,你瞬间卡壳。这种场景太常见了,很多新手在背八股文时,只记住了技术名词… · 2026/9/23 0:00:29