[英]Kubernetes auto-scaling nodes over AWS
我正在使用以下內容設置kubernetes集群:
我有一個簡單的k8s集群,其中包含以下內容:
我還在群集上部署了一些pod,我創建了jmeter壓力測試以生成人工流量。
我的問題是如何使用kops over aws在k8s集群上創建自動縮放節點?
我剛剛在kops存儲庫中找到了以下ad-don kops插件 。 我按照文檔的說法進行部署,並且可以使用。
我的參數是:
CLOUD_PROVIDER=aws
IMAGE=gcr.io/google_containers/cluster-autoscaler:v0.4.0
MIN_NODES=1
MAX_NODES=3
AWS_REGION=us-east-2
GROUP_NAME="<the-auto-scaling-group-Name>"
SSL_CERT_PATH="/etc/ssl/certs/ca-certificates.crt" # (/etc/ssl/certs for gce)
$ kubectl get deployments --namespace=kube-system
NAME DESIRED CURRENT UP-TO-DATE AVAILABLE AGE
cluster-autoscaler 1 1 1 1 3h
dns-controller 1 1 1 1 3h
kube-dns 2 2 2 2 3h
kube-dns-autoscaler 1 1 1 1 3h
kubernetes-dashboard 1 1 1 1 3h
但是,在壓力之后我的節點使用帶有壓力容器的pod沒有任何事情發生(100%cpu利用率)並且我的自動縮放組沒有被修改。
另一方面,我以terraform導出kops輸出但是沒有自動縮放策略來根據cpu利用率生成自動縮放。
最后,我可以在k8s博客中找到一個條目 ,表明它將來會得到AWS的支持,但沒有其他公告。
在AWS和kops中對該任務有任何建議或經驗嗎? 接下來,我將嘗試手動生成自動縮放策略以進行測試。
首先,在使用Kubernetes 1.6.x
時,您應該使用 gcr.io/google_containers/cluster-autoscaler:v0.5.0
gcr.io/google_containers/cluster-autoscaler:v0.5.0。
其次,根據我的理解,如果存在處於Pending
狀態的窗格,則自動縮放器本身僅縮放ASG,因為它不適合任何現有節點。
對於您的用例, Horizontal Pod Autoscaling會在高負載時擴展您的應用程序(正在受到壓力),請務必提及podspec中的requests
部分。 一旦autoscaler看到新縮放的pod不適合節點,它將啟動新節點。
免責聲明:我還沒有使用Horizontal Pod Autoscaling。
在審查kops( 與自動縮放相關的開放問題 )后,我找不到節點自動縮放的選項,正如我在我的問題中寫的那樣,我正在尋找節點自動縮放。 也許在新版本的kops中會考慮。 但是,我決定使用terraform從頭開始設置kubernetes v1.5.4節點中的自動縮放。 如果有人對我的實現感興趣,源代碼在我的個人repo :: kubernetes集群v1中,帶有terraform(afym) 。
我會用這個基礎在生產中設置集群。 我希望它可以幫助別人。
謝謝,如果有人在kops中找到自動縮放配置選項,那就太棒了。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.