雲無關、桌面端、基於Kubernetes的平臺Otomi

愛是與世界平行發表於2021-10-12

一、Otomi介紹

Otomi官網:https://otomi.io/

Otomi-core核心模組Github地址:https://github.com/redkubes/otomi-core

Otomi是一個開源的、雲無關的、基於kubernetes的平臺,通過類似桌面的使用者介面安全地部署、執行和管理應用程式。

Otomi易於安裝,具有直觀的桌面式UI,可以使用預先配置的內建應用程式提供開箱即用的體驗。

就像您最喜歡的Linux發行版所期望的那樣。在Kubernetes上安裝Otomi後,您可以登入並立即開始部署應用程式。

image-20211012182027231

Otomi是建立在以下開源專案之上的:

二、Otomi提供的特性

  • 開發人員自助服務:團隊成員可以使用Otomi Console直接訪問他們需要的所有工具並建立Services,Jobs和Secrets。
  • 預配置和準備使用的應用程式。
  • 所有整合應用程式的應用程式配置管理,提供基本配置檔案配置以支援最常見的DevOps用例。
  • 多租戶:建立團隊並提供對共享應用程式的SSO訪問。
  • 實現了更好的治理和安全性的策略。清單將在執行時靜態地和在叢集上進行檢查,以確保策略服從。
  • 單點登入:自帶IDP或使用Keycloak作為IDP(預設)。
  • 自動進入配置:輕鬆配置Team服務的進入,允許公眾在幾分鐘內訪問服務。Istio閘道器和虛擬服務為Team服務自動生成和配置,以可預測的方式將通用入口體系結構繫結到服務端點。
  • 輸入/輸出驗證:靜態地檢查配置和輸出清單的有效性和最佳實踐。
  • 自動漏洞掃描:掃描Harbor中所有已配置的Team服務容器。
  • 內建對Azure、Amazon Web服務和谷歌雲平臺的支援。

Otomi的目標是支援最常見的DevSecOps用例,即開箱即用,並強烈依賴於GitOps模式,其中所需的狀態以程式碼形式反映出來,叢集狀態會自動更新。

2.1 Otomi優勢

  • 很容易安裝
  • 自帶一個直觀的桌面式UI
  • 自帶準備使用,預配置和內建的應用程式
  • 開箱即用的工作

就像您最喜歡的Linux發行版所期望的那樣。在Kubernetes上安裝Otomi之後,您可以登入並立即開始部署應用程式。

2.2 為什麼選擇Otomi

  • 允許定製和擴充套件。
  • 將上游Kubernetes與經過驗證的開源應用程式和附加元件整合在一起。
  • 單個可部署包是否具有經過行業驗證的應用程式和策略,以獲得更好的治理和安全性。
  • 提供企業級容器平臺的開箱即用體驗。
  • 提高開發人員的效率,使開發人員自我服務。
  • 提供精心設計的合理預設值,以減少配置工作和加快時間的市場。
  • 結合12因素應用方法和Kubernetes的最佳實踐。

三、Otomi架構

Otomi由多個專案組成:

  • Otomi Core:Otomi的心臟
  • Otomi Tasks:由Otomi Core組織的自主工作
  • Otomi API:Otomi的大腦,處理主機輸入並與Otomi Core對話
  • Otomi Console:Otomi為管理員和團隊提供的UI,與Otomi API對話
  • Otomi Clients:構建和釋出redkubes/ Otomi -tasks repo中使用的openapi客戶端的工廠

四、安裝部署

4.1 最低要求及配置

4.1.1 客戶端二進位制檔案

請確保以下客戶端二進位制檔案存在:

  • Kubectl訪問叢集。
  • Docker必須安裝並執行,就像Otomi執行在容器中一樣。
  • 安裝了Helm
  • 可選:Otomi CLI客戶端

4.1.2 Kubernetes和DNS

Otomi至少要求:

  • 至少有3個工作節點的正在執行的Kubernetes叢集(使用至少4個vCPU的通用例項型別)
  • 訪問公共DNS區域

Otomi支援Kubernetes版本1.18到1.20

按照下面的說明在你選擇的雲上設定一個Kubernetes叢集和DNS:

1. AWS#

Set up an EKS cluster on AWS: https://docs.aws.amazon.com/eks/latest/userguide/create-cluster.html

使用kubectl訪問叢集:

aws eks update-kubeconfig --name $CLUSTER_NAME

設定外部DNS:https://github.com/kubernetes-sigs/external-dns/blob/master/docs/tutorials/aws.md

2. Azure (AKS)#

Set up an AKS cluster on Azure: https://docs.microsoft.com/en-us/azure/aks/kubernetes-walkthrough-portal

使用kubectl訪問叢集:

az aks get-credentials --resource-group <resource-group> --name <cluster-name> --admin

設定外部DNS:https://github.com/kubernetes-sigs/external-dns/blob/master/docs/tutorials/azure.md

3. Google (GKE)#

Set up a GKE cluster on Google Cloud Platform: https://cloud.google.com/kubernetes-engine/docs/how-to

使用kubectl訪問叢集:

gcloud container clusters get-credentials <cluster-name> --region <region> --project <project>

設定外部DNS:https://github.com/kubernetes-sigs/external-dns/blob/master/docs/tutorials/gke.md

4.2 可選配置

可以選擇將Otomi配置為使用外部IDP (Azure AD),併為sop使用外部金鑰管理服務(KMS)提供商。

下面你可以找到關於如何將Azure AD設定為外部IDP和配置KMS的詳細說明。

我們將很快為其他idp新增更多說明,如Amazon Incognito,谷歌Identity和Okta。

4.3 安裝圖表

使用Helm安裝Otomi。

有關如何使用helm圖表的更多細節,請訪問helm文件頁面。

在開始之前,驗證您是否已經滿足先決條件:

1. 新增Otomi倉庫#

helm repo add otomi https://otomi.io/otomi-core
helm repo update

檢視helm repo瞭解更多命令說明。

2. 建立測試檔案

檢視所需的值。Yaml檔案的詳細註釋,檢視和下載圖表的最新值。

執行以下命令檢視所有的值:

helm show values otomi/otomi

使用例項測試輸入值是否正確。

helm template -f values.yaml otomi/otomi

3. 安裝圖表

使用以下命令安裝圖表:

helm install -f values.yaml otomi otomi/otomi

監控圖表安裝:

圖表在預設名稱空間中部署一個Job (otomi)。使用kubectl監控圖表安裝:

# get the status of the job
kubectl get job otomi -w
# watch the helm chart install status:
watch helm list -Aa

4. 二進位制安裝

git clone https://github.com/redkubes/otomi-core.git
cd otomi-core

使用以下命令安裝名稱為my-otomi-release(您選擇的自定義名稱)的圖表。

helm install -f values.yaml my-otomi-release chart/otomi

5. 解除安裝圖表

helm uninstall my-otomi-release

Helm解除安裝只會移除用於部署Otomi的工作。它不會移除所有已安裝的元件。如果您想完全解除安裝,我們建議首先克隆otomi/values儲存庫(以確保配置安全),然後使用otomi CLI解除安裝。

五、安裝後配置

安裝Otomi之後,需要兩個安裝後配置操作。遵循這些指令:

5.1 登入Otomi控制檯

在瀏覽器中開啟url https://otomi.<domainsuffix>。domainSuffix可以在值中找到。Yaml是在安裝期間提供的。

如果Otomi配置了OIDC(使用Azure AD作為IDP),單擊右邊的按鈕(下面示例中的redkubes-azure)。

如果沒有配置OIDC,請先在Keycloak中建立使用者。並將該使用者新增到otomi-admin組。

image-20211012181415978

成功登入後,您將看到Otomi Dashboard。

要了解更多關於使用Otomi控制檯,請檢視Otomi控制檯。

image-20211012181445789

image-20211012181455531

5.2 啟用Drone

Gitea和Drone是Otomi叢集配置儲存和更新的重要組成部分。點選控制檯中的Gitea應用程式(在Platform/Otomi Apps下)。它將開啟一個新的瀏覽器選項卡,並顯示在Gitea的登入頁面。使用預設的otomi-admin帳戶登入。

image-20211012181602228

在登入後,可能需要幾分鐘才能看到otomi/values儲存庫。

image-20211012181619399

otomi/values儲存庫儲存otomi叢集配置,每當通過控制檯發生新的更改時,它就會更新。

現在回到控制檯啟用Drone。

image-20211012181649982

點選Drone 應用程式,它應該開啟一個新標籤,如下所示,

image-20211012181722859

選擇Activate,然後Activate REPOSITORY

image-20211012181735372

儲存更改,就可以開始了。

image-20211012181754043

現在,最後一步是建立Team。有關更多資訊,請參見 Teams頁面。

相關文章