Amazon EKS托管服務(wù),輕松運(yùn)行Kubernetes
所屬頻道:新聞中心
Amazon Elastic Kubernetes Service(Amazon EKS)是一項(xiàng)托管服務(wù),可讓您在 AWS 上輕松運(yùn)行 Kubernetes,而無(wú)需支持或維護(hù)您自己的 Kubernetes 控制層面。Kubernetes 是一個(gè)用于實(shí)現(xiàn)容器化應(yīng)用程序的部署、擴(kuò)展和管理的自動(dòng)化的開(kāi)源系統(tǒng)。
Amazon EKS 跨多個(gè)可用區(qū)運(yùn)行 Kubernetes 控制層面實(shí)例以確保高可用性。Amazon EKS 可以自動(dòng)檢測(cè)和替換運(yùn)行狀況不佳的控制層面實(shí)例,并為它們提供自動(dòng)版本升級(jí)和修補(bǔ)。
Amazon EKS 還與許多 AWS 服務(wù)集成以便為您的應(yīng)用程序提供可擴(kuò)展性和安全性,包括:
用于容器鏡像的 Amazon ECR
用于負(fù)載分配的 Elastic Load Balancing
用于身份驗(yàn)證的 IAM
用于隔離的 Amazon VPC
Amazon EKS 運(yùn)行最新版本的開(kāi)源 Kubernetes 軟件,因此您可以使用 Kubernetes 社區(qū)的所有現(xiàn)有插件和工具。在 Amazon EKS 上運(yùn)行的應(yīng)用程序與在任何標(biāo)準(zhǔn) Kubernetes 環(huán)境中運(yùn)行的應(yīng)用程序完全兼容,無(wú)論此類環(huán)境是在本地?cái)?shù)據(jù)中心還是在公有云中運(yùn)行都是如此。這意味著,您可以輕松地將任何標(biāo)準(zhǔn) Kubernetes 應(yīng)用程序遷移到 Amazon EKS,而無(wú)需進(jìn)行任何代碼修改。
Amazon EKS 工作原理
Amazon EKS 可為您預(yù)配置(啟動(dòng))和管理 Kubernetes 控制平面??傮w來(lái)說(shuō),Kubernetes 由兩大組件構(gòu)成 – 運(yùn)行容器的工作節(jié)點(diǎn)集群和管理容器在集群上的啟動(dòng)時(shí)間和位置并監(jiān)控容器狀態(tài)的控制平面。
如果不使用 Amazon EKS,您需要自行管理 Kubernetes 控制平面和工作節(jié)點(diǎn)集群。借助 Amazon EKS,您可以使用Amazon 系統(tǒng)鏡像 (AMI) 和 AWS CloudFormation 腳本預(yù)置工作節(jié)點(diǎn)集群,而 AWS 負(fù)責(zé)使用高可用且安全的配置來(lái)預(yù)置、擴(kuò)展和管理 Kubernetes 控制平面,從而消除了運(yùn)行 Kubernetes 的繁重運(yùn)維負(fù)擔(dān),讓您能夠?qū)W⒂趹?yīng)用程序構(gòu)建而非 AWS 基礎(chǔ)設(shè)施管理。
Amazon EKS 優(yōu)勢(shì)
Amazon EKS具備如下優(yōu)勢(shì):
無(wú)需管理控制平面:
Amazon EKS 可跨多個(gè) AWS 可用區(qū)運(yùn)行 Kubernetes 管理基礎(chǔ)設(shè)施、自動(dòng)檢測(cè)和替換運(yùn)行狀況不佳的控制平面節(jié)點(diǎn),并提供按需升級(jí)和修補(bǔ)。您只需預(yù)置工作節(jié)點(diǎn)并將其連接到提供的 Amazon EKS 終端節(jié)點(diǎn)。
默認(rèn)確保安全:
系統(tǒng)會(huì)自動(dòng)在工作節(jié)點(diǎn)和托管的控制平面之間設(shè)置安全、加密的通信渠道,在默認(rèn)情況下保護(hù) Amazon EKS 上運(yùn)行的基礎(chǔ)設(shè)施的安全。
通過(guò)社區(qū)構(gòu)建:
通過(guò)主動(dòng)與 Kubernetes 社區(qū)合作,其中包括為 Kubernetes 代碼庫(kù)做貢獻(xiàn),可以幫助 Amazon EKS 用戶充分利用 AWS 產(chǎn)品和功能。
一致和兼容:
Amazon EKS 可運(yùn)行上游 Kubernetes,且經(jīng)認(rèn)證可與 Kubernetes 兼容,因此 Amazon EKS 托管的應(yīng)用程序與所有標(biāo)準(zhǔn) Kubernetes 環(huán)境托管的應(yīng)用程序完全兼容。
Amazon EKS客戶案例
SafetyCulture 通過(guò)創(chuàng)新、低成本的移動(dòng)第一產(chǎn)品,幫助公司在世界各地實(shí)現(xiàn)更安全、更高質(zhì)量的工作場(chǎng)所。
整個(gè)應(yīng)用程序的架構(gòu)如下圖所示:

“作為一家快速發(fā)展的初創(chuàng)公司,SafetyCurtulture 對(duì)亞馬遜 EKS 在現(xiàn)有的 AWS 環(huán)境中快速實(shí)施 Kubernetes 的機(jī)會(huì)感到興奮。我們已經(jīng)實(shí)現(xiàn)了 EKS 服務(wù),這使我們能夠立即集中精力展示 Kubernetes 提供的好處,并開(kāi)始遷移我們的一些開(kāi)源工作負(fù)載。安全文化已經(jīng)利用許多開(kāi)源技術(shù)為我們的客戶提供價(jià)值(例如,React、Docker、Kafka、ElasticSearch、Postgres、Golang),Kubernetes 自然適合我們的云本地應(yīng)用程序堆棧?!?/span>
- Tim Curtin, Engineering Team Lead
SafetyCulture
● 采用 Amazon EKS 的部分客戶 ●
動(dòng)手實(shí)踐 AWS EKS
EKS服務(wù)目前已在由光環(huán)新網(wǎng)運(yùn)營(yíng)的AWS中國(guó)(北京)區(qū)域和由西云數(shù)據(jù)運(yùn)營(yíng)的AWS(寧夏)區(qū)域上線,以下教程將指導(dǎo)您在 AWS 管理控制臺(tái)中創(chuàng)建 Amazon EKS 所需的所有資源。
● 先決條件 ●
您已創(chuàng)建符合 Amazon EKS 集群要求的 VPC 和專用安全組。有關(guān)更多信息,請(qǐng)參閱集群 VPC 注意事項(xiàng)和Amazon EKS 安全組注意事項(xiàng)。AWS 管理控制臺(tái)入門(mén)指南創(chuàng)建符合要求的 VPC,您也可以按照為您的 Amazon EKS 集群創(chuàng)建 VPC。來(lái)創(chuàng)建 VPC。
您已創(chuàng)建要應(yīng)用于集群的 Amazon EKS 服務(wù)角色。Amazon EKS 入門(mén)指南創(chuàng)建服務(wù)角色,您也可以按照Amazon EKS IAM 角色手動(dòng)創(chuàng)建服務(wù)角色。
安裝最新的 AWS CLI,請(qǐng)確保您的AWS CLI 的版本為1.16.308 或更高版本,要安裝或升級(jí) AWS CLI,請(qǐng)參閱 AWS Command Line Interface 用戶指南中的安裝 AWS 命令行界面
kubectl,您必須使用與您的 Amazon EKS 集群控制層面不同的一個(gè)次要版本內(nèi)的 kubectl 版本,請(qǐng)參考 安裝 kubectl
● 安裝步驟 ●
1、打開(kāi) Amazon EKS管理控制臺(tái):
https://cn-northwest-1.console.amazonaws.cn/eks/home
2、選擇 Create cluster(創(chuàng)建集群)
3、在 Create cluster(創(chuàng)建集群)頁(yè)面上,填寫(xiě)以下字段,然后選擇 Create(創(chuàng)建):
Cluster name(集群名稱)– 集群的唯一名稱。
Kubernetes version(Kubernetes 版本)– 要用于集群的 Kubernetes 的版本。除非您需要為應(yīng)用程序使用特定的 Kubernetes 版本,否則,我們建議您使用 Amazon EKS 中可用的最新版本。
Role name(角色名稱)– 選擇 Amazon EKS 服務(wù)角色以允許 Amazon EKS 和 Kubernetes 控制層面來(lái)代表您管理 AWS 資源。有關(guān)更多信息,請(qǐng)參閱 Amazon EKS IAM 角色。
VPC – 要用于集群的 VPC。
Subnets(子網(wǎng))– 上述 VPC 中的要用于集群的子網(wǎng)。默認(rèn)情況下,已預(yù)先選中 VPC 中的可用子網(wǎng)。指定將為集群托管資源的所有子網(wǎng)(例如,為工作節(jié)點(diǎn)指定私有子網(wǎng),并為負(fù)載均衡器指定公有子網(wǎng))。您的子網(wǎng)必須滿足 Amazon EKS 集群的要求。有關(guān)更多信息,請(qǐng)參閱 集群 VPC 注意事項(xiàng)。
Security Groups(安全組):您通過(guò)創(chuàng)建您的 Amazon EKS 集群 VPC生成的 AWS CloudFormation 輸出中的 SecurityGroups 值。此安全組具有下拉列表名稱中的 ControlPlaneSecurityGroup。
終端節(jié)點(diǎn)私有訪問(wèn) – 選擇是啟用還是禁用集群的 Kubernetes API 服務(wù)器終端節(jié)點(diǎn)的私有訪問(wèn)。如果啟用私有訪問(wèn),源自集群的 VPC 內(nèi)的 Kubernetes API 請(qǐng)求將使用私有 VPC 終端節(jié)點(diǎn)。有關(guān)更多信息,請(qǐng)參閱 Amazon EKS 集群終端節(jié)點(diǎn)訪問(wèn)控制。
終端節(jié)點(diǎn)公有訪問(wèn) – 選擇是啟用還是禁用集群的 Kubernetes API 服務(wù)器終端節(jié)點(diǎn)的公有訪問(wèn)。如果禁用公有訪問(wèn),集群的 Kubernetes API 服務(wù)器只能接收來(lái)自集群 VPC 內(nèi)的請(qǐng)求。有關(guān)更多信息,請(qǐng)參閱 Amazon EKS 集群終端節(jié)點(diǎn)訪問(wèn)控制。
日志記錄 – 對(duì)于每個(gè)日志類型,選擇該日志類型應(yīng)該是已啟用還是已禁用。默認(rèn)情況下,每個(gè)日志類型均為已禁用。有關(guān)更多信息,請(qǐng)參閱 Amazon EKS 控制層面日志記錄。
Tags(標(biāo)簽)–(可選)將任意標(biāo)簽添加到您的集群。有關(guān)更多信息,請(qǐng)參閱 標(biāo)記 Amazon EKS 資源。
4、在 Clusters(集群)頁(yè)面上,選擇新集群的名稱以查看集群信息。
5、Status(狀態(tài))字段顯示 CREATING(正在創(chuàng)建),直至集群配置過(guò)程完成。在配置完集群(通常在 10 到 15 分鐘內(nèi)完成)后,記下 API server endpoint(API 服務(wù)器終端節(jié)點(diǎn))和 Certificate authority(證書(shū)頒發(fā)機(jī)構(gòu))值。kubectl 配置中將使用這些值。
6、現(xiàn)已創(chuàng)建集群,請(qǐng)按照安裝 aws-iam-authenticator 和為 Amazon EKS 創(chuàng)建 kubeconfig 中的過(guò)程來(lái)支持與新集群的通信。
7、啟用通信后,請(qǐng)按照啟動(dòng) Amazon EKS Linux 工作節(jié)點(diǎn)中的過(guò)程來(lái)將 Linux 工作節(jié)點(diǎn)添加到您的集群以支持工作負(fù)載。
(審核編輯: 智匯小新)
分享