導入
アクセスが増えたら Pod を増やし、落ち着いたら減らす。この スケール(scaling) も、Deployment なら簡単です。やり方には「命令的」と「宣言的」の2通りがあり、両方知っておくと使い分けられます。
説明
Pod の数を増やすことを スケールアウト、減らすことを スケールイン と呼びます(同じ Pod を横に並べて増やすので 水平スケール とも)。方法は2つあります。
1. コマンドで直接変える(命令的・手早い)
# web-deploy のPodを5個にする
kubectl scale deployment web-deploy --replicas=5
# 反映を確認
kubectl get deployment web-deploy
# NAME READY UP-TO-DATE AVAILABLE AGE
# web-deploy 5/5 5 5 10m
2. マニフェストの replicas を書き換えて apply(宣言的・記録が残る)
spec:
replicas: 5 # 3 から 5 に変更
kubectl apply -f deploy.yaml
2つの違いは、あるべき状態がどこに残るかです。コマンド(方法1)は手早い反面、マニフェストのファイルは古いまま(3個)なので、あとで誰かがそのファイルを apply すると3個に戻ってしまいます。第1章で学んだ宣言的の考え方に忠実なのは方法2で、マニフェストこそが正という運用(Gitで管理するなど)ではこちらを使います。
ここまでは人間が数字を決める手動スケールです。「アクセス量に応じて Kubernetes が自動で個数を増減する」自動スケール(HPA / Horizontal Pod Autoscaler) もありますが、これは第6章で扱います。まずは「replicas を変えれば、あとは Kubernetes が数を合わせてくれる」感覚を掴んでください。