Skip to content

Commit

Permalink
Translate tasks/access-application-cluster/service-access-application…
Browse files Browse the repository at this point in the history
…-cluster/ in Japanese (kubernetes#13701)

* Update fluentd image (kubernetes#13661)

Signed-off-by: ialidzhikov <[email protected]>

* update zh kubelet-config-file doc (kubernetes#13495)

* update zh kubelet-config-file doc

* change kubelet config types address

* add space between en words and zh words

* revert en version change

* correct container hyperlinks in init container (kubernetes#12387)

* correct container hyperlinks in init container

* correct zh trans and update anchor inside page

* Incorrect details about startingDeadlineSeconds.. (kubernetes#13530)

On this page, the default value of startingDeadlineSeconds is mentioned as 100 seconds which is not true. So removing this statement.

* Fix typos (kubernetes#13376)

* add Nokia case study (kubernetes#13676)

* Fix typo in API page (kubernetes#13687)

Associated with kubernetes#13686

* fix typo in pod-lifecycle (kubernetes#13689)

Asscociated with kubernetes#13688

* issue 13383

* modify the link part

* Revert "modify the link part"

This reverts commit 2ae91dc.

* Revert "Revert "modify the link part""

This reverts commit e5b80b6.

* Revert "Revert "Revert "modify the link part"""

This reverts commit 427916e.

* Revert "Merge remote-tracking branch 'origin/master' into issue_13383"

This reverts commit 98099d8, reversing
changes made to 969e7f3.

* modify the link part
  • Loading branch information
SatoruItaya authored and kakts committed May 23, 2019
1 parent c83c329 commit 391f986
Showing 1 changed file with 142 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,142 @@
---
title: Serviceを利用したクラスター内のアプリケーションへのアクセス
content_template: templates/tutorial
weight: 60
---

{{% capture overview %}}

ここでは、クラスター内で稼働しているアプリケーションに外部からアクセスするために、KubernetesのServiceオブジェクトを作成する方法を紹介します。
例として、2つのインスタンスから成るアプリケーションへのロードバランシングを扱います。

{{% /capture %}}


{{% capture prerequisites %}}

{{< include "task-tutorial-prereqs.md" >}} {{< version-check >}}

{{% /capture %}}


{{% capture objectives %}}

* 2つのHellow Worldアプリケーションを稼働させる。
* Nodeのポートを公開するServiceオブジェクトを作成する。
* 稼働しているアプリケーションにアクセスするためにServiceオブジェクトを使用する。

{{% /capture %}}


{{% capture lessoncontent %}}

## 2つのPodから成るアプリケーションのServiceを作成

1. クラスタでHello Worldアプリケーションを稼働させます:
```shell
kubectl run hello-world --replicas=2 --labels="run=load-balancer-example" --image=gcr.io/google-samples/node-hello:1.0 --port=8080
```
このコマンドは
[Deployment](/docs/concepts/workloads/controllers/deployment/)
オブジェクトとそれに紐付く
[ReplicaSet](/docs/concepts/workloads/controllers/replicaset/)
オブジェクトを作成します。ReplicaSetは、Hello Worldアプリケーションが稼働している2つの
[Pod](/docs/concepts/workloads/pods/pod/)
から構成されます。

1. Deploymentの情報を表示します:
```shell
kubectl get deployments hello-world
kubectl describe deployments hello-world
```

1. ReplicaSetオブジェクトの情報を表示します:
```shell
kubectl get replicasets
kubectl describe replicasets
```

1. Deploymentを公開するServiceオブジェクトを作成します:
```shell
kubectl expose deployment hello-world --type=NodePort --name=example-service
```

1. Serviceに関する情報を表示します:
```shell
kubectl describe services example-service
```
出力例は以下の通りです:
```shell
Name: example-service
Namespace: default
Labels: run=load-balancer-example
Annotations: <none>
Selector: run=load-balancer-example
Type: NodePort
IP: 10.32.0.16
Port: <unset> 8080/TCP
TargetPort: 8080/TCP
NodePort: <unset> 31496/TCP
Endpoints: 10.200.1.4:8080,10.200.2.5:8080
Session Affinity: None
Events: <none>
```
NodePortの値を記録しておきます。上記の例では、31496です。

1. Hello Worldアプリーションが稼働しているPodを表示します:
```shell
kubectl get pods --selector="run=load-balancer-example" --output=wide
```
出力例は以下の通りです:
```shell
NAME READY STATUS ... IP NODE
hello-world-2895499144-bsbk5 1/1 Running ... 10.200.1.4 worker1
hello-world-2895499144-m1pwt 1/1 Running ... 10.200.2.5 worker2
```
1. Hello World podが稼働するNodeのうち、いずれか1つのパブリックIPアドレスを確認します。
確認方法は、使用している環境により異なります。
例として、Minikubeの場合は`kubectl cluster-info`、Google Compute Engineの場合は`gcloud compute instances list`によって確認できます。

1. 選択したノード上で、NodePortの値でのTCP通信を許可するファイヤーウォールを作成します。
NodePortの値が31568の場合、31568番のポートを利用したTCP通信を許可するファイヤーウォールを作成します。
クラウドプロバイダーによって設定方法が異なります。

1. Hello World applicationにアクセスするために、Nodeのアドレスとポート番号を使用します:
```shell
curl http://<public-node-ip>:<node-port>
```
ここで `<public-node-ip>` はNodeのパブリックIPアドレス、
`<node-port>` はNodePort Serviceのポート番号の値を表しています。
リクエストが成功すると、下記のメッセージが表示されます:
```shell
Hello Kubernetes!
```

## service configuration fileの利用

`kubectl expose`コマンドの代わりに、
[service configuration file](/docs/concepts/services-networking/service/)
を使用してServiceを作成することもできます。

{{% /capture %}}


{{% capture cleanup %}}

Serviceを削除するには、以下のコマンドを実行します:

kubectl delete services example-service

Hello Worldアプリケーションが稼働しているDeployment、ReplicaSet、Podを削除するには、以下のコマンドを実行します:

kubectl delete deployment hello-world

{{% /capture %}}


{{% capture whatsnext %}}

詳細は
[serviceを利用してアプリケーションと接続する](/docs/concepts/services-networking/connect-applications-service/)
を確認してください。
{{% /capture %}}

0 comments on commit 391f986

Please sign in to comment.