05/21 2020

AWS EKS Fargate 建置及服務佈署(上)

aws架構師專欄banner

隨著近日 Kubernetes (K8s) 的詢問度越來越高,架構師也陸續接到在 AWS 上營運 Kubernetes 的需求。其中最受歡迎的就是 AWS 上的 Kubernetes 服務 – EKS,就讓我們一起來看看 AWS EKS 服務的建置流程及相關應用吧!

AWS EKS Fargate

對於k8s架構,會有Master及Node (如下圖),在自建k8s架構時,需自行準備機器,進行環境建造、k8s佈建等步驟,還需要負擔機器的維運時間人力成本。

AWS EKS Fargate 為AWS上提供K8s代管的服務,下圖Master及Node節點都不用煩惱上面所提到的機器相關建置維護,只需要開啟AWS EKS Fargate服務,由AWS 幫你代管並提供高可用的Master、Node資源,這能直接使用k8s集群服務。

 

架構說明

這裡先說明一些服務功能:

VPC :EKS 所在的區域網路,透過Subnet來劃分對外網段與內部網段
Public Subnet :對外網段,主要是提供外網與內網封包轉換區域(透過nat gateway 及 Application Load Balancer)
Private Subnet:內部網路,放置k8s pod所在區域,避免pod直接暴露在對外網路。
Internet Gateway:整體VPC對外網路閘道。
NAT Gateway: 將掛載外部IP,並提供POD網路對外流量出口統一IP
Application Load Balancer:提供有需要對外服務的入口點,並將服務需求流量轉發至後端。

此架構為高可用架構,透過分散運算資源於三個不同電力系統的機房,避免單點故障造成服務中斷。

※這次實作不包含Route53、ECR

先決條件

注意事項

  • 以下皆使用:Linux 環境當作操作機進行建置
  • 只能在us-east-1美國東部(弗吉尼亞北部),us-east-2美國東部(俄亥俄州),eu-west-1歐洲(愛爾蘭)和ap-northeast-1亞太地區(東京 ) 建置

前置作業

  • 取得AWS Access Key
  • eksctl 安裝
  • AWS CLI 最新版
  • kubectl安裝
  • jq安裝
  • 對k8s有基礎的認識

 

作業流程

建立AWS EKS 叢集

  • 登入操作機(Linux)
  • 設定AWS CLI 連接設定

aws configure

  • 輸入環境變數
    AWS_REGION=建置的區域(請看先決條件第二注意事項可建置區域)
    CLUSTER_NAME=自定義名稱

AWS_REGION=eu-west-1
CLUSTER_NAME=eks-fargate-alb-lab 

  • 執行eksctl 指令開始AWS EKS Fargate 佈署 (這裡需要等待一段時間)

eksctl create cluster –name $CLUSTER_NAME –region $AWS_REGION –fargate 

這裡大致說明這段指令的工作流程:
指令執行後,首先會在佈署目的的AWS帳號及區域中啟動一筆Cloudformation 模板執行佈署,並依序自動建置
VPC(包含NAT) → EKS Cluster → Fargate Profiles

  • 使用 kubectl 來測試

kubectl get nodes
kubectl get pod –all-namespaces 

這樣就完成啦!想不到設定這麼容易吧~

下一篇我們將針對 Load Balance 及測試再作介紹喔!

 

請持續鎖定 Nextlink 架構師專欄,以獲得最新專業資訊喔!

若您有任何 AWS 需求,歡迎與我們聯繫!