From 4ea5c843e05470b6157ec4a938d11eebca4eda9a Mon Sep 17 00:00:00 2001 From: windsonsea Date: Tue, 10 Oct 2023 16:35:49 +0800 Subject: [PATCH] [zh] Sync connect-applications-service.md --- .../services/connect-applications-service.md | 102 +++++++++++++++--- 1 file changed, 90 insertions(+), 12 deletions(-) diff --git a/content/zh-cn/docs/tutorials/services/connect-applications-service.md b/content/zh-cn/docs/tutorials/services/connect-applications-service.md index 1be3682f11cc0..060c6088b3ed5 100644 --- a/content/zh-cn/docs/tutorials/services/connect-applications-service.md +++ b/content/zh-cn/docs/tutorials/services/connect-applications-service.md @@ -55,7 +55,7 @@ Create an nginx Pod, and note that it has a container port specification: 我们在之前的示例中已经做过,然而让我们以网络连接的视角再重做一遍。 创建一个 Nginx Pod,注意其中包含一个容器端口的规约: -{{< code file="service/networking/run-my-nginx.yaml" >}} +{{% code_sample file="service/networking/run-my-nginx.yaml" %}} 你应该能够通过 ssh 登录到集群中的任何一个节点上,并使用诸如 `curl` 之类的工具向这两个 IP 地址发出查询请求。 需要注意的是,容器 **不会** 使用该节点上的 80 端口,也不会使用任何特定的 NAT 规则去路由流量到 Pod 上。 -这意味着可以在同一个节点上运行多个 Nginx Pod,使用相同的 `containerPort`,并且可以从集群中任何其他的 -Pod 或节点上使用 IP 的方式访问到它们。 +这意味着你可以使用相同的 `containerPort` 在同一个节点上运行多个 Nginx Pod, +并且可以从集群中任何其他的 Pod 或节点上使用为 Pod 分配的 IP 地址访问到它们。 如果你想的话,你依然可以将宿主节点的某个端口的流量转发到 Pod 中,但是出于网络模型的原因,你不必这么做。 -如果对此好奇,请参考 [Kubernetes 网络模型](/zh-cn/docs/concepts/cluster-administration/networking/#the-kubernetes-network-model)。 +如果对此好奇,请参考 +[Kubernetes 网络模型](/zh-cn/docs/concepts/cluster-administration/networking/#the-kubernetes-network-model)。 这等价于使用 `kubectl create -f` 命令及如下的 yaml 文件创建: -{{< code file="service/networking/nginx-svc.yaml" >}} +{{% code_sample file="service/networking/nginx-svc.yaml" %}} +你可以在 +[Kubernetes examples 项目代码仓库](https://github.com/kubernetes/examples/tree/bc9ca4ca32bb28762ef216386934bef20f1f9930/staging/https-nginx/)中找到 +`default.conf` 示例。 + ``` configmap/nginxconfigmap created ``` + ```shell kubectl get configmaps ``` + ``` NAME DATA AGE nginxconfigmap 1 114s ``` + +你可以使用以下命令来查看 `nginxconfigmap` ConfigMap 的细节: + +```shell +kubectl describe configmap nginxconfigmap +``` + + +输出类似于: + +```console +Name: nginxconfigmap +Namespace: default +Labels: +Annotations: + +Data +==== +default.conf: +---- +server { + listen 80 default_server; + listen [::]:80 default_server ipv6only=on; + + listen 443 ssl; + + root /usr/share/nginx/html; + index index.html; + + server_name localhost; + ssl_certificate /etc/nginx/ssl/tls.crt; + ssl_certificate_key /etc/nginx/ssl/tls.key; + + location / { + try_files $uri $uri/ =404; + } +} + +BinaryData +==== + +Events: +``` + @@ -493,6 +566,7 @@ Now create the secrets using the file: kubectl apply -f nginxsecrets.yaml kubectl get secrets ``` + ``` NAME TYPE DATA AGE nginxsecret kubernetes.io/tls 2 1m @@ -504,7 +578,7 @@ in the secret, and the Service, to expose both ports (80 and 443): --> 现在修改 Nginx 副本以启动一个使用 Secret 中的证书的 HTTPS 服务器以及相应的用于暴露其端口(80 和 443)的 Service: -{{< code file="service/networking/nginx-secure-app.yaml" >}} +{{% code_sample file="service/networking/nginx-secure-app.yaml" %}}