Google混合雲多雲平臺Anthos Config Mangement產品設計分析

2022-01-31 ServiceMesher
本文通過對Google近期發布的Anthos混合雲產品的核心組件 Anthos Config Management進行分析,探究其背後設計的核心理念——Infrastructure as Code 是如何推動業內一直以來非標準的混合雲慢慢走向標準化、供應商無鎖定化。0. Anthos Config Mangement是什麼?
Hello World Demo

大家可以看Arctiq公司搞的修改node數量Demo:https://www.arctiq.ca/our-blog/2019/4/9/gke-on-prem-and-anthos-config-management/

簡單說,當你修改某個git管理下的yaml配置文件,裡面描述了某個GKE私有集群某個cluster的node數量,然後Anthos Config Management會幫你自動的發命令並讓節點數量變成你想要的那個。

Anthos是啥?

是Google發布的混合雲多雲平臺

GKE:Anthos 的命令和控制核心。用戶通過 GKE 的控制平面來對分散在 Google 雲、私有數據中心一級其它雲平臺上的基礎設施進行管理。

GKE On-Prem:Google 推出了一個基於 Kubernetes 的和 GKE 一致的軟體平臺。用戶能夠在任何的兼容硬體上部署這一產品,而 Google 將會對其進行管理。從升級 Kubernetes 版本到應用最新補丁,Google 都視其為 GKE 的邏輯擴展。尤其需要注意的是 GKE On-Prem 運行在 VMWare vSphere 6.5 的虛擬化基礎上,Hyper-V 和 KVM 等其它虛擬化技術的支持還在開發之中。

Istio:這一技術讓跨平臺的聯邦網絡管理成為可能。Anthos 需要為部署在不同數據中心、GCP 以及其它雲上的多種應用程式的組件建立服務網格,Istio 自然是首選。它會和 VMWare NSX、Cisco ACI 以及 Google 自己的 Andromeda 等 SDN 進行無縫集成。已經在網絡設施上(例如 F5) 進行投資的客戶,可以將 Istio 和負載均衡及防火牆集成起來。

Velostrata:Google 在 2018 年收購了這一雲遷移技術,來增強 Kubernetes 的競爭力。Velostrata 的主要功能——在 GCE 實例中複製物理機/虛擬機,並把現有虛擬機轉換為 Kubernetes 應用(Pod)。這是業界首個物理機到 Kubernetes 的遷移工具,由 Google 提供。這一技術以 Anthos Migrate 的面目出現,目前是 Beta 階段。

Anthos 配置管理:Kubernetes 是一個可擴展的策略驅動的平臺。Anthos 的客戶必須面對運行在不同環境中的多個 Kubernetes,因此 Google 嘗試利用 Anthos 來簡化配置管理工作。從發布工件、配置項目、網絡策略、密文和密碼等類型的配置,Anthos 配置管理都能夠進行管理並將配置應用到一或多個集群之中。

Stackdriver:Stackdriver 為 Anthos 基礎設施和應用提供了可觀察性的支持。客戶能夠使用這一組件跟蹤運行在 Anthos集群狀態,以及部署在各個託管集群上的應用的健康情況。該組件負責集中地提供監控、日誌、跟蹤以及觀察的支持。

GCP Cloud Interconnect:在企業數據中心以及雲基礎設施之間的高速互聯,是混合雲平臺的必要條件。Cloud Interconnect 能夠在數據中心和雲間交付高達 100Gbps 的高速網絡。客戶也可以使用 Equinix、NTT Communications、Softbanck 等電信廠商的網絡將其數據中心延伸到 GCP

GCP Marketplace:Google 為能夠在 Kubernetes 上運行的(來自 ISV 和開源的)軟體列表。用戶能夠在 Anthos 中一鍵部署 Cassandra 資料庫或者 GitLab 等軟體。最終 Google 可能還會為內部 IT 提供一個私有的 Catalog 服務。

大家可以看到,在這8大組件裡面,大概只有4和5是最近推出的,其他的早就投入生產並有不少企業在用了,這些組件到底是什麼關係?我們把這些組件放到一張圖上,就排著這個樣子(原諒我忽略了可憐的StackDriver和Marktplace,我假定讀者對這2個東西很熟悉)

也就是說,Anthos Config Management是一瓶膠水,把混合雲裡面應用的配置工作給自動化了。

且慢,什麼叫做配置自動化?

這個詞過於寬泛,所以在這裡提幾個常見的Kubernetes用戶場景:

你是否碰到過,一個典型的Web應用,在測試環境有一份配置文件(我們假定這個配置文件是一個Kubernetes的deployment的yaml),在準生產環境有一份配置文件,在公有雲有一份配置文件,在私有雲也有一份配置文件?每次你都複製黏貼並修改一些參數,並指望這些環境能夠混合起來給終端用戶提供合理的服務,但手工修改往往會造成差錯

你是否碰到過,配置文件存在多個k8s集群裡面,每次都要手忙腳亂的用kubectl挨個修改,但沒法看到這些配置的歷史版本?你可以回滾應用的docker鏡像,但你沒法回滾配置。如果你是一個資深k8s玩家,你當然知道在etcd的某個角落裡面存有所有yaml的歷史版本,通過某種黑魔法般的命令行操作你還是可以找回歷史的,但肯定沒有git那麼爽快

是的,Anthos Config Management就是用來解決這些問題的,並且,是按照Infrasturce as code的理念來做這個事情的

繼續問另外一個問題,為什麼配置這麼重要?

眾所周知,在傳統的Unix/Linux環境下,在/etc下有不少配置文件,大部分苦逼的運維工程師每天的工作就是修改這些文件,並且通過重啟進程或者給進程發信號讓這些配置生效,並且要修改上百臺機器;過去幾年有了ansible或者salt這類批處理工具,把登陸幾百臺機器的工作量給省了;而k8s除了解決集群的批量問題,還引入了一個新的理念,就是聲明式配置,運維工程師不需要苦逼的重啟進程,這些「進程」會自動按照你的配置達到期望的狀態(當然,由於這是在一個集群內,所以需要一定的時間),也就是說

聲明式配置 = 面向終態

所以,你寫的配置和傳統的配置文件,那種靜態的文本配置已經完全不一樣了,最後這些配置會變成生產系統的某個狀態,並且,如果使用了合理的工具鏈,這一系列工作都是自動化的。

那麼現在這些「配置文件」還是配置嗎?運維工程師的工作流程就變成了

是的,你會發現運維工程師的工作流程就和開發工程師一樣了!

這些配置,無論是什麼語言寫的,本質上變成了原始碼,只是沒有通過編譯工具鏈而是通過運維工具鏈達到了魯棒性,這樣就把傳統運維的重複勞動工作從大部分人手中拿出來交給少部分的運維工具鏈專家去維護。

1. 內部設計

關於這點,Google並沒有放出這個東西的原始碼,但是有一張圖

是的,這張圖在組件上畫的非常清晰,Anthos Config Mangement,在運行形態上是一個k8s的operator,部署在多個集群裡面,並且應該可以從同一個遠程git repo裡面讀取配置,從這個demo庫裡面,我們可以看到這個operator讀取git庫的配置

apiVersion: addons.sigs.k8s.io/v1alpha1
kind: ConfigManagement
metadata:
  name: config-management
spec:
  git:
    syncRepo: git@github.com:GoogleCloudPlatform/csp-config-management.git
    syncBranch: "0.1.0"
    syncWait: 5
    secretType: ssh
    policyDir: foo-corp

這裡幾個參數清晰的標明,Anthos Config Mangement會去每5秒鐘讀取一次git repo的0.1.0分支,並按照這個分支上的配置來進行後續的操作。那麼,這些操作具體能幹啥,怎麼幹呢?官方文檔實在是太可憐了,就幾句話就想打發我們,不過,從Demo裡面我們可以試圖尋找這些功能和配置的對應關係。讀者可以把demo庫 git clone下來,比對著看。

官方的功能描述是:

從單一代碼庫衍生的真實,控制和管理

允許使用代碼審查,驗證和回滾工作流程。

避免陰影操作,由於手動更改導致的Kubernetes集群之間不同步。

允許使用CI / CD管道進行自動化測試和部署。

跨所有集群的一步式部署

Anthos Config Management將單個Git提交轉換為跨所有集群的多個kubectl命令。

只需還原Git中的更改即可回滾。 然後,大規模自動部署恢復。

豐富的繼承模型,簡化修改

使用命名空間,您可以為所有集群,某些集群,某些命名空間甚至自定義資源創建配置。

使用命名空間繼承,您可以創建一個分層的命名空間模型,該模型允許跨repo文件夾結構進行配置繼承。

這是demo的樹形目錄結構

.
├── cluster
│   ├── namespace-reader-clusterrole.yaml
│   ├── namespace-reader-clusterrolebinding.yaml
│   ├── pod-creator-clusterrole.yaml
│   └── pod-security-policy.yaml
├── namespaces
│   ├── audit
│   │   └── namespace.yaml
│   ├── online
│   │   └── shipping-app-backend
│   │       ├── pod-creator-rolebinding.yaml
│   │       ├── quota.yaml
│   │       ├── shipping-dev
│   │       │   ├── job-creator-role.yaml
│   │       │   ├── job-creator-rolebinding.yaml
│   │       │   ├── namespace.yaml
│   │       │   └── quota.yaml
│   │       ├── shipping-prod
│   │       │   └── namespace.yaml
│   │       └── shipping-staging
│   │           └── namespace.yaml
│   ├── sre-rolebinding.yaml
│   ├── sre-supported-selector.yaml
│   └── viewers-rolebinding.yaml
└── system
    ├── config-management.yaml
    └── resourcequota-hierarchy.yaml

我相信應該是anthos的工作流應該是讀取cluster裡面的一些安全配置,並且在所有集群上都創建這裡的namespace目錄所描述的命名空間。

在一些demo視頻裡面我們還看到了clusterregistry目錄,應該是用來修改集群的一些屬性,達到動態修改節點數量的目的。

但如何讓一個應用在多個集群的多個namespace流轉,當前還沒能看到痕跡,從namespace的嵌套目錄來看,應用WorkLoad會經過這些目錄的層級,然後動態的修改自己的一些配置。這些細節還有待研究。

2. 結語核心洞察

Anthos是在多k8s集群的場景下,想到了這兩點

既然k8s把所有東西的狀態變為靜態的yaml文本描述,那麼這些配置存在etcd裡面並用kubectl去修改就是低效的,完全可以用git存起來

這些配置之間是有冗餘的,完全可以通過模板化的方式去自動搞定單個應用多集群的配置

遺留問題參考

Anthos深度分析,看懂谷歌雲的三級火箭:https://www.tmtpost.com/3895215.html

關於Anthos:https://toutiao.io/posts/2a1ymm/preview

Anthos Config Management官方文檔:https://cloud.google.com/anthos/docs/concepts/anthos-overview#centralized_config_management

產品主頁:https://cloud.google.com/anthos-config-management/

官方Demo:https://github.com/GoogleCloudPlatform/csp-config-management

Arctiq公司搞的修改node數量Demo:https://www.arctiq.ca/our-blog/2019/4/9/gke-on-prem-and-anthos-config-management/

另一個Demo:https://www.youtube.com/watch?v=00f7aE8cfY0

相關焦點

  • Google Cloud 服務網格:Traffic Director 與 Anthos Service Mesh 的左右互搏
    Google Cloud 同時推出兩個 Service Mesh 產品的原因是什麼?這兩個產品的定位有何不同?本文將分別分析這兩個產品的架構和功能,以試圖解答該疑問。Anthos Service Mesh 關鍵特性包括:• 原生 Istio 多集群方案• 支持多雲 / 混合雲(不支持虛機)• 集中的服務監控控制臺。Anthos 的整體架構Google Cloud Anthos 旨在提供一個跨越 Google Cloud、私有雲和其他公有雲的統一解決方案,為客戶在混合雲 / 多雲環境下的集群和應用管理提供一致的體驗。
  • FIT2CLOUD飛致雲正式啟用CloudExplorer多雲管理平臺產品品牌
    2021年1月13日,FIT2CLOUD飛致雲宣布正式啟用多雲管理平臺軟體新品牌——CloudExplorer,並且同步發布多雲管理平臺v3.0版本。自v3.0版本起,FIT2CLOUD創始產品「FIT2CLOUD多雲管理平臺」將正式更名為「CloudExplorer多雲管理平臺」。
  • 華勝天成集團「異構混合多雲管理平臺」入選2020 GOLF+IT新治理領導力論壇年度優秀案例
    華勝天成集團以「開啟以業務為中心的雲資源管理新篇章」案例入圍年度優秀案例,再次證明「天成雲」異構混合多雲管理平臺助力客戶實現雲資源及應用服務全生命周期管理的賦能價值。華勝天成集團異構混合多雲管理平臺從目前企業所面臨的這一痛點出發,基於DevOps和雙輪驅動的理念,提供了創新的跨資源池業務自動化編排管理能力,將業務系統交付上線需要的異構雲資源環境(如計算資源、網絡資源、存儲資源、應用組件、業務組件等)按照預先梳理的業務邏輯架構進行靈活的定義和編排,經過嚴格的審批和審核後,自動進行安裝部署,並對安裝結果進行自動核查,大大降低應用交付的周期和難度,真正實現了敏態運營管理能力
  • 你想知道的關於Anthos的一切——谷歌混合和多雲平臺
    客戶使用GKE控制平面管理運行在谷歌雲、內部部署的數據中心等雲平臺上的分布式基礎設施。GKE On-prem——谷歌提供了一個與GKE一致的基於Kubernetes的軟體平臺。客戶可以將其部署到任何兼容的硬體上,谷歌將管理這個平臺。從升級Kubernetes版本到應用最新補丁,谷歌將把它當作GKE的邏輯擴展。
  • 混合雲的比較:AWS Outposts、Azure Stack和Google Anthos
    儘管它們都共享一些核心功能,並旨在使雲平臺與內部部署同步,但是在涉及供應商鎖定因素、硬體兼容性、支持雲服務等方面,這些雲計算服務都有所不同。用戶需要了解AWS Outposts,Azure Stack和Google Anthos的異同之處,並確定哪種混合雲產品最適合自己的需求。
  • 私有雲在多雲世界中的作用
    調研機構Forrester公司分析師Chris Gardner認為,企業的願景是在適當的平臺上運行工作負載,無論是公有雲還是內部部署數據中心,並儘可能為私有雲提供與公有雲同等的功能。私有雲一直在許多層面上對企業IT團隊提出挑戰,因此需要從概念上弄清私有雲和公有雲之間的關係,並在資源和人員有限的情況下設計和實現私有雲。
  • 谷歌雲重磅推出混合雲平臺Anthos,兼容競爭對手雲服務 | Google Cloud Next'19
    主要包括:谷歌推出Anthos多雲平臺,能兼容對手AWS和微軟Azure;谷歌推出無伺服器計算堆棧最新成員:Cloud Run;谷歌與Confluent、Elastic等7大開源資料庫廠商重磅合作;谷歌與思科、戴爾、惠普、英特爾、聯想和VMware重磅合作;谷歌宣布新增2個雲區域,落地韓國首爾。
  • 銀行雲計算架構的演進及抉擇:從物理機「雲」、集成雲,到集成+原生「混合」雲
    集成雲架構深層次可以理解為:企業積極地混合多個雲平臺以提供一個協調的服務集合,並利用每個雲計算服務/雲平臺的不同優勢。集成雲架構建立在兩個基本原則之上。首先,每個集成的雲平臺都提供了強大而豐富的功能,可以為一個或多個業務功能提供服務。它們可以獨立行動,而無需與其他雲平臺集成;然而,當適當地集成時,其總和大於非集成個體的能力。
  • HPE GreenLake雲服務平臺,創新混合雲助力企業數位化轉型
    如今,我們正在走入「洞見力時代」,而其中最關鍵是要建立一個從邊緣到雲的平臺,提供保護、連接性和分析能力,並且根據數據得出的洞見指導行動。同時對於那些正在進行數位化轉型的企業來說,也要藉助於開源的雲原生技術和平臺,使得數據和服務能夠在邊緣到雲的平臺上實現無拘束的遷移,尤其是要滿足多種形態的雲環境。
  • Google雲遊戲平臺Stadia情報分析
    *由於奧德賽在遊戲設計上有動作前後搖,玩家主觀上對延遲不敏感。(基本上只是個玩具)配套工作組建第一方工作室Stadia Games and Entertainment,估計想開發雲遊戲平臺專屬的玩法。Stadia情報分析Stadia公開信息裡沒有提到太多關鍵數據,目前來講還在預期之內。有兩點超出預想:一個是使用了Linux架構,另一個是深度集成了直播能力。
  • VMworld 2019:人工智慧、安全與混合雲戰略
    通常「七年之癢」指的是一段關係在第七年的時候容易進入危險期,不過Pat Gelsinger在成為VMware CEO第七年的時候卻正進入佳境:不僅完成了全部產品向雲時代的轉型,核心產品vSphere面向雲原生計算進行了全面重構,VMware的混合雲勢頭更進一步強化。Pat Gelsinger向外界證明,VMware雖然是一家老牌企業級虛擬化技術巨頭,但有足夠的能力與時俱進。
  • 多雲的風險在哪裡?
    根據IDC公司的調查,隨著許多企業永久性地實施遠程工作或混合工作的方式,在多個雲計算平臺中遷移原有數據並存儲新數據,多雲將成為標準。多雲策略帶來了許多新機遇,也帶來了新的挑戰。多雲將會蓬勃發展,但是它給企業帶來了哪些潛在威脅?冠狀病毒疫情如今已經成為企業將業務遷移到雲平臺的重要催化劑,廣泛實施的遠程工作以前所未有的速度推動越來越多的企業實施數位化轉型。
  • 從VCF雲能力九宮格,看懂「真」全棧企業雲平臺
    在此背景下,VMware歷經十年,經過不停的技術創新研發演變過來的一個全新全棧企業級雲產品VMware Cloud Foundation(以下簡稱VCF),就能夠幫助企業級用戶輕鬆構建和運維具有公有雲體驗的私有雲或者混合雲,實現「一致的基礎架構,一致的運維體驗和一致的安全保證」,真正讓企業提高業務敏捷性靈活性,同時降低總體雲建設和運維成本。
  • KubeCon NA 2019 回顧:多雲混合雲是下一個大趨勢
    作者:bot(才雲)技術審核:星空下的文仔(才雲)美國時間 2019 年 11 月 21 日,
  • 谷歌和英特爾強強聯手,為混合雲環境的客戶提供更高效解決方案
    ,為混合雲環境的客戶提供更高效解決方案。 新參考設計的Anthos是一種基於第二代 Intel Xeon 可擴展處理器和優化的Kubernetes,可為混合雲環境的客戶提供更高效的進行負載工作。 另外,谷歌發布遊戲串流平臺「Stadia」,將遊戲跨設備整合進入雲端平臺,這意味著遊戲全部從雲端讀取,並支持不同設備遊玩。這種遊戲串流平臺除了必須藉助於高速穩定的網絡外,也將帶動串流伺服器需求快速成長,這對伺服器數據傳輸、數據處理、數據響應等提出了更高的要求。谷歌Stadia雲遊戲平臺
  • 如何獲得多雲環境的可視性
    多雲通常被認為是企業的一個進化步驟,是企業從單一雲平臺的起始階段走向多雲產品的「最佳」方法。而各種因素決定了這一點。對於某些企業來說,需要平臺特定功能的工作負載的多樣性。對於其他企業來說,這是一個演變的過程,也可能是併購的結果。多雲通常被認為是企業的一個進化步驟,是企業從單一雲平臺的起始階段走向多雲產品的「最佳」方法。而各種因素決定了這一點。
  • 【已投項目動態】破局多雲管理難題,雲霽科技完成C2輪融資
    這也是雲霽科技在15個月內完成的第3輪投資,C輪前2輪投資人為翊翎資本、敬叄科技、呈瑞投資、長策投資。雲霽科技成立於2015年,為企業上雲提供多雲管理平臺,在國內多雲和傳統IT混合管理領域技術領先,金融行業市場佔有率第一,客戶涵蓋了70%的四大國有銀行和全國性股份制銀行總行。
  • 為什麼集中化是多雲安全策略的關鍵
    在企業構建多雲的安全策略時,集中化是安全團隊重點關注的最為關鍵的領域之一。對於多雲系統,運營和安全團隊可能面臨碎片化或分散的安全訪問控制和監視工具。如果這些控制和工具在每個獨立的供應商環境中設計和實施,企業往往面臨著不少挑戰。有些雲運營團隊尋求多雲代理商,將所有的雲管理集中和整合到一個地方。
  • MongoDB Atlas支持多雲資料庫集群 阿里雲在列
    在中國市場,MongoDB與阿里雲合作發布阿里雲MongoDB 4.4,為中國客戶提供雲資料庫。現代通用資料庫平臺提供商MongoDB今年七月發布了全新的MongoDB 4.4版本並於近日發布了支持多雲集群的MongoDB Atlas。在中國市場,MongoDB與阿里雲合作發布阿里雲MongoDB 4.4,為中國客戶提供雲資料庫。
  • 2018年雲計算九大趨勢熱詞:Serverless、混合雲、多雲、中臺、邊緣計算等「附下載」
    該產品的發布,既是AWS的一大改變,也是私有雲領域的一個新動向。一方面,這說明AWS已接受了現實,即因為客觀存在的物理限制,在很長一段時間內,很多用戶應用將無法向中心化的公有雲遷移。另一方面,混合雲將呈現出新特徵,方向上還是私有雲和公有雲的混合,但技術和產品上將同質化,這就使得全棧混合成為了現實。