【每周快報】0902-0908 AWS 服務更新
前言
這周 AWS 終於正式發布去年在 re:Invent 上提及的 Amazon Elastic Kubernetes Service Anywhere!先前許多 EKS 使用者在實作混合雲時,需要學兩套管理資源的方式,包含 AWS 雲端上的 EKS,以及地端的容器化應用程式管理。現在只要透過 EKS Anywhere,使用者就可以在地端環境中部署、運行 Kubernetes 應用程式!
除了這項重要的新服務,文中也將介紹 Amazon EFS、Amazon S3 Intelligent-Tiering、Amazon Monitron…等服務的新功能與計價方式的調整。
Amazon Elastic Kubernetes Service Anywhere 正式發佈
AWS 在去年 re:Invent 2020 時就已經先預告將支援更多元部署容器化服務的選項,包含 AWS Elastic Container Service (AWS ECS) Anywhere 以及 AWS Elastic Kubernetes Service Anywhere (AWS EKS),可直接將容器化的服務部署在本地端或是企業自建的機房等。
過去使用者在部署容器化服務時,若是想要將容器化服務部署在本地端時,需要自行安裝和設定許多管理套件或是下載多個開放原始碼和第三方工具,且所有的資源還是託管在 AWS 上。造成要管理地端和雲端的兩套系統時兩邊資料時常會有不同步的狀況發生。而在今天,使用者只需透過 VMware 所提供的伺服器虛擬化軟體 – vSphere,就能輕鬆將 EKS Anywhere 打包成下載套件,在本地端執行 Kubernetes cluster 且能使用自動化管理套件去管理 cluster 狀態減少管理成本的開銷,和減少對第三方套件使用的依賴。其目標是管理多個 Kubernetes cluster 的完整生命週期,這些 cluster 能夠完全獨立於任何 AWS 服務上運行,同時 EKS Anywhere 還能善用 Amazon EKS Distro,讓自己本地端與 AWS 上資料能同步管理,以及處理備份和復原等相關操作。
EKS Anywhere 同時也是一項開源的專案,供開發者去提交代碼優化和使用其功能。
我們也可以從下圖表得知,EKS Anywhere 與先前部署容器的方式和託管層級的不同。
就讓我們來實作一下吧!
- 首先,你必須先下載 eks 的 CLI 工具
eksctl
與eksctl-anywhere
的套件 。
$ brew install aws/tap/eks-anywhere
$ eksctl anywhere version
v0.5.0
- 再來,需要創建 Cluster 和 Cluster Config 檔案。
$ CLUSTER_NAME=dev-cluster
$ eksctl anywhere generate clusterconfig $CLUSTER_NAME \
--provider docker > $CLUSTER_NAME.yaml
$ eksctl anywhere create cluster -f $CLUSTER_NAME.yaml
[i] Performing setup and validations
[v] validation succeeded {"validation": "docker Provider setup is valid"}
[i] Creating new bootstrap cluster
[i] Installing cluster-api providers on bootstrap cluster
[i] Provider specific setup
[i] Creating new workload cluster
[i] Installing networking on workload cluster
[i] Installing cluster-api providers on workload cluster
[i] Moving cluster management from bootstrap to workload cluster
[i] Installing EKS-A custom components (CRD and controller) on workload cluster
[i] Creating EKS-A CRDs instances on workload cluster
[i] Installing AddonManager and GitOps Toolkit on workload cluster
[i] GitOps field not specified, bootstrap flux skipped
[i] Deleting bootstrap cluster
[v] Cluster created!
- 當你的 Cluster 創建好之後,
KUBECONFIG
檔案會存在 admin 的機器上並有 admin 的權限,使者者將會使用這個檔案,來啟動後續部署的程序。
$ export KUBECONFIG=${PWD}/${CLUSTER_NAME}/${CLUSTER_NAME}-eks-a-cluster.kubeconfig
$ kubectl get ns
NAME STATUS AGE
capd-system Active 21m
capi-kubeadm-bootstrap-system Active 21m
capi-kubeadm-control-plane-system Active 21m
capi-system Active 21m
capi-webhook-system Active 21m
cert-manager Active 22m
default Active 23m
eksa-system Active 20m
kube-node-lease Active 23m
kube-public Active 23m
kube-system Active 23m
- 當資源創建好之後,你可以使用
kubectl
指令測試服務是否順利開啟,並且部署新的 pod 去運行 cluster,和設定好你要使用的 port。
$ kubectl apply -f "https://anywhere.eks.amazonaws.com/manifests/hello-eks-a.yaml"
$ kubectl get pods -l app=hello-eks-a
NAME READY STATUS RESTARTS AGE
hello-eks-a-745bfcd586-6zx6b 1/1 Running 0 22m
$ kubectl port-forward deploy/hello-eks-a 8000:80
$ curl localhost:8000
⬡⬢⬡⬢⬡⬢⬡⬢⬡⬢⬡⬢⬡⬢⬡⬢⬡⬢⬡⬢⬡⬢⬡⬢⬡⬢⬡⬢⬡⬢⬡⬢⬡⬢⬡⬢⬡⬢⬡⬢⬡⬢⬡⬢⬡⬢⬡⬢⬡⬢⬡⬢⬡⬢⬡⬢⬡⬢
Thank you for using
███████╗██╗ ██╗███████╗
██╔════╝██║ ██╔╝██╔════╝
█████╗ █████╔╝ ███████╗
██╔══╝ ██╔═██╗ ╚════██║
███████╗██║ ██╗███████║
╚══════╝╚═╝ ╚═╝╚══════╝
█████╗ ███╗ ██╗██╗ ██╗██╗ ██╗██╗ ██╗███████╗██████╗ ███████╗
██╔══██╗████╗ ██║╚██╗ ██╔╝██║ ██║██║ ██║██╔════╝██╔══██╗██╔════╝
███████║██╔██╗ ██║ ╚████╔╝ ██║ █╗ ██║███████║█████╗ ██████╔╝█████╗
██╔══██║██║╚██╗██║ ╚██╔╝ ██║███╗██║██╔══██║██╔══╝ ██╔══██╗██╔══╝
██║ ██║██║ ╚████║ ██║ ╚███╔███╔╝██║ ██║███████╗██║ ██║███████╗
╚═╝ ╚═╝╚═╝ ╚═══╝ ╚═╝ ╚══╝╚══╝ ╚═╝ ╚═╝╚══════╝╚═╝ ╚═╝╚══════╝
You have successfully deployed the hello-eks-a pod hello-eks-a-c5b9bc9d8-qp6bg
For more information check out
https://anywhere.eks.amazonaws.com
⬡⬢⬡⬢⬡⬢⬡⬢⬡⬢⬡⬢⬡⬢⬡⬢⬡⬢⬡⬢⬡⬢⬡⬢⬡⬢⬡⬢⬡⬢⬡⬢⬡⬢⬡⬢⬡⬢⬡⬢⬡⬢⬡⬢⬡⬢⬡⬢⬡⬢⬡⬢⬡⬢⬡⬢⬡⬢
如此一來,你就能方便的在本地端虛擬機或是邊緣裝置上部署你的容器化服務了,並且由使用者自己去託管底層架構等,對於使用者來說又有一個更彈性的選擇。
參考來源至:Amazon Elastic Kubernetes Service Anywhere is now generally available
圖片來源至:Amazon EKS Anywhere – Now Generally Available to Create and Manage Kubernetes Clusters on Premises
其他服務更新
-
AWS Local Zones 新增位在芝加哥、堪薩斯城(Kansas City)及明尼亞波里斯(Minneapolis)的據點
-
Amazon EFS 新增 Intelligent-Tiering 功能:透過 Intelligent-Tiering 使用者可以將檔案放置適合的儲存層級,進而幫助使用者優化成本及性能。
-
Amazon S3 Intelligent-Tiering 調整成本計價模式:在過去,存放在 S3 Intelligent-Tiering 的物件如果小於 128 KB 的話,AWS 會收費監控及自動化成本,此次更新後,AWS 移除了這項收費規則。
-
Amazon Monitron 新增 ethernet gateway 裝置:Amazon Monitron 是一套可以幫助監控設備狀態的系統,其中包含了實體的感測器及傳輸資料用的 Gateway Device,當資料傳輸到 AWS 平台後,可串接其餘 AWS 監控、分析的服務來處理資料。此次更新後,Amazon Monitron 新增可用乙太網路來傳輸資料的 Gateway Device,比起過去只能夠透過 Wi-Fi 傳輸,使用者多了一種選擇來連上 Internet。
-
AWS Database Migration Service 支援一次性轉換 MongoDB 成其他資料庫:可以將多個 MongoDB Cluster ,透過 DMS 一次轉換成有支援的資料庫引擎。
-
AWS 推出 EKS Connector 預覽版:EKS Connector 支援將 Kubernetes cluster 連結到 AWS,並能在 EKS Console 中看到這些 Cluster 的狀態、設置及 workloads,讓使用者可以更加方便去查看及管理。