Gravity可以幫助用戶打包Kubernetes項目,當您創建集群項目以后就可以使用這款軟件立即打包,從而方便用戶將開發的項目保存為映像,對于提高交付項目效率很有幫助,您可以直接在軟件上創建集群映像,可以對集群資源配置,包括GitHub連接器、OIDC連接器、用戶令牌、群集身份驗證設置、集群用戶、集群監控警報、群集監視TP配置、認證配置等項目,將自己需要的項目配置完畢就可以開始創建打包項目,需要注意的是Gravity是Kubernetes打包解決方案,因此它只能在能夠運行Kubernetes的計算機上運行!
Gravity軟件功能
Gravity是一個開源工具箱,用于創建Kubernetes集群及其內部運行的應用程序的“映像”。生成的映像稱為群集映像,它們只是.tar文件。
在符合和一致至關重要的任何環境中,即在鎖定的AWS / GCE / Azure環境中,甚至在有空隙的機房中,都可以使用集群映像來重新創建原始集群的完整副本。圖像可以作為“ kubernetes設備”在沒有人工的情況下運行。
群集圖像
Gravity產生的群集映像包括:
所有Kubernetes二進制文件及其依賴項。
內置容器注冊表。
集群中所有應用程序容器的重復數據刪除層。
內置的群集協調器,可確保高可用作,就地升級和自動擴展。
CLI和Web瀏覽器GUI的安裝向導。
只需映像就可以重新創建原始Kubernetes集群的完整副本,并且所有部署的應用程序都在內部,即使是在空曠的機房中。
有大量的Kubernetes發行版。它們中的大多數旨在成為靈活的通用平臺。Gravity更加關注合規并減少了管理Kubernetes的開銷:
Gravity簇是冪等的,即從同一圖像創建的簇總是相同的。配置不會隨時間推移而漂移;沒有“特殊的雪花”。
Gravity群集始終被稱為Teleport的特權訪問“包裝”,該 將k8s和SSH身份驗證統一,與SSO集成,并保留詳細的審核志以用于合規目的。它甚至記錄交互式SSH和kubectl exec會話。
可以通過內置的反向SSH隧道對在全球范圍內部署的重力集群進行遠程管理,即即使開發人員位于NAT /防火墻后面,也可以訪問數千個k8s API端點。
Gravity包括在群集配置之前執行基結構驗證的工具。這使群集設計者可以防止用戶在不滿足系統要求的基結構上安裝群集。
重力集群僅允許經過Gravitational Inc.全面測試的Kubernetes組件具有兼容和穩定。這些組件稱為“ Kubernetes運行時”。用戶可以選擇一個運行時,但是Gravity不允許對Kubernetes的各個組件進行任何自定義。
Gravity軟件特色
在未知領域中運行云原生應用程序
Gravity是一個應用程序交付系統,使工程師可以在受,受限或遠程的環境中交付和運行云原生應用程序,而不會增加復雜。
在規范,受限或遠程環境中運行云原生應用程序
使云原生應用程序可以在任何Linux環境中運行,甚至可以在氣密的數據中心或邊緣設備中使用。
滿足嚴格的安全和訪問要求,同時保留云原生軟件的優勢。
更快地交付解決方案,并避免供應商鎖定可以在任何環境中以相同方式安裝和運行的應用程序。
減少開銷
應用程序及其所有依賴項都打包在一起,并且將Kubernetes強化到一個文件中,以便于交付和一鍵安裝。
無摩擦且安全的應用程序更新,管理和監視。
需要一點Kubernetes經驗。Gravity可與現有Kubernetes基架構和CI / CD工作流程集成,但不需要集成。
開箱即用的安全和合規
基結構安全的行業最佳實踐,默認情況下為每個站點配置。支持最嚴格的合規要求,例如PCI,HIPAA,FedRAMP等。
Gravity教程
集群管理
從Gravity Cluster Image創建的每個集群都是功能齊全的Kubernetes環境。它包含以下組件:
1、已打包到群集映像中的所有用戶應用程序。
2、所有Kubernetes守護進程一樣kube-scheduler,kube-api和其他。
3、Kubernetes CLI工具:kubectl。
4、重力集群的“管理程序”,稱為gravity,用于管理集群。
5、一個用于監視和管理群集狀態的Web應用程序(“控制面板”)
6、Gravity身份驗證,用于通過SSO將Kubernetes身份驗證和對群集節點的SSH訪問與公司身份提供商集成在一起。
您還可以使用熟悉的Kubernetes工具,例如kubectl執行常規的Cluster任務,例如觀察志,查看Pod或卷的統計或管理配置。
控制面板示例
Kubernetes擴展
Gravitational還為Kubernetes提供了各種擴展,這些擴展可以與您的應用程序一起預先打包和分發。此類解決方案的示例包括:
流行的開源數據庫的主從控制器。
流行的AWS API(例如S3或SQS)的現場模擬器。
集群內網絡加密。
應用程序監視以及與第三方數據收集工具(例如Splunk)的集成。
身份管理,用于將群集訪問集成到現有身份提供程序中。
集群監控
默認情況下,Gravity Clusters具有完全配置且可自定義的監視/警報系統。監視堆棧由以下組件組成:Pmetheus,Grafana,Alertmar和Satellite。
這些組件自動包含在tele build作為系統依賴項構建的群集映像中
監控儀表板示例
可插拔儀表盤
您的群集映像可以使用ConfigMaps包含其自己的Grafana儀表板。
應將自定義儀表板ConfigMap放置在monitong名稱空間中并分配特殊monitong: dashboard標簽,以便在初始“群集映像”安裝期間將其識別為儀表板并進行加載:
Alertmar集成
配置警報傳遞
要配置Alertmar發送電子郵件警報,您需要創建兩個Gravity資源。
第一個資源稱為smtp。它定義了要使用的TP的配置:
創建TP配置:
第二個資源稱為alerttarget。它定義了警報電子郵件收件人:
配置警報
定義新的警報是通過稱為的Gravity資源完成的alert:
內置警報
下表顯示了Gravity默認附帶的警報:
應用目錄
筆記
目前正在積極開發“應用程序目錄”功能,該功能從5.4.0 alpha版本開始可用。
Gravity支持將Helm圖表打包為的應用程序映像,可以將其安裝在Gravity群集或通用Kubernetes群集中(前提是它可以訪問Docker注冊表)。
應用程序映像是一個包含以下內容的壓縮包:
Helm圖表(可能具有圖表依賴)。
圖表的Kubernetes資源的供應商Docker映像。
小費
在tele和gravity二進制文件具有內置所以所有需要頭盔的功能helm是不需要的二進制構建應用程序時,或部署的集群內的上進行安裝。該 tiller(頭盔的組件)確實需要部署到集群。
雙方 tele version并gravity version命令報告嵌入頭盔的版本:
生成應用程序映像
對于此示例,我們將使用示例Helm圖表。這張圖旋轉了Alpine Linux的一個pod:
在構建應用程序映像之前,我們需要確保Pod的映像引用包含注冊表模板變量,可以在安裝過程中將其設置為適當的注冊表:
image: “{{ .Values.image.registry }}{{ .Values.image.repository }}:{{ .Values.image.tag }}”
現在,我們可以使用tele此圖表來構建應用程序圖像:
$ tele build alpine
結果是一個tarball alpine-0.1.0.tar,其中包括打包的Helm圖表和Alpine圖像層。
發布應用程序映像
筆記
發布應用程序需要Gravity Hub,并且僅在企業版Gravity中可用。
可以將構建的應用程序映像發布到Gravity Hub。這使Gravity Hub可以充當應用程序映像的分發終結點。
要將應用程序映像上傳到Gravity Hub,請先登錄到它:
$ tele login -o hub.example.com
將應用程序圖像壓縮包推入:
$ tele push alpine-0.1.0.tar
要查看所有當前發布的應用程序:
與DOCKER REGISTRY和HELM CHART存儲庫進行交互
Gravity Hub(以及與此相關的任何Gravity集群)充當Docker注冊表和Helm圖表存儲庫,因此可以直接從Gravity Hub提取Docker映像并獲取已發布應用程序的Helm圖表。請注意,您必須先登錄Gravity Hubtele login才能起作用。
首先,讓我們嘗試為高山應用程序提取一個Docker映像:
筆記
docker push 不支持將Docker映像直接推送到Gravity Hub注冊表。使用tele push與它的圖表和層重力中心一起發布的應用程序圖像。
接下來,確保將Gravity Hub配置為Helm圖表存儲庫:
要搜索特定的圖表,可以使用標準的Helm命令:
Helm還可以用于以標準Helm格式檢索Helm圖表包歸檔文件:
執行tele logout以清除Gravity Hub的登錄,包括Docker注冊表和Helm圖表存儲庫憑據。