--- title: Hello Minikube content_template: templates/tutorial weight: 5 menu: main: title: "Get Started" weight: 10 post: >
手を動かす準備はできていますか?本チュートリアルでは、Node.jsを使った簡単な"Hello World"を実行するKubernetesクラスタをビルドします。
card: name: tutorials weight: 10 --- {{% capture overview %}} このチュートリアルでは、[Minikube](/ja/docs/setup/learning-environment/minikube)とKatacodaを使用して、Kubernetes上でシンプルなHello WorldのNode.jsアプリケーションを動かす方法を紹介します。Katacodaはブラウザで無償のKubernetes環境を提供します。 {{< note >}} [Minikubeをローカルにインストール](/ja/docs/tasks/tools/install-minikube/)している場合もこのチュートリアルを進めることが可能です。 {{< /note >}} {{% /capture %}} {{% capture objectives %}} * Minikubeへのhello worldアプリケーションのデプロイ * アプリケーションの実行 * アプリケーションログの確認 {{% /capture %}} {{% capture prerequisites %}} このチュートリアルは下記のファイルからビルドされるコンテナーイメージを提供します: {{< codenew language="js" file="minikube/server.js" >}} {{< codenew language="conf" file="minikube/Dockerfile" >}} `docker build`コマンドについての詳細な情報は、[Dockerのドキュメント](https://docs.docker.com/engine/reference/commandline/build/)を参照してください。 {{% /capture %}} {{% capture lessoncontent %}} ## Minikubeクラスタの作成 1. **Launch Terminal** をクリックしてください {{< kat-button >}} {{< note >}}Minikubeをローカルにインストール済みの場合は、`minikube start`を実行してください。{{< /note >}} 2. ブラウザーでKubernetesダッシュボードを開いてください: ```shell minikube dashboard ``` 3. Katacoda環境のみ:ターミナルペーン上部の+ボタンをクリックしてから **Select port to view on Host 1** をクリックしてください。 4. Katacoda環境のみ:`30000`を入力し、**Display Port**をクリックしてください。 ## Deploymentの作成 Kubernetesの[*Pod*](/ja/docs/concepts/workloads/pods/pod/) は、コンテナの管理やネットワーキングの目的でまとめられた、1つ以上のコンテナのグループです。このチュートリアルのPodがもつコンテナは1つのみです。Kubernetesの [*Deployment*](/ja/docs/concepts/workloads/controllers/deployment/) はPodの状態を確認し、Podのコンテナが停止した場合には再起動します。DeploymentはPodの作成やスケールを管理するために推奨される方法(手段)です。 1. `kubectl create` コマンドを使用してPodを管理するDeploymentを作成してください。Podは提供されたDockerイメージを元にコンテナを実行します。 ```shell kubectl create deployment hello-node --image=gcr.io/hello-minikube-zero-install/hello-node ``` 2. Deploymentを確認します: ```shell kubectl get deployments ``` 出力は下記のようになります: ``` NAME READY UP-TO-DATE AVAILABLE AGE hello-node 1/1 1 1 1m ``` 3. Podを確認します: ```shell kubectl get pods ``` 出力は下記のようになります: ``` NAME READY STATUS RESTARTS AGE hello-node-5f76cf6ccf-br9b5 1/1 Running 0 1m ``` 4. クラスタイベントを確認します: ```shell kubectl get events ``` 5. `kubectl` で設定を確認します: ```shell kubectl config view ``` {{< note >}} `kubectl`コマンドの詳細な情報は[kubectl overview](/docs/user-guide/kubectl-overview/)を参照してください。{{< /note >}} ## Serviceの作成 通常、PodはKubernetesクラスタ内部のIPアドレスからのみアクセスすることができます。`hello-node`コンテナをKubernetesの仮想ネットワークの外部からアクセスするためには、Kubernetesの[*Service*](/ja/docs/concepts/services-networking/service/)としてPodを公開する必要があります。 1. `kubectl expose` コマンドを使用してPodをインターネットに公開します: ```shell kubectl expose deployment hello-node --type=LoadBalancer --port=8080 ``` `--type=LoadBalancer`フラグはServiceをクラスタ外部に公開したいことを示しています。 2. 作成したServiceを確認します: ```shell kubectl get services ``` 出力は下記のようになります: ``` NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE hello-node LoadBalancer 10.108.144.78