跳至内容

自动伸缩

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 后如何缩减到零。

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 共享,以用于该目的。 了解更多。