[zh] Tidy up and fix links in tasks section (5/10)
This commit is contained in:
+94
-43
@@ -16,7 +16,10 @@ despite bugs.
|
||||
-->
|
||||
这篇文章介绍如何给容器配置存活、就绪和启动探测器。
|
||||
|
||||
[kubelet](/zh/docs/admin/kubelet/) 使用存活探测器来知道什么时候要重启容器。例如,存活探测器可以捕捉到死锁(应用程序在运行,但是无法继续执行后面的步骤)。这样的情况下重启容器有助于让应用程序在有问题的情况下更可用。
|
||||
[kubelet](/zh/docs/reference/command-line-tools-reference/kubelet/)
|
||||
使用存活探测器来知道什么时候要重启容器。
|
||||
例如,存活探测器可以捕捉到死锁(应用程序在运行,但是无法继续执行后面的步骤)。
|
||||
这样的情况下重启容器有助于让应用程序在有问题的情况下更可用。
|
||||
|
||||
<!--
|
||||
The kubelet uses readiness probes to know when a Container is ready to start
|
||||
@@ -30,19 +33,20 @@ it succeeds, making sure those probes don't interfere with the application start
|
||||
This can be used to adopt liveness checks on slow starting containers, avoiding them
|
||||
getting killed by the kubelet before they are up and running.
|
||||
-->
|
||||
kubelet 使用就绪探测器可以知道容器什么时候准备好了并可以开始接受请求流量, 当一个 Pod 内的所有容器都准备好了,才能把这个 Pod 看作就绪了。这种信号的一个用途就是控制哪个 Pod 作为 Service 的后端。在 Pod 还没有准备好的时候,会从 Service 的负载均衡器中被剔除的。
|
||||
|
||||
kubelet 使用启动探测器可以知道应用程序容器什么时候启动了。如果配置了这类探测器,就可以控制容器在启动成功后再进行存活性和就绪检查,确保这些存活、就绪探测器不会影响应用程序的启动。这可以用于对慢启动容器进行存活性检测,避免它们在启动运行之前就被杀掉。
|
||||
|
||||
kubelet 使用就绪探测器可以知道容器什么时候准备好了并可以开始接受请求流量, 当一个 Pod
|
||||
内的所有容器都准备好了,才能把这个 Pod 看作就绪了。
|
||||
这种信号的一个用途就是控制哪个 Pod 作为 Service 的后端。
|
||||
在 Pod 还没有准备好的时候,会从 Service 的负载均衡器中被剔除的。
|
||||
|
||||
kubelet 使用启动探测器可以知道应用程序容器什么时候启动了。
|
||||
如果配置了这类探测器,就可以控制容器在启动成功后再进行存活性和就绪检查,
|
||||
确保这些存活、就绪探测器不会影响应用程序的启动。
|
||||
这可以用于对慢启动容器进行存活性检测,避免它们在启动运行之前就被杀掉。
|
||||
|
||||
## {{% heading "prerequisites" %}}
|
||||
|
||||
|
||||
{{< include "task-tutorial-prereqs.md" >}} {{< version-check >}}
|
||||
|
||||
|
||||
|
||||
<!-- steps -->
|
||||
|
||||
<!--
|
||||
@@ -57,9 +61,11 @@ In this exercise, you create a Pod that runs a Container based on the
|
||||
-->
|
||||
## 定义存活命令 {#define-a-liveness-command}
|
||||
|
||||
许多长时间运行的应用程序最终会过渡到断开的状态,除非重新启动,否则无法恢复。Kubernetes 提供了存活探测器来发现并补救这种情况。
|
||||
许多长时间运行的应用程序最终会过渡到断开的状态,除非重新启动,否则无法恢复。
|
||||
Kubernetes 提供了存活探测器来发现并补救这种情况。
|
||||
|
||||
在这篇练习中,会创建一个 Pod,其中运行一个基于 `k8s.gcr.io/busybox` 镜像的容器。下面是这个 Pod 的配置文件。
|
||||
在这篇练习中,你会创建一个 Pod,其中运行一个基于 `k8s.gcr.io/busybox` 镜像的容器。
|
||||
下面是这个 Pod 的配置文件。
|
||||
|
||||
{{< codenew file="pods/probe/exec-liveness.yaml" >}}
|
||||
|
||||
@@ -75,7 +81,12 @@ and restarts it.
|
||||
|
||||
When the Container starts, it executes this command:
|
||||
-->
|
||||
在这个配置文件中,可以看到 Pod 中只有一个容器。`periodSeconds` 字段指定了 kubelet 应该每 5 秒执行一次存活探测。`initialDelaySeconds` 字段告诉 kubelet 在执行第一次探测前应该等待 5 秒。kubelet 在容器内执行命令 `cat /tmp/healthy` 来进行探测。如果命令执行成功并且返回值为 0,kubelet 就会认为这个容器是健康存活的。如果这个命令返回非 0 值,kubelet 会杀死这个容器并重新启动它。
|
||||
在这个配置文件中,可以看到 Pod 中只有一个容器。
|
||||
`periodSeconds` 字段指定了 kubelet 应该每 5 秒执行一次存活探测。
|
||||
`initialDelaySeconds` 字段告诉 kubelet 在执行第一次探测前应该等待 5 秒。
|
||||
kubelet 在容器内执行命令 `cat /tmp/healthy` 来进行探测。
|
||||
如果命令执行成功并且返回值为 0,kubelet 就会认为这个容器是健康存活的。
|
||||
如果这个命令返回非 0 值,kubelet 会杀死这个容器并重新启动它。
|
||||
|
||||
当容器启动时,执行如下的命令:
|
||||
|
||||
@@ -90,7 +101,9 @@ code. After 30 seconds, `cat /tmp/healthy` returns a failure code.
|
||||
|
||||
Create the Pod:
|
||||
-->
|
||||
这个容器生命的前 30 秒, `/tmp/healthy` 文件是存在的。所以在这最开始的 30 秒内,执行命令 `cat /tmp/healthy` 会返回成功码。30 秒之后,执行命令 `cat /tmp/healthy` 就会返回失败码。
|
||||
这个容器生命的前 30 秒, `/tmp/healthy` 文件是存在的。
|
||||
所以在这最开始的 30 秒内,执行命令 `cat /tmp/healthy` 会返回成功代码。
|
||||
30 秒之后,执行命令 `cat /tmp/healthy` 就会返回失败代码。
|
||||
|
||||
创建 Pod:
|
||||
|
||||
@@ -110,9 +123,9 @@ kubectl describe pod liveness-exec
|
||||
<!--
|
||||
The output indicates that no liveness probes have failed yet:
|
||||
-->
|
||||
输出结果显示还没有存活探测器失败:
|
||||
输出结果表明还没有存活探测器失败:
|
||||
|
||||
```shell
|
||||
```
|
||||
FirstSeen LastSeen Count From SubobjectPath Type Reason Message
|
||||
--------- -------- ----- ---- ------------- -------- ------ -------
|
||||
24s 24s 1 {default-scheduler } Normal Scheduled Successfully assigned liveness-exec to worker0
|
||||
@@ -137,7 +150,7 @@ probes have failed, and the containers have been killed and recreated.
|
||||
-->
|
||||
在输出结果的最下面,有信息显示存活探测器失败了,这个容器被杀死并且被重建了。
|
||||
|
||||
```shell
|
||||
```
|
||||
FirstSeen LastSeen Count From SubobjectPath Type Reason Message
|
||||
--------- -------- ----- ---- ------------- -------- ------ -------
|
||||
37s 37s 1 {default-scheduler } Normal Scheduled Successfully assigned liveness-exec to worker0
|
||||
@@ -162,7 +175,7 @@ The output shows that `RESTARTS` has been incremented:
|
||||
-->
|
||||
输出结果显示 `RESTARTS` 的值增加了 1。
|
||||
|
||||
```shell
|
||||
```
|
||||
NAME READY STATUS RESTARTS AGE
|
||||
liveness-exec 1/1 Running 1 1m
|
||||
```
|
||||
@@ -176,7 +189,8 @@ image.
|
||||
-->
|
||||
## 定义一个存活态 HTTP 请求接口 {#define-a-liveness-HTTP-request}
|
||||
|
||||
另外一种类型的存活探测方式是使用 HTTP GET 请求。下面是一个 Pod 的配置文件,其中运行一个基于 `k8s.gcr.io/liveness` 镜像的容器。
|
||||
另外一种类型的存活探测方式是使用 HTTP GET 请求。
|
||||
下面是一个 Pod 的配置文件,其中运行一个基于 `k8s.gcr.io/liveness` 镜像的容器。
|
||||
|
||||
{{< codenew file="pods/probe/http-liveness.yaml" >}}
|
||||
|
||||
@@ -191,7 +205,12 @@ returns a success code, the kubelet considers the Container to be alive and
|
||||
healthy. If the handler returns a failure code, the kubelet kills the Container
|
||||
and restarts it.
|
||||
-->
|
||||
在这个配置文件中,可以看到 Pod 也只有一个容器。`periodSeconds` 字段指定了 kubelet 每隔 3 秒执行一次存活探测。`initialDelaySeconds` 字段告诉 kubelet 在执行第一次探测前应该等待 3 秒。kubelet 会向容器内运行的服务(服务会监听 8080 端口)发送一个 HTTP GET 请求来执行探测。如果服务上 `/healthz` 路径下的处理程序返回成功码,则 kubelet 认为容器是健康存活的。如果处理程序返回失败码,则 kubelet 会杀死这个容器并且重新启动它。
|
||||
在这个配置文件中,可以看到 Pod 也只有一个容器。
|
||||
`periodSeconds` 字段指定了 kubelet 每隔 3 秒执行一次存活探测。
|
||||
`initialDelaySeconds` 字段告诉 kubelet 在执行第一次探测前应该等待 3 秒。
|
||||
kubelet 会向容器内运行的服务(服务会监听 8080 端口)发送一个 HTTP GET 请求来执行探测。
|
||||
如果服务器上 `/healthz` 路径下的处理程序返回成功代码,则 kubelet 认为容器是健康存活的。
|
||||
如果处理程序返回失败代码,则 kubelet 会杀死这个容器并且重新启动它。
|
||||
|
||||
<!--
|
||||
Any code greater than or equal to 200 and less than 400 indicates success. Any
|
||||
@@ -203,7 +222,7 @@ You can see the source code for the server in
|
||||
For the first 10 seconds that the Container is alive, the `/healthz` handler
|
||||
returns a status of 200. After that, the handler returns a status of 500.
|
||||
-->
|
||||
任何大于或等于 200 并且小于 400 的返回码标示成功,其它返回码都标示失败。
|
||||
任何大于或等于 200 并且小于 400 的返回代码标示成功,其它返回代码都标示失败。
|
||||
|
||||
可以在这里看服务的源码 [server.go](https://github.com/kubernetes/kubernetes/blob/master/test/images/agnhost/liveness/server.go)。
|
||||
|
||||
@@ -229,7 +248,8 @@ checks will fail, and the kubelet will kill and restart the Container.
|
||||
|
||||
To try the HTTP liveness check, create a Pod:
|
||||
-->
|
||||
kubelet 在容器启动之后 3 秒开始执行健康检测。所以前几次健康检查都是成功的。但是 10 秒之后,健康检查会失败,并且 kubelet 会杀死容器再重新启动容器。
|
||||
kubelet 在容器启动之后 3 秒开始执行健康检测。所以前几次健康检查都是成功的。
|
||||
但是 10 秒之后,健康检查会失败,并且 kubelet 会杀死容器再重新启动容器。
|
||||
|
||||
创建一个 Pod 来测试 HTTP 的存活检测:
|
||||
|
||||
@@ -254,7 +274,9 @@ the HTTP liveness probe uses that proxy.
|
||||
In releases after v1.13, local HTTP proxy environment variable settings do not
|
||||
affect the HTTP liveness probe.
|
||||
-->
|
||||
在 1.13(包括 1.13版本)之前的版本中,如果在 Pod 运行的节点上设置了环境变量 `http_proxy`(或者 `HTTP_PROXY`),HTTP 的存活探测会使用这个代理。在 1.13 之后的版本中,设置本地的 HTTP 代理环境变量不会影响 HTTP 的存活探测。
|
||||
在 1.13(包括 1.13版本)之前的版本中,如果在 Pod 运行的节点上设置了环境变量
|
||||
`http_proxy`(或者 `HTTP_PROXY`),HTTP 的存活探测会使用这个代理。
|
||||
在 1.13 之后的版本中,设置本地的 HTTP 代理环境变量不会影响 HTTP 的存活探测。
|
||||
|
||||
<!--
|
||||
## Define a TCP liveness probe
|
||||
@@ -266,7 +288,9 @@ can’t it is considered a failure.
|
||||
-->
|
||||
## 定义 TCP 的存活探测 {#define-a-TCP-liveness-probe}
|
||||
|
||||
第三种类型的存活探测是使用 TCP 套接字。通过配置,kubelet 会尝试在指定端口和容器建立套接字链接。如果能建立链接,这个容器就被看作是健康的,如果不能则这个容器就被看作是有问题的。
|
||||
第三种类型的存活探测是使用 TCP 套接字。
|
||||
通过配置,kubelet 会尝试在指定端口和容器建立套接字链接。
|
||||
如果能建立连接,这个容器就被看作是健康的,如果不能则这个容器就被看作是有问题的。
|
||||
|
||||
{{< codenew file="pods/probe/tcp-liveness-readiness.yaml" >}}
|
||||
|
||||
@@ -286,9 +310,15 @@ will be restarted.
|
||||
|
||||
To try the TCP liveness check, create a Pod:
|
||||
-->
|
||||
如你所见,TCP 检测的配置和 HTTP 检测非常相似。下面这个例子同时使用就绪和存活探测器。kubelet 会在容器启动 5 秒后发送第一个就绪探测。这会尝试连接 `goproxy` 容器的 8080 端口。如果探测成功,这个 Pod 会被标记为就绪状态,kubelet 将继续每隔 10 秒运行一次检测。
|
||||
如你所见,TCP 检测的配置和 HTTP 检测非常相似。
|
||||
下面这个例子同时使用就绪和存活探测器。kubelet 会在容器启动 5 秒后发送第一个就绪探测。
|
||||
这会尝试连接 `goproxy` 容器的 8080 端口。
|
||||
如果探测成功,这个 Pod 会被标记为就绪状态,kubelet 将继续每隔 10 秒运行一次检测。
|
||||
|
||||
除了就绪探测,这个配置包括了一个存活探测。kubelet 会在容器启动 15 秒后进行第一次存活探测。就像就绪探测一样,会尝试连接 `goproxy` 容器的 8080 端口。如果存活探测失败,这个容器会被重新启动。
|
||||
除了就绪探测,这个配置包括了一个存活探测。
|
||||
kubelet 会在容器启动 15 秒后进行第一次存活探测。
|
||||
就像就绪探测一样,会尝试连接 `goproxy` 容器的 8080 端口。
|
||||
如果存活探测失败,这个容器会被重新启动。
|
||||
|
||||
```shell
|
||||
kubectl apply -f https://k8s.io/examples/pods/probe/tcp-liveness-readiness.yaml
|
||||
@@ -312,7 +342,8 @@ for HTTP or TCP liveness checks:
|
||||
-->
|
||||
## 使用命名端口 {#use-a-named-port}
|
||||
|
||||
对于 HTTP 或者 TCP 存活检测可以使用命名的[容器端口](/docs/reference/generated/kubernetes-api/{{< param "version" >}}/#containerport-v1-core)。
|
||||
对于 HTTP 或者 TCP 存活检测可以使用命名的
|
||||
[ContainerPort](/docs/reference/generated/kubernetes-api/{{< param "version" >}}/#containerport-v1-core)。
|
||||
|
||||
```yaml
|
||||
ports:
|
||||
@@ -341,7 +372,10 @@ So, the previous example would become:
|
||||
-->
|
||||
## 使用启动探测器保护慢启动容器 {#define-startup-probes}
|
||||
|
||||
有时候,会有一些现有的应用程序在启动时需要较多的初始化时间。要不影响对引起探测死锁的快速响应,这种情况下,设置存活探测参数是要技巧的。技巧就是使用一个命令来设置启动探测,针对HTTP 或者 TCP 检测,可以通过设置 `failureThreshold * periodSeconds` 参数来保证有足够长的时间应对糟糕情况下的启动时间。
|
||||
有时候,会有一些现有的应用程序在启动时需要较多的初始化时间。
|
||||
要不影响对引起探测死锁的快速响应,这种情况下,设置存活探测参数是要技巧的。
|
||||
技巧就是使用一个命令来设置启动探测,针对HTTP 或者 TCP 检测,可以通过设置
|
||||
`failureThreshold * periodSeconds` 参数来保证有足够长的时间应对糟糕情况下的启动时间。
|
||||
|
||||
所以,前面的例子就变成了:
|
||||
|
||||
@@ -392,12 +426,16 @@ Services.
|
||||
-->
|
||||
## 定义就绪探测器 {#define-readiness-probes}
|
||||
|
||||
有时候,应用程序会暂时性的不能提供通信服务。例如,应用程序在启动时可能需要加载很大的数据或配置文件,或是启动后要依赖等待外部服务。在这种情况下,既不想杀死应用程序,也不想给它发送请求。Kubernetes 提供了就绪探测器来发现并缓解这些情况。容器所在 Pod 上报还未就绪的信息,并且不接受通过 Kubernetes Service 的流量。
|
||||
有时候,应用程序会暂时性的不能提供通信服务。
|
||||
例如,应用程序在启动时可能需要加载很大的数据或配置文件,或是启动后要依赖等待外部服务。
|
||||
在这种情况下,既不想杀死应用程序,也不想给它发送请求。
|
||||
Kubernetes 提供了就绪探测器来发现并缓解这些情况。
|
||||
容器所在 Pod 上报还未就绪的信息,并且不接受通过 Kubernetes Service 的流量。
|
||||
|
||||
{{< note >}}
|
||||
<!--
|
||||
Readiness probes runs on the container during its whole lifecycle.
|
||||
-->
|
||||
{{< note >}}
|
||||
就绪探测器在容器的整个生命周期中保持运行状态。
|
||||
{{< /note >}}
|
||||
|
||||
@@ -405,7 +443,8 @@ Readiness probes runs on the container during its whole lifecycle.
|
||||
Readiness probes are configured similarly to liveness probes. The only difference
|
||||
is that you use the `readinessProbe` field instead of the `livenessProbe` field.
|
||||
-->
|
||||
就绪探测器的配置和存活探测器的配置相似。唯一区别就是要使用 `readinessProbe` 字段,而不是 `livenessProbe` 字段。
|
||||
就绪探测器的配置和存活探测器的配置相似。
|
||||
唯一区别就是要使用 `readinessProbe` 字段,而不是 `livenessProbe` 字段。
|
||||
|
||||
```yaml
|
||||
readinessProbe:
|
||||
@@ -426,17 +465,18 @@ for it, and that containers are restarted when they fail.
|
||||
-->
|
||||
HTTP 和 TCP 的就绪探测器配置也和存活探测器的配置一样的。
|
||||
|
||||
就绪和存活探测可以在同一个容器上并行使用。两者都用可以确保流量不会发给还没有准备好的容器,并且容器会在它们失败的时候被重新启动。
|
||||
就绪和存活探测可以在同一个容器上并行使用。
|
||||
两者都用可以确保流量不会发给还没有准备好的容器,并且容器会在它们失败的时候被重新启动。
|
||||
|
||||
<!--
|
||||
## Configure Probes
|
||||
-->
|
||||
## 配置探测器 {#configure-probes}
|
||||
|
||||
{{< comment >}}
|
||||
<!--
|
||||
Eventually, some of this section could be moved to a concept topic.
|
||||
-->
|
||||
{{< comment >}}
|
||||
最后,本节的一些内容可以放到某个概念主题里。
|
||||
{{< /comment >}}
|
||||
|
||||
@@ -445,7 +485,8 @@ Eventually, some of this section could be moved to a concept topic.
|
||||
you can use to more precisely control the behavior of liveness and readiness
|
||||
checks:
|
||||
-->
|
||||
[探测器](/zh/docs/reference/generated/kubernetes-api/{{< param "version" >}}/#probe-v1-core)有很多配置字段,可以使用这些字段精确的控制存活和就绪检测的行为:
|
||||
[Probe](/docs/reference/generated/kubernetes-api/{{< param "version" >}}/#probe-v1-core)
|
||||
有很多配置字段,可以使用这些字段精确的控制存活和就绪检测的行为:
|
||||
|
||||
<!--
|
||||
* `initialDelaySeconds`: Number of seconds after the container has started
|
||||
@@ -464,8 +505,11 @@ Defaults to 3. Minimum value is 1.
|
||||
* `initialDelaySeconds`:容器启动后要等待多少秒后存活和就绪探测器才被初始化,默认是 0 秒,最小值是 0。
|
||||
* `periodSeconds`:执行探测的时间间隔(单位是秒)。默认是 10 秒。最小值是 1。
|
||||
* `timeoutSeconds`:探测的超时后等待多少秒。默认值是 1 秒。最小值是 1。
|
||||
* `successThreshold`:探测器在失败后,被视为成功的最小连续成功数。默认值是 1。存活探测的这个值必须是 1。最小值是 1。
|
||||
* `failureThreshold`:当探测失败时,Kubernetes 的重试次数。存活探测情况下的放弃就意味着重新启动容器。就绪探测情况下的放弃 Pod 会被打上未就绪的标签。默认值是 3。最小值是 1。
|
||||
* `successThreshold`:探测器在失败后,被视为成功的最小连续成功数。默认值是 1。
|
||||
存活探测的这个值必须是 1。最小值是 1。
|
||||
* `failureThreshold`:当探测失败时,Kubernetes 的重试次数。
|
||||
存活探测情况下的放弃就意味着重新启动容器。
|
||||
就绪探测情况下的放弃 Pod 会被打上未就绪的标签。默认值是 3。最小值是 1。
|
||||
|
||||
<!--
|
||||
[HTTP probes](/docs/reference/generated/kubernetes-api/{{< param "version" >}}/#httpgetaction-v1-core)
|
||||
@@ -479,7 +523,8 @@ set "Host" in httpHeaders instead.
|
||||
* `port`: Name or number of the port to access on the container. Number must be
|
||||
in the range 1 to 65535.
|
||||
-->
|
||||
[HTTP 探测器](/zh/docs/reference/generated/kubernetes-api/{{< param "version" >}}/#httpgetaction-v1-core)可以在 `httpGet` 上配置额外的字段:
|
||||
[HTTP Probes](/docs/reference/generated/kubernetes-api/{{< param "version" >}}/#httpgetaction-v1-core)
|
||||
可以在 `httpGet` 上配置额外的字段:
|
||||
|
||||
* `host`:连接使用的主机名,默认是 Pod 的 IP。也可以在 HTTP 头中设置 “Host” 来代替。
|
||||
* `scheme` :用于设置连接主机的方式(HTTP 还是 HTTPS)。默认是 HTTP。
|
||||
@@ -502,20 +547,25 @@ For a TCP probe, the kubelet makes the probe connection at the node, not in the
|
||||
means that you can not use a service name in the `host` parameter since the kubelet is unable
|
||||
to resolve it.
|
||||
-->
|
||||
对于 HTTP 探测,kubelet 发送一个 HTTP 请求到指定的路径和端口来执行检测。除非 `httpGet` 中的 `host` 字段设置了,否则 kubelet 默认是给 Pod 的 IP 地址发送探测。如果 `scheme` 字段设置为了 `HTTPS`,kubelet 会跳过证书验证发送 HTTPS 请求。大多数情况下,不需要设置`host` 字段。这里有个需要设置 `host` 字段的场景,假设容器监听 127.0.0.1,并且 Pod 的 `hostNetwork` 字段设置为了 `true`。那么 `httpGet` 中的 `host` 字段应该设置为 127.0.0.1。可能更常见的情况是如果 Pod 依赖虚拟主机,你不应该设置 `host` 字段,而是应该在 `httpHeaders` 中设置 `Host`。
|
||||
|
||||
对于一次 TCP 探测,kubelet 在节点上(不是在 Pod 里面)建立探测连接,这意味着你不能在 `host` 参数上配置 service name,因为 kubelet 不能解析 service name。
|
||||
|
||||
对于 HTTP 探测,kubelet 发送一个 HTTP 请求到指定的路径和端口来执行检测。
|
||||
除非 `httpGet` 中的 `host` 字段设置了,否则 kubelet 默认是给 Pod 的 IP 地址发送探测。
|
||||
如果 `scheme` 字段设置为了 `HTTPS`,kubelet 会跳过证书验证发送 HTTPS 请求。
|
||||
大多数情况下,不需要设置`host` 字段。
|
||||
这里有个需要设置 `host` 字段的场景,假设容器监听 127.0.0.1,并且 Pod 的 `hostNetwork`
|
||||
字段设置为了 `true`。那么 `httpGet` 中的 `host` 字段应该设置为 127.0.0.1。
|
||||
可能更常见的情况是如果 Pod 依赖虚拟主机,你不应该设置 `host` 字段,而是应该在
|
||||
`httpHeaders` 中设置 `Host`。
|
||||
|
||||
对于一次 TCP 探测,kubelet 在节点上(不是在 Pod 里面)建立探测连接,
|
||||
这意味着你不能在 `host` 参数上配置服务名称,因为 kubelet 不能解析服务名称。
|
||||
|
||||
## {{% heading "whatsnext" %}}
|
||||
|
||||
|
||||
<!--
|
||||
* Learn more about
|
||||
[Container Probes](/docs/concepts/workloads/pods/pod-lifecycle/#container-probes).
|
||||
-->
|
||||
* 进一步了解[容器探测器](/docs/concepts/workloads/pods/pod-lifecycle/#container-probes)。
|
||||
* 进一步了解[容器探测器](/zh/docs/concepts/workloads/pods/pod-lifecycle/#container-probes)。
|
||||
|
||||
<!--
|
||||
### Reference
|
||||
@@ -525,8 +575,9 @@ to resolve it.
|
||||
* [Probe](/docs/reference/generated/kubernetes-api/{{< param "version" >}}/#probe-v1-core)
|
||||
-->
|
||||
### 参考 {#reference}
|
||||
|
||||
* [Pod](/docs/reference/generated/kubernetes-api/{{< param "version" >}}/#pod-v1-core)
|
||||
* [容器](/docs/reference/generated/kubernetes-api/{{< param "version" >}}/#container-v1-core)
|
||||
* [探测器](/docs/reference/generated/kubernetes-api/{{< param "version" >}}/#probe-v1-core)
|
||||
* [Container](/docs/reference/generated/kubernetes-api/{{< param "version" >}}/#container-v1-core)
|
||||
* [Probe](/docs/reference/generated/kubernetes-api/{{< param "version" >}}/#probe-v1-core)
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user