本篇文章作為一個經驗談,探討於 AWS EKS 的環境中要如何避免 IP 發放完畢。
對於 Kubernetes 來說,CNI 負責的功能主要有兩個,分別是 IPAM 以及 Network Connectivity.
公有雲管理的 Kubernetes 為了讓整體操作環境可以與其雲端內的其他元件有更好的整合,通常都會開發屬於自己的 CNI 系統,譬如 Azure, AWS, Google 都有這方面的設計。
這種設計的最大好處就是可以將 Pod 使用的 IP地址透過本來 VPC 內的設計去管理,而本文要討論的就是 AWS EKS 環境中可能會遇到的 IP 地址分配問題。
EKS 預設會使用 AWS VPC CNI 來提供相關服務,其底層實作主要牽扯到底層 ENI 的配置與設定,主要會影響到底還有多少個 IP 地址可以用來分配給新的 Pod 使用。
從 Cluster 的角度來看,要先注意的 VPC 內的網段設定,如果一開始分割的子網段是/28,這情況下你整個叢集內只能有30個左右的 IP 地址可以發放,這數量根本完全不太夠使用。
從單一節點的角度來看,要注意每個節點上可以配置多少個 ENI 以及每個 ENI 能夠配置多少網卡
該 CNI 分配 IP 時會先想辦法把現有網卡上面能夠分配的 IP 填滿,一旦填滿就會創立新的網卡,接者繼續分配 IP,當運行的 Pod 數量超過節點上現時就沒有辦法繼續分配 IP。
官方針對這種情況提供了一個公式去計算
(Number of network interfaces for the instance type × (the number of IP addressess per network interface - 1)) + 2
對於一個 m5.large 的機器來說,支援三張 ENI,且每個都有 10 個 IP 可以分配,因此根據上述公式
(3*(10-1))+2 = 29, 意味 m5.large 的機器上最多只能運行29個不使用 hostnetwork:true 的 Pod。
為了解決這些問題,作者提出了兩個想法,分別是
1. Adding additional IPv4 CIDR blocks to VPC
2. Change VPC CNI to Calico CNI
對這兩個想法有興趣的可以參考原文囉
https://matiaszilli.medium.com/avoiding-ip-consumption-in-amazon-eks-32fc7320253d
「aws instance type」的推薦目錄:
- 關於aws instance type 在 矽谷牛的耕田筆記 Facebook 的最佳貼文
- 關於aws instance type 在 Amazon Web Services Facebook 的最讚貼文
- 關於aws instance type 在 Kewang 的資訊進化論 Facebook 的精選貼文
- 關於aws instance type 在 Amazon EC2 Instance Types Deep Dive - YouTube 的評價
- 關於aws instance type 在 Meaning of the number in AWS instance type name 的評價
- 關於aws instance type 在 Data Plane - EKS Best Practices Guides 的評價
- 關於aws instance type 在 ReinvenTek - #AWS #EC2 Instance Types 的評價
aws instance type 在 Amazon Web Services Facebook 的最讚貼文
本次一個小時的線上研討會將從硬體角度出發,深入介紹何為AMD 的Infinity 創新架構,能使系統構建師和雲端架構師在不犧牲電源、易管理性或幫助保護組織最重要資產(資料)的能力的首要前提下,釋放最新的服務器效能;並介紹在不同應用場景下,AMD的架構如何能帶來效能提升、以及節省總持有成本。最後並範例操作如何在AWS上無痛轉移現有系統至AMD instance。報名:https://bit.ly/3n33yRH
aws instance type 在 Kewang 的資訊進化論 Facebook 的精選貼文
這是一個警世的故事!
在使用 AWS 服務的時候要注意看清楚各項付費標準啊,RDS 在選擇 Production 跟 Dev/Test 的時候,兩個的預設值是不一樣的。
* Production
* multi-AZ 預設開啟 (每小時單價 * 2)
* instance type 預設 db.m3.xlarge ($0.485 / 小時)
* Dev/Test
* multi-AZ 沒預設值,要讓你自己選擇
* instance type 沒預設值,但有選項可以讓你只看到 free tier (db.t2.micro:$0.026 / 小時)
小編一直覺得 AWS 的 UI 很醜,UX 又不直覺。不過在 RDS 要付費的項目上面,UX 做的還算是 OK 了啦。
---
至於為什麼會提到這件事情,是因為最近幫朋友在整理 AWS 機器的時候,發現 RDS 的帳單有點誇張了。原本在 A region,後來朋友說要改到 C region,最後不知道為什麼工程師會在 A 上面多開了 db.t2.medium 跟 db.m4.xlarge。
這就算了,連不相干的 B 也開了一台 db.m4.xlarge Orz。最後總算在 C 開了機器,不過不知道為什麼又開了 db.m3.large 及 db.m4.xlarge Orz,然後原本的 A:db.t2.medium、A:db.m4.xlarge、B:db.m4.xlarge 也沒關掉,然後就這樣子開始燒錢 囧rz
後來花了一點時間幫朋友整理了一下機器,因為資料量很少,所以都改用 db.t2.small,RDS 現在應該可以回到一二月時的水準,相差快 30 倍。
---
以上幾個讓人嚇傻的帳單項目,讓小編不得不寫這篇出來,開機器的時候有幾個項目要先注意一下啊!
* 還沒有 production-ready 的時候,記得先在本機架環境就好,不要直接上 AWS 花錢
* 還沒有流量的時候,機器先開最小的 db.t2.micro 就可以了,不用開到 db.m4.xlarge,這單價至少有 40 倍以上的差距
* 機器開錯的話,請馬上調整 instance type 或是直接 terminate,每開一分鐘都要錢的
* multi-AZ 主要是拿來做 HA,有必要再打開就好,感謝 Triton Ho 提醒
* RDS 的 Security Group 記得設定好,只讓內網的 EC2 連就可以了,裸奔很恐怖的啊
#aws #rds
aws instance type 在 Data Plane - EKS Best Practices Guides 的推薦與評價
Use many different EC2 instance types¶. Each AWS region has a limited number of available instances per instance type. If you create a cluster that uses only ... ... <看更多>
aws instance type 在 Amazon EC2 Instance Types Deep Dive - YouTube 的推薦與評價
Learn about Amazon EC2 Instance Types, Burstable Instances, and T2/T3!If you want to learn more: ... ... <看更多>