Kubernetes應(yīng)用于多云、混合云環(huán)境時(shí),要注意這些
?為了在競爭中保持領(lǐng)先地位,各組織不斷尋求以快速和敏捷的方式推動(dòng)創(chuàng)新,同時(shí)最大化運(yùn)營和經(jīng)濟(jì)效率。為此,他們已經(jīng)將應(yīng)用程序遷移到多云和混合云環(huán)境已有相當(dāng)一段時(shí)間了。
最初,這些應(yīng)用程序使用“l(fā)ift-and-shift”的方法遷移到云,保留了它們原來的單體架構(gòu)。然而,這種單體應(yīng)用程序無法充分利用云提供的優(yōu)勢,如彈性和分布式計(jì)算,并且也難以維護(hù)和擴(kuò)展。
因此,作為下一個(gè)進(jìn)化步驟,組織已經(jīng)開始重新構(gòu)建其現(xiàn)有的單體應(yīng)用程序或開發(fā)新的容器化應(yīng)用程序。
然而,部署和管理容器化應(yīng)用程序是一項(xiàng)復(fù)雜的任務(wù),這就是Kubernetes的用武之地。Kubernetes(也稱為K8s),這個(gè)最初由谷歌開發(fā)的容器編排工具,已迅速成為在公共和私有云中部署容器化應(yīng)用程序的首選平臺(tái)。
通過使用K8s,組織能夠在公共和私有云中成功地初步部署和管理這些容器化應(yīng)用程序。然而,他們在隨后的步驟中遇到了困難,例如以簡單和自動(dòng)化的方式讓最終用戶可以從外部訪問Kubernetes應(yīng)用程序,同時(shí)仍然保留控制權(quán),以確保安全可靠地訪問這些應(yīng)用程序。
其主要原因是,用于前端這些應(yīng)用程序并使其可供最終用戶訪問的傳統(tǒng)負(fù)載均衡器在設(shè)計(jì)時(shí)考慮了單體應(yīng)用程序,因此無法跟上部署這些Kubernetes應(yīng)用程序的敏捷方式。
這些負(fù)載均衡器是為部署過程而設(shè)計(jì)的,在該過程中,應(yīng)用程序的網(wǎng)絡(luò)資源由網(wǎng)絡(luò)和安全團(tuán)隊(duì)手動(dòng)配置,該過程可能需要幾天甚至幾周,然后在負(fù)載均衡器上手動(dòng)配置。這個(gè)過程顯然不適合與Kubernetes應(yīng)用程序的部署過程同步,從而成為整個(gè)部署過程中的瓶頸。
進(jìn)一步加劇這個(gè)問題的是,在多云和混合云環(huán)境中部署應(yīng)用程序時(shí),每個(gè)公共云提供商都有自己的自定義負(fù)載均衡器和管理系統(tǒng)。
例如,AWS有自己的彈性負(fù)載均衡解決方案,它不同于Microsoft的Azure負(fù)載均衡器。這使得自動(dòng)化應(yīng)用程序部署的任務(wù)更加復(fù)雜和耗時(shí)。它還使得在不同的云環(huán)境中應(yīng)用一致的策略集的任務(wù)容易出錯(cuò),因?yàn)槊總€(gè)負(fù)載均衡器都有自己的獨(dú)立配置和操作。
那么,解決方案是什么?
為了跟上Kubernetes應(yīng)用程序的部署,需要一種訪問解決方案,使負(fù)載均衡器能夠在部署和擴(kuò)展這些應(yīng)用程序時(shí)動(dòng)態(tài)管理它們。
實(shí)現(xiàn)這一點(diǎn)的一種方法是部署入口控制器或連接器代理,將外部負(fù)載均衡器連接到Kubernetes應(yīng)用程序。這種連接器可以監(jiān)控這些應(yīng)用程序的生命周期,并使用信息自動(dòng)更新負(fù)載均衡器,以將流量路由到它們。這將極大地簡化和自動(dòng)化配置外部負(fù)載均衡器的過程,因?yàn)樾路?wù)部署在K8s集群中,從而消除與手動(dòng)配置過程相關(guān)的延遲。
除了支持外部負(fù)載均衡器的動(dòng)態(tài)和自動(dòng)配置外,解決方案理想情況下還應(yīng)具有以下屬性:
- 云不可知:當(dāng)部署在單個(gè)云中時(shí),上述過程可以工作,但要真正使其在多云和混合云環(huán)境中工作,解決方案應(yīng)該以不同的形式提供,如物理、虛擬和容器,以便可以在公共和私有云中部署。擁有跨不同云環(huán)境一致工作的解決方案還提供了相關(guān)的好處,即能夠應(yīng)用一組一致的策略來訪問應(yīng)用程序,而不管應(yīng)用程序運(yùn)行在哪個(gè)云中。這將導(dǎo)致更安全的部署,并避免在將配置從一個(gè)云部署移植到另一個(gè)部署時(shí)出現(xiàn)潛在錯(cuò)誤。
- 支持自動(dòng)化工具:解決方案應(yīng)支持自動(dòng)化工具,如Terraform、Ansible和Helm,以便整個(gè)應(yīng)用程序部署和日常操作過程可以自動(dòng)化。
- 靈活的許可模式:該解決方案應(yīng)提供軟件訂閱模式,使組織能夠通過跨多個(gè)站點(diǎn)分配和分配容量來優(yōu)化成本,以適應(yīng)不斷變化的業(yè)務(wù)和應(yīng)用需求。
- 集中式可視性和分析:最后,解決方案應(yīng)提供集中式可視和分析。這將實(shí)現(xiàn)主動(dòng)故障排除和快速根本原因分析,從而提高應(yīng)用程序的正常運(yùn)行時(shí)間,以確保最終用戶的滿意度。
將應(yīng)用程序作為容器化應(yīng)用程序遷移到多云和混合云環(huán)境有許多好處,包括更高的靈活性和操作效率。然而,遺留負(fù)載均衡器是為管理單體應(yīng)用程序而構(gòu)建的,可能會(huì)阻礙部署容器化應(yīng)用程序,從而阻礙訪問云部署的全部好處。
此外,使用特定于云的負(fù)載平衡器會(huì)增加管理混合云基礎(chǔ)設(shè)施的復(fù)雜性。通過部署連接到外部負(fù)載平衡器的入口控制器或連接器代理,IT團(tuán)隊(duì)可以在K8s集群內(nèi)部署新服務(wù)時(shí)更有效地簡化和自動(dòng)化配置外部負(fù)載均衡器的過程。
原文鏈接:https://thenewstack.io/kubernetes-applications-for-multicloud-hybrid-cloud-environs/