Kubernetes-native all-in-one Internal Developer Platform
English | 中文
Nautes 是 Kubernetes 原生的开源一站式开发者平台,融合了 DevOps 和 GitOps 的理念和最佳实践,以可插拔的方式集成了业界最优秀的云原生开源项目。
当前版本仅用于演示或试用,功能还在不断完善中,不建议用在生产环境。
Nautes 采用全分布式的多租户架构,平台管理集群负责租户的分配和回收,每个租户独占一套资源(包括代码库、密钥库、制品库、认证服务器、集群等),租户内的资源由租户管理集群进行管理。
租户作为资源的管理单元,可由用户根据自身组织特性进行划分,常见的划分方式有:按产品团队、按部门、按子公司等。
租户内的资源也支持多实例部署,例如:可以在一个租户内部署多个 Harbor 实例,用于隔离不同产品的容器镜像数据。
Nautes 的当前版本主要集成了以下开源项目(序号不代表排序):
我们对这些优秀项目(包括在 Nautes 中使用到,但未在下表列出的所有项目)的作者表示衷心的感谢!
序号 | 开源项目 | 用途 | 版本 | 开源许可 | 项目地址 |
---|---|---|---|---|---|
1 | Terraform | 用于构建基础设施 | v1.3.4 | MPL-2.0 | https://github.com/hashicorp/terraform |
2 | Ansible | 安装程序的脚手架 | 2.12.5 | GPL-3.0 | https://github.com/ansible/ansible |
3 | Kubespray | Kubernetes 的安装程序 | v2.19.1 | Apache-2.0 | https://github.com/kubernetes-sigs/kubespray |
4 | Ansible Vault | Vault 的安装程序 | v2.5.8 | BSD-2-Clause | https://github.com/ansible-community/ansible-vault |
5 | Geerlingguy.Gitlab | Gitlab 的安装程序 | 3.2.0 | MIT | https://github.com/geerlingguy/ansible-role-gitlab |
6 | Kubebuilder | Operator 脚手架 | v3.2.0 | Apache-2.0 | https://github.com/kubernetes-sigs/kubebuilder |
7 | Kratos | 微服务脚手架 | v2.5.4 | MIT | https://github.com/go-kratos/kratos |
8 | Vuepress | 文档站点脚手架 | 1.9.9 | MIT | https://github.com/vuejs/vuepress |
9 | Kubernetes | 容器平台、产品底座 | 1.23.7 | Apache-2.0 | https://github.com/kubernetes/kubernetes |
10 | K3s | 轻量级 Kubernetes 发行版 | v1.21.13-k3s1 | Apache-2.0 | https://github.com/k3s-io/k3s |
11 | Vcluster | 用于 Kubernetes 的多租户隔离 | 0.10.1 | Apache-2.0 | https://github.com/loft-sh/vcluster |
12 | HNC | 用于 Kubernetes 的多租户隔离 | v1.0.0 | Apache-2.0 | https://github.com/kubernetes-sigs/hierarchical-namespaces |
13 | Dex | 用于单点登录、统一认证 | v2.32.0 | Apache-2.0 | https://github.com/dexidp/dex |
14 | Vault | 密钥仓库 | 1.10.4 | MPL-2.0 | https://github.com/hashicorp/vault |
15 | External Secrets | 用于同步密钥到 Kubernetes | 0.5.7 | Apache-2.0 | https://github.com/external-secrets/external-secrets |
16 | Gitlab | 代码仓库、IDP、基础数据提供者 | 15.10 | MIT | https://gitlab.com/gitlab-org/gitlab |
17 | Nexus | 成品包仓库 | 3.39.0 | EPL-1.0 | https://github.com/sonatype/nexus-public |
18 | Harbor | 容器镜像仓库 | v2.5.1 | Apache-2.0 | https://github.com/goharbor/harbor |
19 | Argocd | 用于持续部署 | v2.4.0 | Apache-2.0 | https://github.com/argoproj/argo-cd |
20 | Argorollouts | 用于渐进式交付 | v1.2.1 | Apache-2.0 | https://github.com/argoproj/argo-rollouts |
21 | Argoevents | 事件监听器 | v1.7.1 | Apache-2.0 | https://github.com/argoproj/argo-events |
22 | Tekton Pipeline | 流水线 | v0.37.5 | Apache-2.0 | https://github.com/tektoncd/pipeline |
23 | Cert Manager | 用于自签证书 | v1.8.0 | Apache-2.0 | https://github.com/cert-manager/cert-manager |
24 | Traefik | Ingress 控制器 | v2.7.1 | MIT | https://github.com/traefik/traefik |
25 | Sonarqube | 用于代码静态检查 | 9.5 | LGPL-3.0 | https://github.com/SonarSource/sonarqube |
Nautes 的主体流程以及参与角色如下:
租户管理员:负责管理租户内的资源组件,如注册集群、接入制品库等。
配置管理员:负责管理IT系统在开发和运行过程中所需的环境和资源,如维护产品基础数据、创建代码库、分配制品库、定义运行时等。
产品团队:使用平台功能进行IT系统的研发和运行,如提交代码、上传依赖包、配置流水线、探索性测试等。
Nautes 主要包含以下组件:
Nautes 支持基于公有云、私有云、主机、及 Kubernets 集群进行安装,您可以通过这里了解如何在阿里云上一键安装 Nautes。
我们提供了一份简要的指南,您可以通过这份指南快速地部署出第一个流水线和应用。
我们通过这个项目提供了关于产品路线图以及进度等信息。