微軟Azure容器服務要關停,你想好怎麼遷移了嗎?

2021-09-17 08:12:33 字數 2346 閱讀 3011

最近,微軟宣布將於2023年1月正式暫停其acs(azure container service)服務,並鼓勵acs使用者將其分布式基礎架構轉移到新推出的azure kubernetes service服務上,這對微軟來說是乙個合乎邏輯的舉動。雖然acs將繼續支援docker swarm和mesosphere的dc/os替代編排選項,但將不再執行它們。相反,微軟正集中精力改善azure中的kubernetes支援以及相關工具。

雖然acs即將退役,但基於此的應用不會立即停止,用於管理的api將被停止,因此無法控制且無法使用azure工具新增新集群或更新和擴充套件現有服務。儘管**可以執行,但如果不能使用自己的工具管理,功能還是會受到限制。使用者會被鎖定在目前使用的舊版本框架中,並且無法依賴自動安全更新。

很明顯,對於大多數應用來說,在2023年1月之後留在acs上的風險大於遷移風險,因此我們需要盡快做好遷移安排。

對於使用kubernetes的acs應用程式,這不會太困難。swarm和dc/os的底層編排概念和工具會有所不同,所以構建在這之上的**將很難移動。即便如此,由於所有服務都依賴相同的容器模型,因此無需進行重大**更改。

微軟明確表示,它希望使用者遷移到其他解決方案,並將自己的azure kubernetes service(aks)作為首選。當然,aks是azure在kubernetes開源投資的大頭,其acs-engine工具已經進入github,即aks-engine。如果在自己的azure虛擬基礎架構上使用acs-engine,則應該能夠直接切換到aks-engine來管理kubernetes例項,因為它是向後相容的。

1、成本問題

雖然有很多事情需要考慮,但並不像看起來那麼複雜。首先,我們需要考慮成本問題。從acs遷移到aks不應該對計費產生重大影響,也不應該轉向mesosphere dc/os的開源版本。我們可以遷移到適用於swarm的docker enterprise或mesosphere dc/os的企業版,但這就需要結算其他公司的許可費用和azure的基礎架構費用。這意味著將放棄azure的月付優勢,將結算分成多家收款方。

其次,從swarm或dc/os acs例項轉向使用完整產品不需要大量工作,但是可能會產生新的操作要求,因為需要在azure之外使用特定於產品的管理工具。對於某些企業而言,這可能是乙個問題,但在實踐中,這些平台提供與acs相同的功能,還可以直接獲得azure支援。如果願意,也可以選擇重寫**以在aks上執行。

2、遷移前準備

微軟已經在azure上關注kubernetes一年多了,因此,aks是微軟在azure上部署kubernetes託管應用程式的首選解決方案,通過azure容器例項支援虛擬kubelet等功能,進一步減少與執行kubernetes相關的工作量。

從acs遷移到aks確實存在一些問題,使用者可能需要對應用程式體系結構進行更改以處理兩種服務之間的差異。一些問題是由於aks是乙個託管kubernetes,一旦處理應該簡化應用。比如,將storageclass物件從非託管更改為託管,對於persistentvolumes也是如此。aks使用azure託管磁碟,讓它直接控制儲存,根據需要增加容量。需要避免使用任何基於windows server的kubernetes節點,因為計畫的支援目前只在私有測試版中。

遷移前可能需要公升級kubernetes版本,並最好在開發環境中處理,這樣可以直接部署到aks。部署後,應用程式將由aks管理,並支援動態擴充套件,這之中也存在api差異,因此如果計畫使用外部kubernetes工具進行監控和除錯,請檢查是否支援aks api。

3、處理kubernetes儲存並部署到aks

如果要將無狀態應用程式從acs遷移到aks,則可以像將應用程式yaml部署到新集群並讓aks部署和啟動容器一樣簡單。一旦執行,就可以在將公共ip位址從acs例項切換到aks之前測試**。

狀態應用程式更複雜,可能有延長停機時間的可能。一種選擇是在aks上設定應用程式故障轉移副本,並複製資料。一旦與現有acs應用程式同步,就可以在將流量重定向到aks之前從acs應用程式故障轉移到aks。

如果將儲存遷移到託管磁碟會增加額外的複雜性,資料量越大通常需要越多的停機時間。使用者需要停止從acs進行**寫入,關閉它並為磁碟建立快照。快照可用於建立新磁碟,可用作aks持久卷。部署後,使用者需要先測試應用程式,然後才能開始向其傳送流量。從關閉acs到aks部署上線,使用者都將無法訪問。

將**部署到aks的方法類似於將**部署到kubernetes集群。首先,使用與acs中相同的節點定義在aks中建立集群。然後,編輯yaml以支援aks定義和位置,並使用現有ci/cd管道部署到新服務主機。**存在後,可以在將使用者遷移到新服務之前使用現有測試工具和技術對其進行測試。

完成所有操作後,使用者可以利用支援virtual kubelet的完全託管環境並獲得自動更新,從而免受安全問題的影響,例如最近公布和修復的kubernetes許可權公升級錯誤。

微軟Azure容器服務要關停,你想好怎麼遷移了嗎?

最近,微軟宣布將於2020年1月正式暫停其acs azure container service 服務,並鼓勵acs使用者將其分布式基礎架構轉移到新推出的azure kubernetes service服務上,這對微軟來說是乙個合乎邏輯的舉動。雖然acs將繼續支援docker swarm和mesos...

微軟Azure容器服務要關停,你想好怎麼遷移了嗎?

最近,微軟宣布將於2020年1月正式暫停其acs azure container service 服務,並鼓勵acs使用者將其分布式基礎架構轉移到新推出的azure kubernetes service服務上,這對微軟來說是乙個合乎邏輯的舉動。雖然acs將繼續支援docker swarm和mesos...

微軟Azure雲服務需要SDN

微軟的雲產品azure遍布在世界各地的22個超大規模的區域。azure的儲存和計算每六個月就會翻一番,azure每個月新增9萬使用者。世界500強中有百分之五十七的企業都在使用azure,主機的數量迅速從10萬增長到幾百萬。這是azure cto在2015 open networking summi...