k8s 新晋CICD平台-Devtron0.6

介绍

Devtron 是 Kubernetes 的工具集成平台。

Devtron 通过直观的 Web 界面在微服务的整个生命周期中与产品深度集成,即 CI/CD、安全性、成本、调试和可观测性。Devtron 可帮助您部署、观察、管理和调试所有集群中的现有 Helm 应用程序。

Devtron的主要特点

适用于 Kubernetes 的无代码软件交付工作流

  • 了解 Kubernetes、测试、CD、SecOps 领域的工作流,因此您不必编写脚本

  • 可重用和可组合的组件,以便工作流易于构建和推理

多云部署

  • 从一个 Devtron 设置部署到多个云/本地的多个 Kubernetes 集群

  • 适用于所有云提供商和本地 Kubernetes 集群

轻松集成开发安全操作系统

  • 全局、集群、环境和应用程序级别的多级安全策略,可实现高效的分层策略管理

  • 行为驱动的安全策略

  • 定义 Kubernetes 资源的策略和例外

  • 为事件定义策略以更快地解决问题

应用程序调试仪表板

  • 在一个地方存储所有历史 Kubernetes 事件

  • 安全地访问所有清单,例如秘密混淆

  • CPU、RAM、HTTP 状态代码和延迟的应用程序指标以及新旧之间的比较

  • 使用 grep 和 JSON 搜索进行高级日志记录

  • 事件、日志之间的智能关联,可更快地对问题进行三角测量

  • 自动问题识别

企业级安全性和合规性

  • 细粒度访问控制;控制谁可以编辑配置以及谁可以部署。

  • 审核日志以了解谁在何时做了什么

  • 所有 CI 和 CD 事件的历史

  • 影响应用程序的 Kubernetes 事件

  • 相关云事件及其对应用程序的影响

  • 高级工作流策略,如中断窗口、分支环境关系,以保护生成和部署管道

实现 GitOps

  • 通过 API 和 UI 公开的 GitOps,这样你就不必与 git CLI 交互

  • 由 Postgres 支持的 GitOps,便于分析

  • 实施比 Git 更精细的访问控制

运营洞察

  • 用于衡量敏捷过程是否成功的部署指标。它捕获开箱即用的 MTTR、更改失败率、部署频率和部署大小。

  • 审核日志以了解故障原因

  • 跨部署监控更改并轻松还原

先决条件要求

kubernetes 1.16以上

安装 helm3

部署

helm安装指定版本的chart包

helm install devtron devtron/devtron-operator \
   --create-namespace --namespace devtroncd \
   --set installer.modules={cicd} \
   --set installer.release=v0.6.20 \
   --set components.devtron.service.type=NodePort

运行输出

```
[root@node1 ~]#helm install devtron devtron/devtron-operator \
>    --create-namespace --namespace devtroncd \
>    --set installer.modules={cicd} \
>    --set installer.release=v0.6.20 \
>    --set components.devtron.service.type=NodePort
NAME: devtron
LAST DEPLOYED: Mon Aug 28 11:35:42 2023
NAMESPACE: devtroncd
STATUS: deployed
REVISION: 1
TEST SUITE: None
NOTES:
Please wait for ~1 minute before running any of the following commands.

1. Run the following command to get the password for the default admin user:

   kubectl -n devtroncd get secret devtron-secret -o jsonpath='{.data.ADMIN_PASSWORD}' | base64 -d
2. Run the following commands to get the dashboard URL for the service type:
   NodePort

   a. export nodeport=$(kubectl get svc -n devtroncd devtron-service -o jsonpath="{.spec.ports[0].nodePort}")
   
   b. Run the following command to get Devtron dashboard URL: echo http://HOST_IP:$nodeport/dashboard

   Make sure that your security settings allow incoming connection to your Host machine on the nodeport mentioned.
3. To track the progress of Devtron microservices installation, run the following command:

   kubectl -n devtroncd get installers installer-devtron -o jsonpath='{.status.sync.status}'
   
   After running this command, if you get the results as:
   1. "Downloaded" means installation in progress. But you can still start exploring Devtron
   2. "Applied" means installation is successful.
```

POD详情

[root@node1 ~]#kubectl get all -n devtroncd 
NAME                                         READY   STATUS      RESTARTS   AGE
pod/app-sync-cronjob-1693249200-mljnc        0/1     Completed   0          6h36m
pod/app-sync-job-ztgdq-hk7ww                 0/1     Completed   0          22h
pod/argo-rollouts-5765664fc4-68gjv           1/1     Running     0          21h
pod/argocd-dex-server-54d59b6b6d-xzql9       1/1     Running     0          22h
pod/dashboard-869d5647f8-84cnr               1/1     Running     0          22h
pod/devtron-5b478745bc-9l5n5                 1/1     Running     0          63s
pod/devtron-67bbb588dc-hxxph                 1/1     Running     0          21h
pod/devtron-housekeeping-jpz5l               0/1     Completed   0          21h
pod/devtron-nats-0                           3/3     Running     0          21h
pod/devtron-nats-test-request-reply          0/1     Completed   0          21h
pod/git-sensor-0                             1/1     Running     0          21h
pod/inception-7f76b5fd94-9g5d2               1/1     Running     0          22h
pod/kubelink-77559449f9-lmt7t                1/1     Running     0          62s
pod/kubelink-7db97884cd-kt2tb                1/1     Running     4          22h
pod/kubewatch-598b98cd7b-wbjtm               1/1     Running     0          21h
pod/lens-64cf56b56-n8sbs                     1/1     Running     0          21h
pod/postgresql-migrate-casbin-jbgqc          0/1     Completed   0          9m
pod/postgresql-migrate-devtron-ydi6r-cxjhn   0/1     Completed   1          22h
pod/postgresql-migrate-gitsensor-jmr5n       0/1     Completed   3          21h
pod/postgresql-migrate-lens-8gm7r            0/1     Completed   5          21h
pod/postgresql-miscellaneous-8zrjp           0/1     Completed   0          21h
pod/postgresql-postgresql-0                  2/2     Running     1          22h

NAME                                     TYPE        CLUSTER-IP     EXTERNAL-IP   PORT(S)                                                 AGE
service/argo-rollouts-metrics            ClusterIP   10.1.148.200   <none>        8090/TCP                                                21h
service/argocd-dex-server                ClusterIP   10.1.196.223   <none>        5556/TCP,5557/TCP,5558/TCP                              22h
service/dashboard-service                ClusterIP   10.1.192.192   <none>        80/TCP                                                  22h
service/devtron-nats                     ClusterIP   None           <none>        4222/TCP,6222/TCP,8222/TCP,7777/TCP,7422/TCP,7522/TCP   21h
service/devtron-service                  NodePort    10.1.232.83    <none>        80:30763/TCP                                            22h
service/git-sensor-service               ClusterIP   10.1.91.143    <none>        80/TCP,90/TCP                                           21h
service/kubelink-service                 ClusterIP   10.1.100.28    <none>        50051/TCP                                               22h
service/lens-service                     ClusterIP   10.1.169.226   <none>        80/TCP                                                  21h
service/postgresql-postgresql            ClusterIP   10.1.106.139   <none>        5432/TCP                                                22h
service/postgresql-postgresql-headless   ClusterIP   None           <none>        5432/TCP                                                22h
service/postgresql-postgresql-metrics    ClusterIP   10.1.188.43    <none>        9187/TCP                                                22h

NAME                                READY   UP-TO-DATE   AVAILABLE   AGE
deployment.apps/argo-rollouts       1/1     1            1           21h
deployment.apps/argocd-dex-server   1/1     1            1           22h
deployment.apps/dashboard           1/1     1            1           22h
deployment.apps/devtron             2/1     1            1           22h
deployment.apps/inception           1/1     1            1           22h
deployment.apps/kubelink            2/1     1            1           22h
deployment.apps/kubewatch           1/1     1            1           21h
deployment.apps/lens                1/1     1            1           21h

NAME                                           DESIRED   CURRENT   READY   AGE
replicaset.apps/argo-rollouts-5765664fc4       1         1         1       21h
replicaset.apps/argocd-dex-server-54d59b6b6d   1         1         1       22h
replicaset.apps/dashboard-869d5647f8           1         1         1       22h
replicaset.apps/devtron-5b478745bc             1         1         1       63s
replicaset.apps/devtron-67bbb588dc             1         1         1       21h
replicaset.apps/devtron-f676df997              0         0         0       22h
replicaset.apps/inception-7f76b5fd94           1         1         1       22h
replicaset.apps/kubelink-77559449f9            1         1         1       62s
replicaset.apps/kubelink-7db97884cd            1         1         1       22h
replicaset.apps/kubewatch-598b98cd7b           1         1         1       21h
replicaset.apps/lens-64cf56b56                 1         1         1       21h

NAME                                     READY   AGE
statefulset.apps/devtron-nats            1/1     21h
statefulset.apps/git-sensor              1/1     21h
statefulset.apps/postgresql-postgresql   1/1     22h

NAME                                         COMPLETIONS   DURATION   AGE
job.batch/app-sync-cronjob-1693249200        1/1           8m2s       6h36m
job.batch/app-sync-job-ztgdq                 1/1           9h         22h
job.batch/devtron-housekeeping               1/1           6m50s      21h
job.batch/postgresql-migrate-casbin          1/1           7m58s      9m
job.batch/postgresql-migrate-casbin-0os0v    0/1           22h        22h
job.batch/postgresql-migrate-devtron         0/1           21h        21h
job.batch/postgresql-migrate-devtron-ydi6r   1/1           11m        22h
job.batch/postgresql-migrate-gitsensor       1/1           7m7s       21h
job.batch/postgresql-migrate-lens            1/1           14m        21h
job.batch/postgresql-miscellaneous           1/1           32s        21h

NAME                             SCHEDULE     SUSPEND   ACTIVE   LAST SCHEDULE   AGE
cronjob.batch/app-sync-cronjob   0 19 * * *   False     0        6h36m           22h

出现问题

Access denied You do not have required access to perform this action

解决方案

Bug: Access denied You do not have required access to perform this action · Issue #3839 · devtron-labs/devtron (github.com)

创建自定义应用程序

 配置docker仓库和构建信息

 配置暴露的端口和添加环境变量

 开始构建镜像

 填写拉取分支

 deployment模板信息

 回到应用页面,开始构建

 出现如下情况表示CI已经完成,可以去镜像仓库查看镜像

 新增cd操作,新增一个workflow

 选择第一种方式

 开始部署

 点击details,查看详情

 部署成功

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

llody_55

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值