2017-04-25 105 views
2

我成立了一個kubernetes我的工作集羣中使用以下材料:Kubernetes自動縮放節點通過AWS

  • AWS作爲一個雲提供商
  • KOPS(版本1.6.0-α,只是爲了測試)爲CLI工具來創建和管理集羣
  • kubectl(服務器:V1.6.2和客戶端:1.6.0)來控制我的集羣
  • Ubuntu的16作爲本地OS

我有一個簡單的K8S有以下東西羣集:

  • AWS區域:美西2
  • 一個過來:t2.medium /K8S-1.5-Debian的傑西-AMD64的HVM-EBS-2017年1月9日
  • 一個節點 onver:t2.medium /K8S-1.5-Debian的傑西-AMD64小時VM-EBS,2017年1月9日

我也有一些豆莢部署集羣過來,我創建JMeter的壓力測試產生虛假流量。

我的問題是如何在aws上使用kops在aws上創建一個自動縮放節點?

我剛在kops倉庫中發現了以下ad-don kops addons。我按照文檔的說法進行了部署,並且可用。

我的參數爲:

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 

然而,使用與壓力容器無一莢脅迫後我的節點發生(100%的CPU使用率)和我的自動縮放組不會被修改。

cpu utilization

auto-scaling group

在另一方面,我出口在terraform KOPS輸出但有1A中未自動縮放策略生成CPU利用率自動縮放基地。

最後,我可以在k8s博客中找到一個entry,這表明它將在未來得到AWS的支持,但沒有其他聲明。

AWS和kops中的任何建議或經驗?接下來,我將嘗試手動生成自動擴展策略來測試。

回答

1

首先你should use autoscaler gcr.io/google_containers/cluster-autoscaler:v0.5.0當使用Kubernetes 1.6.x

其次,根據我的理解,自動縮放器本身只能縮放ASG,如果在Pending狀態中有一個窗格,因爲它不適合任何現有節點。

對於您的使用案例,Horizontal Pod Autoscaling將在高負載下擴展您的應用程序(正在強調),請務必在podspec中提及requests部分。一旦自動調節器看到新縮放的豆莢不適合節點,它將啓動新的節點。

聲明:我還沒有玩過Horizo​​ntal Pod Autoscaling。

+0

它也會有用。謝謝! – afym

0

經過審查kops(open issues related with auto scaling)我找不到節點自動縮放的選項,正如我在我的問題中所寫的,我正在尋找節點自動縮放。也許在新版本的kops中會考慮。但是,我決定使用terraform從頭開始設置一個kubernetes v1.5.4,考慮節點中的自動縮放。如果有人對我的實施感興趣,源代碼位於我的個人回購站:: kubernetes cluster v1 with terraform (afym)

我會用這個基礎來設置生產中的集羣。我希望它可以幫助某人。

謝謝,如果有人在kops中找到自動縮放配置選項,它將會很棒。