Kubernetes基础架构作为代码最佳实践

Kubernetes基础架构作为代码最佳实践,kubernetes,kubernetes-helm,Kubernetes,Kubernetes Helm,有谁能告诉我一个常见的策略,即根据基础架构为代码和自动部署的原则为不同的开发团队(使用Git repos和未定义的CI/CD平台)设置Kubernetes集群 假设我将使用Terraform在一个名为QKS的假设云服务上部署一个Kubernetes集群,该云服务有一个常用的服务,例如Apache Airflow,它有一个公共舵图。有两个定制服务(来自两个独立的开发小组)要部署,分别名为“苹果”和“香蕉” 我正在努力分离不同代码库的责任。此过程中的哪些步骤仍然可以最好地手动完成。关于这项技术的文章

有谁能告诉我一个常见的策略,即根据基础架构为代码和自动部署的原则为不同的开发团队(使用Git repos和未定义的CI/CD平台)设置Kubernetes集群

假设我将使用Terraform在一个名为QKS的假设云服务上部署一个Kubernetes集群,该云服务有一个常用的服务,例如Apache Airflow,它有一个公共舵图。有两个定制服务(来自两个独立的开发小组)要部署,分别名为“苹果”和“香蕉”


我正在努力分离不同代码库的责任。此过程中的哪些步骤仍然可以最好地手动完成。关于这项技术的文章很多,但我找不到任何关于这一问题的文章。

这是我自己的建议

有三个git存储库:

  • 我的基础设施:包括Terraform文件、Airflow Helm部署和两个名称空间的部署,包括访问这些名称空间的角色。CICD跟踪更改并将其部署到QK上
  • apples:代码库和相应的helm模板。CICD只能部署在Apple命名空间上
  • 香蕉:代码库和相应的头盔模板。CICD只能在命名空间上部署。
注:

  • 将集群细分为名称空间
  • 名称空间的所有机密和授权令牌都可以使用Terraform kubernetes provider通过Terraform创建


这方面有一个有趣的kubernetes项目,它让您以声明方式创建、配置和管理kubernetes集群,其方式类似于我们在kubernetes中管理不同资源的方式。它定义了不同种类的新资源,如集群、机器

e、 g.您可以这样定义集群:

apiVersion: cluster.x-k8s.io/v1alpha2
kind: Cluster
metadata:
  name: capi-quickstart
spec:
  clusterNetwork:
    pods:
      cidrBlocks: ["192.168.0.0/16"]
  infrastructureRef:
    apiVersion: infrastructure.cluster.x-k8s.io/v1alpha2
    kind: AWSCluster
    name: capi-quickstart
当然,您将需要一个启动/引导kubernetes集群来部署此资源。此项目仍处于原型阶段,因此请谨慎使用

查看Github上的群集api存储库: