0Pricing
DevOps Bootcamp · レッスン

シンプルなアプリのデプロイ

kubectlを使って、基本的なコンテナ化アプリケーションをMinikubeクラスターにデプロイします。

「シンプルなアプリのデプロイ」はCoddyKit上の無料DevOps Bootcampレッスンです。 これはレッスン3/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはDevOps Bootcamp学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 DevOps Bootcampコースには全4レッスンが含まれています。

Kubernetesで最初のアプリを動かす

ようこそ。このレッスンでは、大きな一歩として、Minikubeクラスターに初めてアプリケーションをデプロイします。

強力なコマンドラインツールであるkubectlを使い、コードから実行中のサービスになるまでアプリの流れを管理します。

シンプルなアプリのデプロイ — イラスト1

Deploymentの概要

Kubernetesでは、アプリケーションを実行するようクラスターに指示するためにDeploymentを使います。

  • 同一のアプリケーションのコピー(Pod)の集合を管理します。
  • 指定した数のコピーが常に実行されるようにします。
  • アプリのインスタンスに対する設計図兼管理者のようなものです。

`kubectl`でデプロイする

アプリを実行する最も簡単な方法は、kubectl create deploymentコマンドを使うことです。

Deploymentの名前と、実行するコンテナイメージを指定するだけで済みます。あとはKubernetesが処理します。

最初のDeploymentを作成する

シンプルなNginx Webサーバーをデプロイしましょう。このコマンドは、nginx Dockerイメージを使ってnginx-deploymentという名前のDeploymentを作成するようKubernetesに指示します。

kubectl create deployment nginx-deployment --image=nginx

Minikubeが実行されている環境のターミナルで、このコマンドを実行してください。

Deploymentを確認する

コマンドを実行すると、Kubernetesは必要なリソースの作成を開始します。状態は次のコマンドで確認できます。

  • Deploymentを確認する:kubectl get deployments
  • Deploymentによって作成されたPodを確認する:kubectl get pods

nginx-deploymentと、それに対応するPodを探してみましょう。

Serviceが重要な理由

NginxのPodは実行中ですが、ユーザーはどのようにアクセスすればよいのでしょうか。

  • PodのIPアドレスは一時的なものです。
  • Podは停止して置き換えられることがあり、その場合は新しいIPアドレスが割り当てられます。
  • Serviceは安定したネットワークエンドポイントを提供し、Podへのゲートウェイとして機能します。

Podが作成されたり削除されたりしても、正常なPodに常にトラフィックが届くようにします。

アプリケーションを公開する

Nginxにアクセスできるようにするため、kubectl exposeを使ってServiceを作成します。Deployment名とポートを指定します。

kubectl expose deployment nginx-deployment --type=NodePort --port=80

これにより、外部トラフィックをNginxのPodのポート80へルーティングするServiceが作成されます。

ローカルでアプリにアクセスする

NginxのDeploymentがServiceによって公開されたので、Minikubeを使ってアクセスできます。

次のコマンドを実行すると、MinikubeがNginx Webサーバーを開くブラウザーウィンドウを表示します。

minikube service nginx-deployment

「Welcome to nginx!」というページが表示されるはずです。

クラスターをクリーンアップする

不要になったリソースをクリーンアップするのはよい習慣です。これにより、Minikubeクラスターのリソースを解放できます。

  • Serviceを削除する:kubectl delete service nginx-deployment
  • Deploymentを削除する(Podも削除されます):kubectl delete deployment nginx-deployment

必ずServiceを先に削除し、その後でDeploymentを削除してください。

クイックチェック

アプリケーションのデプロイと公開に成功しました。busyboxイメージを使ってmy-appという名前のアプリをまずデプロイし、その後ポート8080でNodePort Serviceとして公開するには、どのようなkubectlコマンドの順序を使いますか。

まとめ:アプリが稼働中です

おめでとうございます。Minikubeを使って、Kubernetes上で最初のアプリケーションのデプロイ、公開、アクセスに成功しました。

  • kubectl create deploymentを使ってコンテナを実行しました。
  • kubectl expose deploymentを使ってService経由でアクセスできるようにしました。
  • minikube serviceでアクセスし、kubectl deleteでクリーンアップしました。

これでKubernetesの習得に一歩近づきました。

よくある質問

「シンプルなアプリのデプロイ」レッスンは無料ですか?

はい。「シンプルなアプリのデプロイ」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、DevOps Bootcampコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 DevOps Bootcampコースには全4レッスンが含まれています。

「シンプルなアプリのデプロイ」で何を学びますか?

kubectlを使って、基本的なコンテナ化アプリケーションをMinikubeクラスターにデプロイします。 ブラウザで直接実行するハンズオンコードでDevOps Bootcampを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

DevOps Bootcampを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのDevOps Bootcampは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン3/4です。

「シンプルなアプリのデプロイ」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このDevOps Bootcampレッスンでコードを書いて実行できますか?

はい。すべてのDevOps Bootcampレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. Minikubeのインストールとセットアップ
  2. Kubeconfigとコンテキスト
  3. シンプルなアプリのデプロイ
  4. クラスターの調査とトラブルシューティング
← DevOps Bootcampに戻る