Devtron(https://devtron.ai) 是用 go 编写的用于 Kubernetes 交付工作流管理的开源软件。它被设计为一个自我服务平台,以开发者友好的方式在 Kubernetes 上运维和维护应用程序(AppOps)。
特性
零代码软件交付工作流
- 了解 kubernetes、测试、CD、SecOps 等领域的工作流,这样你就不必写脚本。
- 可重复使用和可组合的组件,使工作流易于构建使用。
多云部署
- 天然支持部署到多个 kubernetes 集群上
轻松实现开发-安全-运维一体化
- 全局、集群、环境和应用的多层次安全策略,实现高效的分层策略管理
- 行为驱动的安全策略
- kubernetes 资源定义策略和异常情况
- 定义事件的策略,以便更快地解决问题
应用程序调试面板
- 所有历史的 kubernetes 事件都集中在一个地方
- 安全地访问所有清单,如 secret、configmap
- cpu、ram、http 状态码和延迟等应用指标,并进行新旧对比
- 使用 grep 和 json 搜索日志
- 事件和日志之间的智能关联性
企业级的安全性和合规性
- 细粒度的访问控制;控制谁可以编辑配置,谁可以部署
- 审计日志,了解谁做了什么,什么时候做的
- 所有 CI 和 CD 事件的历史记录
- 影响应用程序的 Kubernetes 事件
- 相关的云事件及其对应用程序的影响
- 先进的工作流程策略,如分支环境,确保构建和部署管道的安全
了解 Gitops
- 通过 API 和 UI 暴露的 Gitops,使你不必与 Git 客户端交互
- 由 postgres 支持的 Gitops 更容易分析
- 实施比 git 更精细的访问控制
业务洞察
- 部署指标来衡量敏捷过程的成功,它可以捕捉到 mttr、变更失败率、部署频率、部署规模等。
- 审计日志以了解失败的原因
- 监测跨部署的变化,并轻松恢复
安装
默认的安装配置会使用 MinIO 来存储构建日志和缓存,可以直接使用下面的命令进行安装:
helmrepoadddevtronhttps://helm.devtron.ai helminstalldevtrondevtron/devtron-operator--create-namespace--namespacedevtroncd\ --setsecrets.POSTGRESQL_PASSWORD=change-me
但是官方的安装方式会从 GitHub 上面去下载很多脚本进行初始化,由于某些原因,可能我们没办法正常访问,这里我已经将所有的安装脚本和代码同步到了 gitee 上面,不用担心安装不上了。
首先 clone 安装脚本:
gitclonehttps://gitee.com/cnych/devtron-installation-script.git cddevtron-installation-script
这里我们使用 Helm3 来进行安装,我们只需要安装 devtron-operator 即可帮我们自动安装 devtron 了,命令如下所示:
helmupgrade--installdevtron./charts/devtron--create-namespace--namespacedevtroncd WARNING:Kubernetesconfigurationfileisgroup-readable.Thisisinsecure.Location:/Users/ych/.kube/config WARNING:Kubernetesconfigurationfileisworld-readable.Thisisinsecure.Location:/Users/ych/.kube/config W062411:00:57.79869856125warnings.go:67]apiextensions.k8s.io/v1beta1CustomResourceDefinitionisdeprecatedinv1.16+,unavailableinv1.22+;useapiextensions.k8s.io/v1CustomResourceDefinition W062411:00:59.82958356125warnings.go:67]apiextensions.k8s.io/v1beta1CustomResourceDefinitionisdeprecatedinv1.16+,unavailableinv1.22+;useapiextensions.k8s.io/v1CustomResourceDefinition NAME:devtron LASTDEPLOYED:ThuJun2411:01:002021 NAMESPACE:devtroncd STATUS:deployed REVISION:1 TESTSUITE:None NOTES: 1.Runthefollowingcommandtogetthedefaultadminpassword.Defaultusernameisadmin kubectl-ndevtroncdgetsecretdevtron-secret-ojsonpath='{.data.ACD_PASSWORD}'|base64-d 2.YoucanwatchtheprogressofDevtronmicroservicesinstallationbythefollowingcommand kubectl-ndevtroncdgetinstallersinstaller-devtron-ojsonpath='{.status.sync.status}'
上面的命令会帮我们创建一个用于安装 devtron 的 Pod,该 Pod 会去读取我们的 installaction-script 脚本进行初始化安装,这个安装过程需要花一点时间,不过需要注意的是需要提供一个默认的 StorageClass,否则 MinIO 对应的 PVC 没办法绑定,也就安装不成功了,我这里是在代码仓库中明确指定的一个名为 nfs-storage 的 StorageClass,正常安装后会产生很多 Pod:
devtron pods
为了访问方便我这里还创建了一个 IngressRoute 对象用来绑定 Dashboard:
#devtron-ingressroute.yaml apiVersion:traefik.containo.us/v1alpha1 kind:IngressRoute metadata: name:devtron namespace:devtroncd spec: entryPoints: -web routes: -kind:Rule match:Host(`devtron.k8s.local`) services: -name:devtron-service port:80
创建完成后我们就可以通过域名(提前做好解析)就可以访问 devtron 了。
login devtron
登录的时候使用的默认用户名为 admin,密码则可以使用上面安装 Helm Charts 的时候的提示命令获取:
kubectl-ndevtroncdgetsecretdevtron-secret-ojsonpath='{.data.ACD_PASSWORD}'|base64-d
登录后就可以进入到 Dashboard 的主页了:
进入 Dashboard 后我们还需要做一些配置才能使用,比如添加 Docker 镜像仓库、配置 gitops 等。具体使用方法可以参考官方文档说明 https://docs.devtron.ai,后续我们再提供一个详细的使用文档。
仓库地址:https://github.com/devtron-labs/devtron
转载请注明:IT运维空间 » 运维技术 » Kubernetes 持续交付工作流管理软件 – Devtron
发表评论