次のものを使用して、kubernetes クラスターのセットアップに取り組んでいます。
- クラウドプロバイダーとしてのAWS
- クラスターを作成および管理するための cli ツールとしてのkops (バージョン 1.6.0-alpha、テストのみ)
- クラスターを制御するkubectl (サーバー: v1.6.2 およびクライアント: 1.6.0)
- ローカル OS としての Ubuntu 16
次のものを含む単純な k8s クラスターがあります。
- AWS リージョン: us-west-2
- 1 つのマスター: t2.medium / k8s-1.5-debian-jessie-amd64-hvm-ebs-2017-01-09
- 1 つのノードonver: t2.medium / k8s-1.5-debian-jessie-amd64-hvm-ebs-2017-01-09
また、クラスター上にいくつかのポッドをデプロイし、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
ただし、ストレス コンテナーを含むポッドを使用してノードにストレスをかけた後、何も起こらず (100% の CPU 使用率)、自動スケーリング グループは変更されません。
一方、kops の出力を terraform にエクスポートしますが、CPU 使用率に基づいて自動スケーリングを生成するための自動スケーリング ポリシーはありません。
最後に、k8s ブログで、AWS によって将来的にサポートされることを示す エントリを見つけることができましたが、それに関する他の発表はありません。
AWS と kops でのそのタスクに関する提案や経験はありますか? 次に、テストのためだけに自動スケーリング ポリシーを手動で生成してみます。