簡體   English   中英

Kubernetes 基礎設施即代碼最佳實踐

[英]Kubernetes infrastructure as code best practice

任何人都可以向我指出根據基礎設施即代碼自動部署的原則,使用 Git 存儲庫和未定義的 CI/CD 平台為不同的開發團隊設置 Kubernetes 集群的通用策略。

假設我將使用 Terraform 在一個名為 QKS 的假設雲服務上部署一個 Kubernetes 集群,其中包含一個常用服務,例如 Apache Airflow,有一個公共舵圖可用。 有兩個自定義服務(來自兩個獨立的開發人員組)可以部署名為“apples”和“bananas”的服務。

我正在努力分離不同代碼庫的職責。 此過程中的哪些步驟仍然最好手動完成。 關於這項技術的文章很多,但我找不到任何關於這個問題的文章。

這是我自己的提議。

擁有三個 git 存儲庫:

  • my-infrastructure :包括 Terraform 文件、Airflow Helm 部署和兩個命名空間的部署,包括對這些命名空間的訪問角色。 CICD 跟蹤更改並將其部署在 QKS 上
  • apples :代碼庫和相應的 helm 模板。 CICD 只能部署在 apples 命名空間上。
  • 香蕉:代碼庫和相應的掌舵模板。 CICD 只能部署在bananas 命名空間上。 在此處輸入圖片說明

筆記:

有一個有趣的 kubernetes 項目稱為cluster-api ,它允許您以聲明方式創建、配置和管理 kubernetes 集群,方式類似於我們在 kubernetes 本身中管理不同資源的方式。 它定義了不同類型的新資源,如ClusterMachine

例如,您可以像這樣定義一個集群:

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 上的cluster-api存儲庫: https : //github.com/kubernetes-sigs/cluster-api

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM