2
2
title : Hello Minikube
3
3
content_type : tutorial
4
4
weight : 5
5
- card :
5
+ card :
6
6
name : tutorials
7
7
weight : 10
8
8
---
9
9
10
10
<!-- overview -->
11
11
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を利用してすべての要求をエコーバックするコンテナイメージを提供します。
19
14
20
15
## {{% heading "objectives" %}}
21
16
22
-
23
17
* minikubeへのサンプルアプリケーションのデプロイ
24
18
* アプリケーションの実行
25
19
* アプリケーションログの確認
26
20
27
-
28
-
29
21
## {{% heading "prerequisites" %}}
30
22
31
23
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 >}}
35
29
30
+ また、` kubectl ` をインストールする必要があります。
31
+ インストール手順は[ ツールのインストール] ( /ja/docs/tasks/tools/#kubectl ) を参照してください。
36
32
37
33
38
34
<!-- lessoncontent -->
39
35
40
36
## minikubeクラスターの作成
41
37
42
- 1 . ** Launch Terminal** をクリックしてください
38
+ ``` shell
39
+ minikube start
40
+ ```
41
+
42
+ ## ダッシュボードを開く
43
43
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 ` を実行したターミナルに戻ります。
45
55
46
56
{{< 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 ` コマンドを実行すれば、新しい別のプロキシを作成してダッシュボードにアクセスできます。
48
68
{{< /note >}}
49
69
50
- 2 . ブラウザーでKubernetesダッシュボードを開いてください:
70
+ {{% /tab %}}
71
+ {{% tab name="URLをコピー&ペースト" %}}
51
72
52
- ``` shell
53
- minikube dashboard
54
- ```
73
+ minikubeが自動的にWebブラウザーを開くことを望まない場合、` dashboard ` サブコマンドを` --url ` フラグと共に実行します。
74
+ ` minikube ` は、お好みのブラウザーで開くことができるURLを出力します。
55
75
56
- 3. Katacoda環境のみ:ターミナルペーン上部の+ボタンをクリックしてから ** Select port to view on Host 1** をクリックしてください。
76
+ ** 新しい** ターミナルを開き、次のコマンドを実行します:
77
+ ``` shell
78
+ # 新しいターミナルを起動し、以下を実行したままにします
79
+ minikube dashboard --url
80
+ ```
57
81
58
- 4. Katacoda環境のみ:` 30000` を入力し、** Display Port** をクリックしてください。
82
+ URLをコピー&ペーストし、ブラウザーで開きます。
83
+ ` minikube start ` を実行したターミナルに戻ります。
84
+
85
+ {{% /tab %}}
86
+ {{< /tabs >}}
59
87
60
88
## Deploymentの作成
61
89
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の作成やスケールを管理するために推奨される方法(手段)です。
63
91
64
- 1. ` kubectl create` コマンドを使用してPodを管理するDeploymentを作成してください。Podは提供されたDockerイメージを元にコンテナを実行します。
92
+ 1 . ` kubectl create ` コマンドを使用してPodを管理するDeploymentを作成してください。Podは提供されたDockerイメージを元にコンテナを実行します。
65
93
66
94
``` shell
67
95
# Webサーバーを含むテストコンテナイメージを実行する
@@ -81,6 +109,8 @@ Kubernetesの[*Pod*](/ja/docs/concepts/workloads/pods/) は、コンテナの管
81
109
hello-node 1/1 1 1 1m
82
110
```
83
111
112
+ (Podが利用可能になるまで時間がかかる場合があります。" 0/1" と表示された場合は、数秒後にもう一度確認してみてください。)
113
+
84
114
3. Podを確認します:
85
115
86
116
` ` ` shell
@@ -100,12 +130,29 @@ Kubernetesの[*Pod*](/ja/docs/concepts/workloads/pods/) は、コンテナの管
100
130
kubectl get events
101
131
` ` `
102
132
103
- 5. ` kubectl` で設定を確認します:
133
+ 5. ` kubectl` で設定を確認します:
104
134
105
135
` ` ` shell
106
136
kubectl config view
107
137
` ` `
108
138
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
+
109
156
{{< note >}}
110
157
`kubectl`コマンドの詳細な情報は[コマンドラインツール(kubectl)](/ja/docs/reference/kubectl/)を参照してください。
111
158
{{< /note >}}
@@ -114,14 +161,22 @@ Kubernetesの[*Pod*](/ja/docs/concepts/workloads/pods/) は、コンテナの管
114
161
115
162
通常、PodはKubernetesクラスター内部のIPアドレスからのみアクセスすることができます。`hello-node`コンテナをKubernetesの仮想ネットワークの外部からアクセスするためには、Kubernetesの[*Service*](/ja/docs/concepts/services-networking/service/)としてPodを公開する必要があります。
116
163
117
- 1. ` kubectl expose` コマンドを使用してPodをインターネットに公開します:
164
+ {{< warning >}}
165
+ agnhostコンテナには`/shell`エンドポイントがあり、デバッグには便利ですが、インターネットに公開するのは危険です。
166
+ インターネットに接続されたクラスターや、プロダクション環境のクラスターで実行しないでください。
167
+ {{< /warning >}}
168
+
169
+ 1. `kubectl expose`コマンドを使用してPodをインターネットに公開します:
118
170
119
171
```shell
120
172
kubectl expose deployment hello-node --type=LoadBalancer --port=8080
121
173
```
122
174
123
175
`--type=LoadBalancer`フラグはServiceをクラスター外部に公開したいことを示しています。
124
176
177
+ テストイメージ内のアプリケーションコードはTCPの8080番ポートのみを待ち受けます。
178
+ `kubectl expose`で8080番ポート以外を公開した場合、クライアントはそのポートに接続できません。
179
+
125
180
2. 作成したServiceを確認します:
126
181
127
182
```shell
@@ -137,18 +192,14 @@ Kubernetesの[*Pod*](/ja/docs/concepts/workloads/pods/) は、コンテナの管
137
192
```
138
193
139
194
ロードバランサーをサポートするクラウドプロバイダーでは、Serviceにアクセスするための外部IPアドレスが提供されます。
140
- minikube では 、` LoadBalancer` タイプは` minikube service` コマンドを使用した接続可能なServiceを作成します。
195
+ minikubeでは 、`LoadBalancer`タイプは`minikube service`コマンドを使用した接続可能なServiceを作成します。
141
196
142
197
3. 次のコマンドを実行します:
143
198
144
199
```shell
145
200
minikube service hello-node
146
201
```
147
202
148
- 4. Katacoda環境のみ:ターミナル画面上部の+ボタンをクリックして ** Select port to view on Host 1** をクリックしてください。
149
-
150
- 5. Katacoda環境のみ:` 8080` の反対側のService出力に、5桁のポート番号が表示されます。このポート番号はランダムに生成されるため、ここで使用するポート番号と異なる場合があります。ポート番号テキストボックスに番号を入力し、ポートの表示をクリックしてください。前の例の場合は、` 30369` と入力します。
151
-
152
203
アプリケーションとその応答が表示されるブラウザーウィンドウが開きます。
153
204
154
205
## アドオンの有効化
@@ -192,7 +243,7 @@ minikubeはビルトインの{{< glossary_tooltip text="アドオン" term_id="a
192
243
出力は下記のようになります:
193
244
194
245
```
195
- metrics-server was successfully enabled
246
+ The ' metrics-server' addon is enabled
196
247
```
197
248
198
249
3. 作成されたPodとサービスを確認します:
@@ -224,7 +275,26 @@ minikubeはビルトインの{{< glossary_tooltip text="アドオン" term_id="a
224
275
service/monitoring-influxdb ClusterIP 10.111.169.94 <none> 8083/TCP,8086/TCP 26s
225
276
```
226
277
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`を無効化します:
228
298
229
299
```shell
230
300
minikube addons disable metrics-server
@@ -245,7 +315,7 @@ kubectl delete service hello-node
245
315
kubectl delete deployment hello-node
246
316
```
247
317
248
- (オプション)minikubeの仮想マシン(VM)を停止します:
318
+ minikubeクラスターを停止します
249
319
250
320
``` shell
251
321
minikube stop
@@ -254,14 +324,20 @@ minikube stop
254
324
(オプション)minikubeのVMを削除します:
255
325
256
326
``` shell
327
+ # オプション
257
328
minikube delete
258
329
```
259
330
331
+ Kubernetesの学習で再度minikubeを使用したい場合、minikubeのVMを削除する必要はありません。
260
332
333
+ ## まとめ
334
+ このページでは、minikubeクラスターを立ち上げて実行するための基本的な部分を説明しました。
335
+ これでアプリケーションをデプロイする準備が整いました。
261
336
262
337
## {{% heading "whatsnext" %}}
263
338
264
339
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