22title : Hello Minikube
33content_type : tutorial
44weight : 5
5- card :
5+ card :
66 name : tutorials
77 weight : 10
88---
99
1010<!-- overview -->
1111
12- このチュートリアルでは、[ minikube] ( /ja/docs/setup/learning-environment/minikube ) とKatacodaを使用して、Kubernetes上でサンプルアプリケーションを動かす方法を紹介します。Katacodaはブラウザで無償のKubernetes環境を提供します。
13-
14- {{< note >}}
15- [ minikubeをローカルにインストール] ( https://minikube.sigs.k8s.io/docs/start/ ) している場合もこのチュートリアルを進めることが可能です。
16- {{< /note >}}
17-
18-
12+ このチュートリアルでは、minikubeを使用して、Kubernetes上でサンプルアプリケーションを動かす方法を紹介します。
13+ このチュートリアルはNGINXを利用してすべての要求をエコーバックするコンテナイメージを提供します。
1914
2015## {{% heading "objectives" %}}
2116
22-
2317* minikubeへのサンプルアプリケーションのデプロイ
2418* アプリケーションの実行
2519* アプリケーションログの確認
2620
27-
28-
2921## {{% heading "prerequisites" %}}
3022
3123
32- このチュートリアルはNGINXを利用してすべての要求をエコーバックするコンテナイメージを提供します。
33-
34-
24+ このチュートリアルは、` minikube ` がセットアップ済みであることを前提としています。
25+ インストール手順は[ minikube start] ( https://minikube.sigs.k8s.io/docs/start/ ) の __ Step 1__ を参照してください。
26+ {{< note >}}
27+ __ Step 1, Installation__ の手順のみ実行してください。それ以降の手順はこのページで説明します。
28+ {{< /note >}}
3529
30+ また、` kubectl ` をインストールする必要があります。
31+ インストール手順は[ ツールのインストール] ( /ja/docs/tasks/tools/#kubectl ) を参照してください。
3632
3733
3834<!-- lessoncontent -->
3935
4036## minikubeクラスターの作成
4137
42- 1 . ** Launch Terminal** をクリックしてください
38+ ``` shell
39+ minikube start
40+ ```
41+
42+ ## ダッシュボードを開く
4343
44- {{< kat-button >}}
44+ Kubernetesダッシュボードを開きます。これには二通りの方法があります:
45+
46+ {{< tabs name="dashboard" >}}
47+ {{% tab name="ブラウザーを起動" %}}
48+ ** 新しい** ターミナルを開き、次のコマンドを実行します:
49+ ``` shell
50+ # 新しいターミナルを起動し、以下を実行したままにします
51+ minikube dashboard
52+ ```
53+
54+ ` minikube start ` を実行したターミナルに戻ります。
4555
4656{{< note >}}
47- minikubeをローカルにインストール済みの場合は、` minikube start ` を実行してください。
57+ ` dashboard ` コマンドは、ダッシュボードアドオンを有効にし、デフォルトのWebブラウザーでプロキシを開きます。
58+ ダッシュボード上で、DeploymentやServiceなどのKubernetesリソースを作成できます。
59+
60+ ターミナルから直接ブラウザーを起動させずに、WebダッシュボードのURLを取得する方法については、「URLをコピー&ペースト」タブを参照してください。
61+
62+ デフォルトでは、ダッシュボードはKubernetesの仮想ネットワーク内部からのみアクセス可能です。
63+ ` dashboard ` コマンドは、Kubernetes仮想ネットワークの外部からダッシュボードにアクセス可能にするための一時的なプロキシを作成します。
64+
65+ プロキシを停止するには、` Ctrl+C ` を実行してプロセスを終了します。
66+ ` dashboard ` コマンドが終了した後も、ダッシュボードはKubernetesクラスター内で実行を続けます。
67+ 再度` dashboard ` コマンドを実行すれば、新しい別のプロキシを作成してダッシュボードにアクセスできます。
4868{{< /note >}}
4969
50- 2 . ブラウザーでKubernetesダッシュボードを開いてください:
70+ {{% /tab %}}
71+ {{% tab name="URLをコピー&ペースト" %}}
5172
52- ``` shell
53- minikube dashboard
54- ```
73+ minikubeが自動的にWebブラウザーを開くことを望まない場合、` dashboard ` サブコマンドを` --url ` フラグと共に実行します。
74+ ` minikube ` は、お好みのブラウザーで開くことができるURLを出力します。
5575
56- 3. Katacoda環境のみ:ターミナルペーン上部の+ボタンをクリックしてから ** Select port to view on Host 1** をクリックしてください。
76+ ** 新しい** ターミナルを開き、次のコマンドを実行します:
77+ ``` shell
78+ # 新しいターミナルを起動し、以下を実行したままにします
79+ minikube dashboard --url
80+ ```
5781
58- 4. Katacoda環境のみ:` 30000` を入力し、** Display Port** をクリックしてください。
82+ URLをコピー&ペーストし、ブラウザーで開きます。
83+ ` minikube start ` を実行したターミナルに戻ります。
84+
85+ {{% /tab %}}
86+ {{< /tabs >}}
5987
6088## Deploymentの作成
6189
62- Kubernetesの[* Pod* ](/ja/docs/concepts/workloads/pods/) は、コンテナの管理やネットワーキングの目的でまとめられた、1つ以上のコンテナのグループです。このチュートリアルのPodがもつコンテナは1つのみです。Kubernetesの [* Deployment* ](/ja/docs/concepts/workloads/controllers/deployment/) はPodの状態を確認し、Podのコンテナが停止した場合には再起動します。DeploymentはPodの作成やスケールを管理するために推奨される方法(手段)です。
90+ Kubernetesの[ * Pod* ] ( /ja/docs/concepts/workloads/pods/ ) は、コンテナの管理やネットワーキングの目的でまとめられた、1つ以上のコンテナのグループです。このチュートリアルのPodがもつコンテナは1つのみです。Kubernetesの[ * Deployment* ] ( /ja/docs/concepts/workloads/controllers/deployment/ ) はPodの状態を確認し、Podのコンテナが停止した場合には再起動します。DeploymentはPodの作成やスケールを管理するために推奨される方法(手段)です。
6391
64- 1. ` kubectl create` コマンドを使用してPodを管理するDeploymentを作成してください。Podは提供されたDockerイメージを元にコンテナを実行します。
92+ 1 . ` kubectl create ` コマンドを使用してPodを管理するDeploymentを作成してください。Podは提供されたDockerイメージを元にコンテナを実行します。
6593
6694 ``` shell
6795 # Webサーバーを含むテストコンテナイメージを実行する
@@ -81,6 +109,8 @@ Kubernetesの[*Pod*](/ja/docs/concepts/workloads/pods/) は、コンテナの管
81109 hello-node 1/1 1 1 1m
82110 ```
83111
112+ (Podが利用可能になるまで時間がかかる場合があります。" 0/1" と表示された場合は、数秒後にもう一度確認してみてください。)
113+
841143. Podを確認します:
85115
86116 ` ` ` shell
@@ -100,12 +130,29 @@ Kubernetesの[*Pod*](/ja/docs/concepts/workloads/pods/) は、コンテナの管
100130 kubectl get events
101131 ` ` `
102132
103- 5. ` kubectl` で設定を確認します:
133+ 5. ` kubectl` で設定を確認します:
104134
105135 ` ` ` shell
106136 kubectl config view
107137 ` ` `
108138
139+ 6. Podで実行されているコンテナのアプリケーションログを確認します(Podの名前は` kubectl get pods` で取得したものに置き換えてください)。
140+
141+ {{< note > }}
142+ ` kubectl logs` コマンドの引数` hello-node-5f76cf6ccf-br9b5` は、` kubectl get pods` コマンドで取得したPodの名前に置き換えてください。
143+ {{< /note > }}
144+
145+ ` ` ` shell
146+ kubectl logs hello-node-5f76cf6ccf-br9b5
147+ ` ` `
148+
149+ 出力は下記のようになります:
150+
151+ ```
152+ I0911 09:19:26.677397 1 log.go:195] Started HTTP server on port 8080
153+ I0911 09:19:26.677586 1 log.go:195] Started UDP server on port 8081
154+ ```
155+
109156{{< note >}}
110157`kubectl`コマンドの詳細な情報は[コマンドラインツール(kubectl)](/ja/docs/reference/kubectl/)を参照してください。
111158{{< /note >}}
@@ -114,14 +161,22 @@ Kubernetesの[*Pod*](/ja/docs/concepts/workloads/pods/) は、コンテナの管
114161
115162通常、PodはKubernetesクラスター内部のIPアドレスからのみアクセスすることができます。`hello-node`コンテナをKubernetesの仮想ネットワークの外部からアクセスするためには、Kubernetesの[*Service*](/ja/docs/concepts/services-networking/service/)としてPodを公開する必要があります。
116163
117- 1. ` kubectl expose` コマンドを使用してPodをインターネットに公開します:
164+ {{< warning >}}
165+ agnhostコンテナには`/shell`エンドポイントがあり、デバッグには便利ですが、インターネットに公開するのは危険です。
166+ インターネットに接続されたクラスターや、プロダクション環境のクラスターで実行しないでください。
167+ {{< /warning >}}
168+
169+ 1. `kubectl expose`コマンドを使用してPodをインターネットに公開します:
118170
119171 ```shell
120172 kubectl expose deployment hello-node --type=LoadBalancer --port=8080
121173 ```
122174
123175 `--type=LoadBalancer`フラグはServiceをクラスター外部に公開したいことを示しています。
124176
177+ テストイメージ内のアプリケーションコードはTCPの8080番ポートのみを待ち受けます。
178+ `kubectl expose`で8080番ポート以外を公開した場合、クライアントはそのポートに接続できません。
179+
1251802. 作成したServiceを確認します:
126181
127182 ```shell
@@ -137,18 +192,14 @@ Kubernetesの[*Pod*](/ja/docs/concepts/workloads/pods/) は、コンテナの管
137192 ```
138193
139194 ロードバランサーをサポートするクラウドプロバイダーでは、Serviceにアクセスするための外部IPアドレスが提供されます。
140- minikube では 、` LoadBalancer` タイプは` minikube service` コマンドを使用した接続可能なServiceを作成します。
195+ minikubeでは 、`LoadBalancer`タイプは`minikube service`コマンドを使用した接続可能なServiceを作成します。
141196
1421973. 次のコマンドを実行します:
143198
144199 ```shell
145200 minikube service hello-node
146201 ```
147202
148- 4. Katacoda環境のみ:ターミナル画面上部の+ボタンをクリックして ** Select port to view on Host 1** をクリックしてください。
149-
150- 5. Katacoda環境のみ:` 8080` の反対側のService出力に、5桁のポート番号が表示されます。このポート番号はランダムに生成されるため、ここで使用するポート番号と異なる場合があります。ポート番号テキストボックスに番号を入力し、ポートの表示をクリックしてください。前の例の場合は、` 30369` と入力します。
151-
152203 アプリケーションとその応答が表示されるブラウザーウィンドウが開きます。
153204
154205## アドオンの有効化
@@ -192,7 +243,7 @@ minikubeはビルトインの{{< glossary_tooltip text="アドオン" term_id="a
192243 出力は下記のようになります:
193244
194245 ```
195- metrics-server was successfully enabled
246+ The ' metrics-server' addon is enabled
196247 ```
197248
1982493. 作成されたPodとサービスを確認します:
@@ -224,7 +275,26 @@ minikubeはビルトインの{{< glossary_tooltip text="アドオン" term_id="a
224275 service/monitoring-influxdb ClusterIP 10.111.169.94 <none> 8083/TCP,8086/TCP 26s
225276 ```
226277
227- 4. ` metrics-server` を無効化します:
278+ 4. `metrics-server`の出力を確認します:
279+
280+ ```shell
281+ kubectl top pods
282+ ```
283+
284+ 出力は下記のようになります:
285+
286+ ```
287+ NAME CPU(cores) MEMORY(bytes)
288+ hello-node-ccf4b9788-4jn97 1m 6Mi
289+ ```
290+
291+ 次のメッセージが表示された場合は、しばらく待ってから再度実行してください:
292+
293+ ```
294+ error: Metrics API not available
295+ ```
296+
297+ 5. `metrics-server`を無効化します:
228298
229299 ```shell
230300 minikube addons disable metrics-server
@@ -245,7 +315,7 @@ kubectl delete service hello-node
245315kubectl delete deployment hello-node
246316```
247317
248- (オプション)minikubeの仮想マシン(VM)を停止します:
318+ minikubeクラスターを停止します
249319
250320``` shell
251321minikube stop
@@ -254,14 +324,20 @@ minikube stop
254324(オプション)minikubeのVMを削除します:
255325
256326``` shell
327+ # オプション
257328minikube delete
258329```
259330
331+ Kubernetesの学習で再度minikubeを使用したい場合、minikubeのVMを削除する必要はありません。
260332
333+ ## まとめ
334+ このページでは、minikubeクラスターを立ち上げて実行するための基本的な部分を説明しました。
335+ これでアプリケーションをデプロイする準備が整いました。
261336
262337## {{% heading "whatsnext" %}}
263338
264339
265- * [Deploymentオブジェクト](/ja/docs/concepts/workloads/controllers/deployment/)について学ぶ.
266- * [アプリケーションのデプロイ](/ja/docs/tasks/run-application/run-stateless-application-deployment/)について学ぶ.
267- * [Serviceオブジェクト](/ja/docs/concepts/services-networking/service/)について学ぶ.
340+ * _ [ kubectlで初めてのアプリケーションをKubernetesにデプロイする] ( /ja/docs/tutorials/kubernetes-basics/deploy-app/deploy-intro/ ) _ 。
341+ * [ Deploymentオブジェクト] ( /ja/docs/concepts/workloads/controllers/deployment/ ) について学ぶ。
342+ * [ アプリケーションのデプロイ] ( /ja/docs/tasks/run-application/run-stateless-application-deployment/ ) について学ぶ。
343+ * [ Serviceオブジェクト] ( /ja/docs/concepts/services-networking/service/ ) について学ぶ。
0 commit comments