add code formatting to commands in expose-external-ip-address tutorial

pull/25080/head
RA489 2020-11-17 17:01:05 +05:30
parent dcd16d57fa
commit 2abce40d08
1 changed files with 65 additions and 59 deletions

View File

@ -9,12 +9,8 @@ weight: 10
This page shows how to create a Kubernetes Service object that exposes an This page shows how to create a Kubernetes Service object that exposes an
external IP address. external IP address.
## {{% heading "prerequisites" %}} ## {{% heading "prerequisites" %}}
* Install [kubectl](/docs/tasks/tools/install-kubectl/). * Install [kubectl](/docs/tasks/tools/install-kubectl/).
* Use a cloud provider like Google Kubernetes Engine or Amazon Web Services to * Use a cloud provider like Google Kubernetes Engine or Amazon Web Services to
@ -25,19 +21,12 @@ external IP address.
* Configure `kubectl` to communicate with your Kubernetes API server. For * Configure `kubectl` to communicate with your Kubernetes API server. For
instructions, see the documentation for your cloud provider. instructions, see the documentation for your cloud provider.
## {{% heading "objectives" %}} ## {{% heading "objectives" %}}
* Run five instances of a Hello World application. * Run five instances of a Hello World application.
* Create a Service object that exposes an external IP address. * Create a Service object that exposes an external IP address.
* Use the Service object to access the running application. * Use the Service object to access the running application.
<!-- lessoncontent --> <!-- lessoncontent -->
## Creating a service for an application running in five pods ## Creating a service for an application running in five pods
@ -50,37 +39,46 @@ external IP address.
kubectl apply -f https://k8s.io/examples/service/load-balancer-example.yaml kubectl apply -f https://k8s.io/examples/service/load-balancer-example.yaml
``` ```
The preceding command creates a The preceding command creates a
{{< glossary_tooltip text="Deployment" term_id="deployment" >}} {{< glossary_tooltip text="Deployment" term_id="deployment" >}}
and an associated and an associated
{{< glossary_tooltip term_id="replica-set" text="ReplicaSet" >}}. {{< glossary_tooltip term_id="replica-set" text="ReplicaSet" >}}.
The ReplicaSet has five The ReplicaSet has five
{{< glossary_tooltip text="Pods" term_id="pod" >}} {{< glossary_tooltip text="Pods" term_id="pod" >}}
each of which runs the Hello World application. each of which runs the Hello World application.
1. Display information about the Deployment: 1. Display information about the Deployment:
kubectl get deployments hello-world ```shell
kubectl describe deployments hello-world kubectl get deployments hello-world
kubectl describe deployments hello-world
```
1. Display information about your ReplicaSet objects: 1. Display information about your ReplicaSet objects:
kubectl get replicasets ```shell
kubectl describe replicasets kubectl get replicasets
kubectl describe replicasets
```
1. Create a Service object that exposes the deployment: 1. Create a Service object that exposes the deployment:
kubectl expose deployment hello-world --type=LoadBalancer --name=my-service ```shell
kubectl expose deployment hello-world --type=LoadBalancer --name=my-service
```
1. Display information about the Service: 1. Display information about the Service:
kubectl get services my-service ```shell
kubectl get services my-service
```
The output is similar to this: The output is similar to this:
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE ```
my-service LoadBalancer 10.3.245.137 104.198.205.71 8080/TCP 54s NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
my-service LoadBalancer 10.3.245.137 104.198.205.71 8080/TCP 54s
```
{{< note >}} {{< note >}}
@ -96,23 +94,27 @@ The preceding command creates a
1. Display detailed information about the Service: 1. Display detailed information about the Service:
kubectl describe services my-service ```shell
kubectl describe services my-service
```
The output is similar to this: The output is similar to this:
Name: my-service ```
Namespace: default Name: my-service
Labels: app.kubernetes.io/name=load-balancer-example Namespace: default
Annotations: <none> Labels: app.kubernetes.io/name=load-balancer-example
Selector: app.kubernetes.io/name=load-balancer-example Annotations: <none>
Type: LoadBalancer Selector: app.kubernetes.io/name=load-balancer-example
IP: 10.3.245.137 Type: LoadBalancer
LoadBalancer Ingress: 104.198.205.71 IP: 10.3.245.137
Port: <unset> 8080/TCP LoadBalancer Ingress: 104.198.205.71
NodePort: <unset> 32377/TCP Port: <unset> 8080/TCP
Endpoints: 10.0.0.6:8080,10.0.1.6:8080,10.0.1.7:8080 + 2 more... NodePort: <unset> 32377/TCP
Session Affinity: None Endpoints: 10.0.0.6:8080,10.0.1.6:8080,10.0.1.7:8080 + 2 more...
Events: <none> Session Affinity: None
Events: <none>
```
Make a note of the external IP address (`LoadBalancer Ingress`) exposed by Make a note of the external IP address (`LoadBalancer Ingress`) exposed by
your service. In this example, the external IP address is 104.198.205.71. your service. In this example, the external IP address is 104.198.205.71.
@ -124,21 +126,27 @@ The preceding command creates a
addresses of the pods that are running the Hello World application. To addresses of the pods that are running the Hello World application. To
verify these are pod addresses, enter this command: verify these are pod addresses, enter this command:
kubectl get pods --output=wide ```shell
kubectl get pods --output=wide
```
The output is similar to this: The output is similar to this:
NAME ... IP NODE ```
hello-world-2895499144-1jaz9 ... 10.0.1.6 gke-cluster-1-default-pool-e0b8d269-1afc NAME ... IP NODE
hello-world-2895499144-2e5uh ... 10.0.1.8 gke-cluster-1-default-pool-e0b8d269-1afc hello-world-2895499144-1jaz9 ... 10.0.1.6 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-2e5uh ... 10.0.1.8 gke-cluster-1-default-pool-e0b8d269-1afc
hello-world-2895499144-o4z13 ... 10.0.1.7 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-segjf ... 10.0.2.5 gke-cluster-1-default-pool-e0b8d269-cpuc 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
```
1. Use the external IP address (`LoadBalancer Ingress`) to access the Hello 1. Use the external IP address (`LoadBalancer Ingress`) to access the Hello
World application: World application:
curl http://<external-ip>:<port> ```shell
curl http://<external-ip>:<port>
```
where `<external-ip>` is the external IP address (`LoadBalancer Ingress`) where `<external-ip>` is the external IP address (`LoadBalancer Ingress`)
of your Service, and `<port>` is the value of `Port` in your Service of your Service, and `<port>` is the value of `Port` in your Service
@ -148,29 +156,27 @@ The preceding command creates a
The response to a successful request is a hello message: The response to a successful request is a hello message:
Hello Kubernetes! ```shell
Hello Kubernetes!
```
## {{% heading "cleanup" %}} ## {{% heading "cleanup" %}}
To delete the Service, enter this command: To delete the Service, enter this command:
kubectl delete services my-service ```shell
kubectl delete services my-service
```
To delete the Deployment, the ReplicaSet, and the Pods that are running To delete the Deployment, the ReplicaSet, and the Pods that are running
the Hello World application, enter this command: the Hello World application, enter this command:
kubectl delete deployment hello-world ```shell
kubectl delete deployment hello-world
```
## {{% heading "whatsnext" %}} ## {{% heading "whatsnext" %}}
Learn more about Learn more about
[connecting applications with services](/docs/concepts/services-networking/connect-applications-service/). [connecting applications with services](/docs/concepts/services-networking/connect-applications-service/).