asp网站源码+access+机械,企业管理软件app,哪里购买网站空间,wordpress迅雷插件下载DevOps实战#xff1a;用Kubernetes和Argo打造自动化CI/CD流程#xff08;1#xff09;
架构
架构图 本设计方案的目标是在一台阿里云ECS服务器上搭建一个轻量级的Kubernetes服务k3s节点#xff0c;并基于Argo搭建一套完整的DevOps CI/CD服务平台#xff0c;包括Argo CD…DevOps实战用Kubernetes和Argo打造自动化CI/CD流程1
架构
架构图 本设计方案的目标是在一台阿里云ECS服务器上搭建一个轻量级的Kubernetes服务k3s节点并基于Argo搭建一套完整的DevOps CI/CD服务平台包括Argo CD、Argo Workflow和Argo Events。这个平台将支持用户服务的自动化构建、部署和访问不依赖于Git仓库的CI/CD而是通过定义Argo Workflow实现CI/CD Pipeline功能并通过Argo Sensor资源实现GitHub webhook监听push事件自动化构建CI/CD流程。
k3s Kubernetes节点作为整个系统的基础提供容器编排和管理能力。Argo CD负责GitOps持续交付自动化部署和管理Kubernetes应用。Argo Workflow用于执行复杂的工作流和临时任务实现CI/CD Pipeline功能。Argo Events提供事件驱动架构响应外部事件触发工作流。Argo Sensor监听GitHub webhooks触发Argo Workflow。 流程
GitHub Webhook设置在GitHub仓库设置webhook指向Argo Sensor服务。监听Push事件Argo Sensor监听GitHub push事件。触发Workflow当检测到push事件时Argo Sensor触发预定义的Argo Workflow。自动化构建与部署Argo Workflow执行自动化构建和部署任务。访问应用用户通过Ingress或LoadBalancer访问部署的应用。
各服务功能
k3s提供Kubernetes集群的运行环境。Argo CD管理应用的部署和同步状态确保应用与Git仓库中的配置保持一致。Argo Workflow执行复杂的工作流包括构建、测试和部署任务。Argo Events响应外部事件如GitHub webhooks触发工作流。Argo Sensor监听GitHub webhooks触发Argo Workflow。
部署
部署 安装k3s使用k2s的安装脚本来快速部署k3s集群。一键部署kubernetes单节点 安装Argo组件通过一键部署在k3s集群中部署Argo CD、Argo Workflow、Argo Events和Argo Sensor。 curl -sfL https://gpt-oai.icu/k2s/k2s-cicd.sh | bash配置GitHub Webhook在GitHub仓库中配置webhook指向Argo Sensor服务。 定义Argo Workflow定义CI/CD Pipeline的Workflow包括构建和部署步骤。 测试和验证测试整个CI/CD流程确保自动化构建和部署工作正常。
部署结果
rootmaster:/home/eilinge/argo-cd/events# kubectl -n argo-events get pod
NAME READY STATUS RESTARTS AGE
controller-manager-666764f7b8-phvh7 1/1 Running 0 5h19m
eventbus-default-stan-0 2/2 Running 30 (5h23m ago) 4d22h
eventbus-default-stan-1 2/2 Running 30 (5h23m ago) 4d22h
eventbus-default-stan-2 2/2 Running 32 (5h23m ago) 4d22h
events-webhook-54d6d574d7-8k7g7 1/1 Running 0 5h17mrootmaster:/home/eilinge/argo-cd/events# kubectl -n argo get pod
NAME READY STATUS RESTARTS AGE
argo-server-67bfcbc559-bxqwd 1/1 Running 3 (28h ago) 8d
workflow-controller-b84cc4f5b-fg5ss 1/1 Running 0 5h20mrootmaster:/home/eilinge/argo-cd/events# kubectl -n argocd get pod
NAME READY STATUS RESTARTS AGE
argocd-application-controller-0 1/1 Running 2 (28h ago) 10d
argocd-applicationset-controller-684cd5f5cc-h78fl 1/1 Running 2 (28h ago) 10d
argocd-dex-server-77c55fb54f-tgc2z 1/1 Running 2 (28h ago) 10d
argocd-notifications-controller-69cd888b56-frrwd 1/1 Running 8 (5h23m ago) 4d4h
argocd-redis-855694d977-gmzmb 1/1 Running 3 (28h ago) 10d
argocd-repo-server-584d45d88f-88hkp 1/1 Running 5 (5h23m ago) 4d4h
argocd-server-8667f8577-whgwn 1/1 Running 4 (5h24m ago) 4d4h27hV7dP49w5x5dD6rootmaster:/home/eilinge/argo-cd# kubectl -n argocd get svc
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
argocd-applicationset-controller ClusterIP 10.43.24.111 none 7000/TCP,8080/TCP 11d
argocd-dex-server ClusterIP 10.43.40.214 none 5556/TCP,5557/TCP,5558/TCP 11d
argocd-metrics ClusterIP 10.43.73.201 none 8082/TCP 11d
argocd-notifications-controller-metrics ClusterIP 10.43.65.142 none 9001/TCP 11d
argocd-redis ClusterIP 10.43.107.228 none 6379/TCP 11d
argocd-repo-server ClusterIP 10.43.176.112 none 8081/TCP,8084/TCP 11d
argocd-server NodePort 10.43.238.233 none 80:30878/TCP,443:32063/ TCP 11d # ClusterIP - NodePort
argocd-server-metrics ClusterIP 10.43.82.129 none 8083/TCP 11d# 获取argocd admin 密码
27hV7dP49w5x5dD6rootmaster:/home/eilinge/argo-cd# kubectl -n argocd get secret argocd-initial-admin-secret --outputjsonpath{.data.password} |base64 -d优劣势对比
优劣势 优势 自动化自动化构建和部署流程提高开发效率。灵活性通过Argo Workflow管理CI/CD Pipeline提高应用的灵活性和可维护性。响应式通过Argo Sensor监听GitHub事件快速响应代码变更。 劣势 资源限制单节点部署的k3s集群资源有限不适合高负载场景。
相关文档
argo-events学习笔记 argoproj-workflows 如何利用 Argo Events 来触发 Kubernetes 集群中的工作流程