コンテンツにスキップ

オートスケーリング

Knative Servingは、**オートスケーリング**とも呼ばれる自動スケーリングを提供します。つまり、Knativeサービスは、デフォルトでは、使用されていないときに実行中のPod数をゼロにスケールダウンします。

Knativeサービスの一覧表示

Knative(`kn`)CLIを使用して、KnativeサービスがホストされているURLを表示します。

コマンドを実行して、Knativeサービスの一覧を表示します。

kn service list

予期される出力

NAME    URL                                                LATEST        AGE   CONDITIONS   READY
hello   http://hello.default.${LOADBALANCER_IP}.sslip.io   hello-00001   13s   3 OK / 3     True

コマンドを実行して、Knativeサービスの一覧を表示します。

kubectl get ksvc

予期される出力

NAME    URL                                                LATESTCREATED   LATESTREADY   READY   REASON
hello   http://hello.default.${LOADBALANCER_IP}.sslip.io   hello-00001     hello-00001   True

Knativeサービスへのアクセス

ブラウザで上記のURLを開くか、コマンドを実行して、Knativeサービスにアクセスします。

echo "Accessing URL $(kn service describe hello -o url)"
curl "$(kn service describe hello -o url)"

予期される出力

Hello World!
`curl: (6) Could not resolve host: hello.default.${LOADBALANCER_IP}.sslip.io`が表示されていますか?

場合によっては、DNSサーバーが`*.sslip.io`アドレスを解決しないように設定されていることがあります。この問題が発生した場合は、別のネームサーバーを使用してこれらのアドレスを解決することで修正できます。

正確な手順は、ディストリビューションによって異なります。たとえば、`systemd-resolved`を使用するUbuntu派生システムでは、`/etc/systemd/resolved.conf`に次のエントリを追加できます。

[Resolve]
DNS=8.8.8.8
Domains=~sslip.io.

その後、`sudo service systemd-resolved restart`でサービスを再起動するだけです。

MacOSユーザーの場合、こちらの説明に従って、ネットワーク設定を使用してDNSとドメインを追加できます。

オートスケーリングの確認

Podを監視し、URLへのトラフィックが停止した後、Podがゼロにスケールダウンする様子を確認します。

kubectl get pod -l serving.knative.dev/service=hello -w

注記

Podがスケールダウンするまで最大2分かかる場合があります。サービスに再びpingを送信すると、このタイマーがリセットされます。

予期される出力

NAME                                     READY   STATUS
hello-world                              2/2     Running
hello-world                              2/2     Terminating
hello-world                              1/2     Terminating
hello-world                              0/2     Terminating

Knativeサービスのスケールアップ

ブラウザでKnativeサービスを再実行します。新しいPodが再び実行されていることがわかります。

予期される出力

NAME                                     READY   STATUS
hello-world                              0/2     Pending
hello-world                              0/2     ContainerCreating
hello-world                              1/2     Running
hello-world                              2/2     Running

`Ctrl + c`で`kubectl watch`コマンドを終了します。

サイトのトラフィックを理解するために、アナリティクスとCookieを使用しています。お客様のサイトのご利用に関する情報は、その目的のためにGoogleと共有されます。詳細はこちら。