From f1e5b34607cc86dacd44ff5a662b873c641a6427 Mon Sep 17 00:00:00 2001 From: Qiming Teng Date: Thu, 29 Oct 2020 14:21:02 +0800 Subject: [PATCH] Resync tutorial page expose external IP address --- .../expose-external-ip-address.md | 225 +++++++++--------- 1 file changed, 112 insertions(+), 113 deletions(-) diff --git a/content/zh/docs/tutorials/stateless-application/expose-external-ip-address.md b/content/zh/docs/tutorials/stateless-application/expose-external-ip-address.md index 4a4d7779e2bfb..25cb862660e7c 100644 --- a/content/zh/docs/tutorials/stateless-application/expose-external-ip-address.md +++ b/content/zh/docs/tutorials/stateless-application/expose-external-ip-address.md @@ -3,13 +3,10 @@ title: 公开外部 IP 地址以访问集群中应用程序 content_type: tutorial weight: 10 --- - @@ -20,12 +17,8 @@ external IP address. --> 此页面显示如何创建公开外部 IP 地址的 Kubernetes 服务对象。 - - - ## {{% heading "prerequisites" %}} - - * 运行 Hello World 应用程序的五个实例。 * 创建一个公开外部 IP 地址的 Service 对象。 * 使用 Service 对象访问正在运行的应用程序。 - - - 1. 在集群中运行 Hello World 应用程序: -{{< codenew file="service/load-balancer-example.yaml" >}} - -```shell -kubectl apply -f https://k8s.io/examples/service/load-balancer-example.yaml -``` - - - 前面的命令创建一个 [Deployment](/zh/docs/concepts/workloads/controllers/deployment/) - 对象和一个关联的 [ReplicaSet](/zh/docs/concepts/workloads/controllers/replicaset/)对象。 - ReplicaSet 有五个 [Pod](/zh/docs/concepts/workloads/pods/pod/),每个都运行 Hello World 应用程序。 + {{< codenew file="service/load-balancer-example.yaml" >}} + + ```shell + kubectl apply -f https://k8s.io/examples/service/load-balancer-example.yaml + ``` + + + 前面的命令创建一个 + {{< glossary_tooltip text="Deployment" term_id="deployment" >}} + 对象和一个关联的 + {{< glossary_tooltip term_id="replica-set" text="ReplicaSet" >}} 对象。 + ReplicaSet 有五个 {{< glossary_tooltip text="Pods" term_id="pod" >}}, + 每个都运行 Hello World 应用程序。 2. 显示有关 Deployment 的信息: - kubectl get deployments hello-world - kubectl describe deployments hello-world + ```shell + kubectl get deployments hello-world + kubectl describe deployments hello-world + ``` 3. 显示有关 ReplicaSet 对象的信息: - kubectl get replicasets - kubectl describe replicasets + ```shell + kubectl get replicasets + kubectl describe replicasets + ``` -4. 创建公开 deployment 的 Service 对象: +4. 创建公开 Deployment 的 Service 对象: - kubectl expose deployment hello-world --type=LoadBalancer --name=my-service + ```shell + kubectl expose deployment hello-world --type=LoadBalancer --name=my-service + ``` 5. 显示有关 Service 的信息: - kubectl get services my-service + ```shell + kubectl get services my-service + ``` - + --> 输出类似于: - NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE - my-service ClusterIP 10.3.245.137 104.198.205.71 8080/TCP 54s - - - 注意:`type=LoadBalancer` 服务由外部云服务提供商提供支持,本例中不包含此部分,详细信息请参考[此页](/docs/concepts/services-networking/service/#loadbalancer) - - - 注意:如果外部 IP 地址显示为 \,请等待一分钟再次输入相同的命令。 + ``` + NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE + my-service ClusterIP 10.3.245.137 104.198.205.71 8080/TCP 54s + ``` + + + 提示:`type=LoadBalancer` 服务由外部云服务提供商提供支持,本例中不包含此部分, + 详细信息请参考[此页](/docs/concepts/services-networking/service/#loadbalancer) + + + 提示:如果外部 IP 地址显示为 \,请等待一分钟再次输入相同的命令。 6. 显示有关 Service 的详细信息: - kubectl describe services my-service + ```shell + kubectl describe services my-service + ``` - + --> 输出类似于: - Name: my-service - Namespace: default - Labels: run=load-balancer-example - Annotations: - Selector: run=load-balancer-example - Type: LoadBalancer - IP: 10.3.245.137 - LoadBalancer Ingress: 104.198.205.71 - Port: 8080/TCP - NodePort: 32377/TCP - Endpoints: 10.0.0.6:8080,10.0.1.6:8080,10.0.1.7:8080 + 2 more... - Session Affinity: None - Events: - - + --> 记下服务公开的外部 IP 地址(`LoadBalancer Ingress`)。 在本例中,外部 IP 地址是 104.198.205.71。还要注意 `Port` 和 `NodePort` 的值。 在本例中,`Port` 是 8080,`NodePort` 是32377。 - + --> 输出类似于: - NAME ... IP NODE - hello-world-2895499144-1jaz9 ... 10.0.1.6 gke-cluster-1-default-pool-e0b8d269-1afc - hello-world-2895499144-2e5uh ... 10.0.1.8 gke-cluster-1-default-pool-e0b8d269-1afc - hello-world-2895499144-9m4h1 ... 10.0.0.6 gke-cluster-1-default-pool-e0b8d269-5v7a - hello-world-2895499144-o4z13 ... 10.0.1.7 gke-cluster-1-default-pool-e0b8d269-1afc - hello-world-2895499144-segjf ... 10.0.2.5 gke-cluster-1-default-pool-e0b8d269-cpuc - + ``` + NAME ... IP NODE + hello-world-2895499144-1jaz9 ... 10.0.1.6 gke-cluster-1-default-pool-e0b8d269-1afc + hello-world-2895499144-2e5uh ... 10.0.1.8 gke-cluster-1-default-pool-e0b8d269-1afc + hello-world-2895499144-9m4h1 ... 10.0.0.6 gke-cluster-1-default-pool-e0b8d269-5v7a + hello-world-2895499144-o4z13 ... 10.0.1.7 gke-cluster-1-default-pool-e0b8d269-1afc + hello-world-2895499144-segjf ... 10.0.2.5 gke-cluster-1-default-pool-e0b8d269-cpuc + ``` 8. 使用外部 IP 地址(`LoadBalancer Ingress`)访问 Hello World 应用程序: - curl http://: + ```shell + curl http://: + ``` - + --> 其中 `` 是您的服务的外部 IP 地址(`LoadBalancer Ingress`), `` 是您的服务描述中的 `port` 的值。 如果您正在使用 minikube,输入 `minikube service my-service` 将在浏览器中自动打开 Hello World 应用程序。 - + --> 成功请求的响应是一条问候消息: - Hello Kubernetes! - - - + ``` + Hello Kubernetes! + ``` ## {{% heading "cleanup" %}} - 要删除服务,请输入以下命令: - kubectl delete services my-service +```shell +kubectl delete services my-service +``` 要删除正在运行 Hello World 应用程序的 Deployment,ReplicaSet 和 Pod,请输入以下命令: - kubectl delete deployment hello-world - - - +```shell +kubectl delete deployment hello-world +``` ## {{% heading "whatsnext" %}} - - -了解更多关于[将应用程序与服务连接](/zh/docs/concepts/services-networking/connect-applications-service/)。 - +进一步了解[将应用程序与服务连接](/zh/docs/concepts/services-networking/connect-applications-service/)。