在 GitHub Trending 中有很多关于 Kubernetes、CloudNative 相关的项目,那么对于云原生时代,从事运维行业的同学又应该关注哪些项目呢?
如下是小编梳理出来的比较熟悉的几个项目,供大家参考和学习。
1. kops: github.com/kubernetes/…
Kops 是一个用于管理 Kubernetes 集群的工具。它可以帮助用户在 AWS、GCE 等云上快速、可靠地创建、部署和运行 Kubernetes 集群,并提供了诸如升级、扩展、备份和恢复等功能。
2. argo-cd: github.com/argoproj/ar…
Argo CD 是一个用于连续交付和 GitOps 的工具。它可以帮助用户在 Kubernetes 上部署和管理应用程序,并自动化部署流程、升级和回滚等操作。Argo CD 支持多种语言和框架,例如 Java、Node.js 和 React 等。
实际上在 argoproj 项目里,还存在另外一个云原生工作流引擎,也推荐大家学习学习。argo-workflow: github.com/argoproj/ar…
3. helm: github.com/helm/helm
Helm Charts 是一个用于 Kubernetes 的包管理器。它可以帮助用户更轻松地安装、升级和删除 Kubernetes 应用程序,并提供了许多预定义的应用程序模板和配置文件,例如 WordPress、MySQL 和 GitLab 等。
4. prometheus-operator: github.com/prometheus-…
Prometheus Operator 是一个用于在 Kubernetes 上运行 Prometheus 的工具。它可以自动化部署、配置和管理 Prometheus 实例,并提供了许多内置功能,例如自动发现、自动配置和自动扩展等。
5. kustomise: github.com/kubernetes-…
Kustomize 是一个用于管理 Kubernetes 配置的工具。它可以帮助用户自定义 Kubernetes 配置文件并生成新的配置文件,例如应用程序名称、资源限制和环境变量等。Kustomize 支持多种格式和源码管理工具,例如 YAML、JSON 和 Git 等。
6. flux2: github.com/fluxcd/flux…
Flux 是一个用于 GitOps 的工具。它可以帮助用户自动化部署和管理 Kubernetes 应用程序,并在 Git 仓库中存储配置和变更历史记录。Flux 支持多种语言和框架,例如 Java、Node.js 和 React 等。而 Flux2 是当前架构升级后最新版本的 flux。
7. kube-state-metrics: github.com/kubernetes/…
Kube State Metrics 是一个用于监控 Kubernetes 状态的工具。它可以收集和处理 Kubernetes API 服务器的指标,并将其导出到 Prometheus 等监控系统中。Kube State Metrics 支持多种指标和查询,例如 Pod 状态、Node 资源和服务负载均衡等。
8. consul-k8s: github.com/hashicorp/c…
Consul K8s 是一个用于在 Kubernetes 上运行 Consul 的工具。它可以帮助用户自动化部署、配置和管理 Consul 实例,并提供了许多内置功能,例如服务发现、配置管理和安全性等。
9. kubebuilder: github.com/kubernetes-…
Kubebuilder 是一个用于构建 Kubernetes API 的工具。它可以帮助用户生成 Kubernetes API 的 CRD(Custom Resource Definition)和控制器,并提供了许多内置功能,例如代码生成、测试和部署等。
备注:作为云原生业务场景下的运维,针对于复杂业务场景的运维管理,我们可能需要使用该工具进行 CRD 的开发来满足运维需求。
10. cluster-api: github.com/kubernetes-…
Cluster API 是一个用于自动化管理 Kubernetes 集群的工具。它可以帮助用户自动化创建、配置和管理 Kubernetes 集群,并提供了许多内置功能,例如节点管理、负载均衡和安全性等。
备注:其实就相当于一个多集群管理工具
11. kubespray: github.com/kubernetes-…
Kubespray 是一个用于快速部署 Kubernetes 集群的工具。它可以帮助用户在物理机或虚拟机上快速、可靠地部署 Kubernetes 集群,并提供了许多预定义的配置文件和模板。
12. external-dns: github.com/kubernetes-…
External DNS 是一个用于管理 Kubernetes 中外部 DNS 记录的工具。它可以帮助用户自动化创建、更新和删除 Kubernetes 中的 DNS 记录,并提供了许多内置功能,例如多域名支持、TTL 管理和标签选择器等。
13. kind: github.com/kubernetes-…
Kind 是一个用于在本地机器上运行 Kubernetes 集群的工具。它可以帮助用户在本地环境中轻松地创建、配置和管理 Kubernetes 集群,并提供了许多预定义的配置文件和模板。
备注:通常用于本地测试集群的快速交付
14. tektoncd/pipeline: github.com/tektoncd/pi…
Tekton Pipeline 是一个用于连续集成和交付的工具。它可以帮助用户自动化构建、测试和部署 Kubernetes 应用程序,并提供了许多内置功能,例如任务、步骤和参数化等。
备注:tekton 如同 argoproj 项目一样,都是致力于云原生的 CI/CD 实践。
15. cri-tools: github.com/kubernetes-…
CRI Tools 是一个用于容器运行时接口(CRI)的工具集。它可以帮助用户管理和监控 Kubernetes 集群中的容器,并提供了许多内置功能,例如容器生命周期管理、容器状态查询和容器日志收集等。