ラボの設定手順と要件
アカウントと進行状況を保護します。このラボを実行するには、常にシークレット ブラウジング ウィンドウとラボの認証情報を使用してください。

GKE でのデータベースの実行

ラボ 1時間 universal_currency_alt クレジット: 5 show_chart 中級
info このラボでは、学習をサポートする AI ツールが組み込まれている場合があります。
このコンテンツはまだモバイル デバイス向けに最適化されていません。
快適にご利用いただくには、メールで送信されたリンクを使用して、デスクトップ パソコンでアクセスしてください。

概要

このラボでは、Google Kubernetes Engine(GKE)クラスタを作成し、そのクラスタにデータベースをデプロイします。データベースをデプロイする方法は 2 つあります。1 つは独自の構成コードを使用する方法、もう 1 つは Helm という Kubernetes パッケージ管理システムを使用する方法です。

目標

このラボでは、次のタスクの実行方法について学びます。

  • GKE クラスタを作成する。
  • クラスタに MySQL をデプロイする。
  • Helm を使用して MySQL をクラスタにデプロイする。

設定

このタスクでは、ラボの初期化手順を行います。

各ラボでは、新しい Google Cloud プロジェクトとリソースセットを一定時間無料で利用できます。

  1. シークレット ウィンドウを使用して Google Skills にログインします。

  2. ラボのアクセス時間(例: 1:15:00)に注意し、時間内に完了できるようにしてください。 一時停止機能はありません。必要な場合はやり直せますが、最初からになります。

  3. 準備ができたら、[ラボを開始] をクリックします。

  4. ラボの認証情報(ユーザー名パスワード)をメモしておきます。この情報は、Google Cloud コンソールにログインする際に使用します。

  5. [Google コンソールを開く] をクリックします。

  6. [別のアカウントを使用] をクリックし、このラボの認証情報をコピーしてプロンプトに貼り付けます。 他の認証情報を使用すると、エラーや料金が発生します。

  7. 利用規約に同意し、再設定用のリソースページをスキップします。

タスク 1. GKE クラスタを作成する

  1. 新しいウェブブラウザ ウィンドウを開き、Google Cloud コンソール(console.cloud.google.com)に移動します。プロジェクト セレクタを使用して、 名前が「qwiklabs-gcp」で始まる最初のプロジェクトを選択します。

  2. ナビゲーション メニュー(ナビゲーション メニュー アイコン)で、[Kubernetes Engine] > [クラスタ] をクリックします。

  3. [作成] をクリックします。

  4. [クラスタの作成] ポップアップに [Standard: 自身でクラスタを管理] が表示されます。

  5. [Standard: 自身でクラスタを管理する] の横にある [構成] をクリックします。

  6. [ロケーション タイプ] で [ゾーン] を選択します。

  7. すべての項目をデフォルト値のままにして、[作成] をクリックします。クラスタの準備ができるまで数分かかります。

  8. クラスタの準備ができたら、操作メニューの [接続] をクリックします。

開かれた [その他の操作] メニューで選択されている [接続] オプション

クラスタに接続するためのコマンドが指定されています。

  1. コマンドを入力した状態で Cloud Shell を開くには、[Cloud Shell で実行] をクリックし、プロンプトが表示されたら [続行] をクリックします。

[コマンドライン アクセス] ページでハイライト表示された [Cloud Shell で実行] ボタン

  1. Enter キーを押してコマンドを実行します。プロンプトが表示されたら、[承認] をクリックします。

クラスタへの接続が完了し、プログラムをデプロイする準備が整いました。

  1. 次の kubectl コマンドで接続をテストします。
kubectl get nodes

このコマンドは、このクラスタを構成する 3 つの仮想マシンのリストを返します。

[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。 Kubernetes クラスタを作成する

確認

Kubernetes クラスタが作成されました。次に、MySQL を構成してデプロイし、クラスタ内で実行できるようにします。

タスク 2. クラスタに MySQL をデプロイする

データベースの root パスワードが必要です。パスワードは Kubernetes Secret として保存します。Secret は Key-Value ペアです。この場合、キーは ROOT_PASSWORD で、値は password です。

  1. Secret を作成するには、次のコマンドを入力します。
kubectl create secret generic mysql-secrets --from-literal=ROOT_PASSWORD="password"
  1. 作成する構成ファイル用のフォルダを作成し、そのフォルダに移動します。
mkdir mysql-gke cd mysql-gke
  1. Kubernetes 構成ファイルを作成します。Cloud Shell で [エディタを開く] をクリックします。

UI でハイライト表示された [エディタを開く] ボタン

  1. 左側の [mysql-gke] フォルダを選択します。

エクスプローラでハイライト表示されている mysql-gke フォルダ

  1. mysql-gke フォルダを右クリックし、[新しいファイル] をクリックします。

  2. [名前] に「volume.yaml」と入力します。

  3. 次の YAML コードを入力してファイルを保存します。

apiVersion: v1 kind: PersistentVolumeClaim metadata: name: mysql-data-disk spec: accessModes: - ReadWriteOnce resources: requests: storage: 1Gi

これにより、MySQL データベース用に 1 GB のディスク容量が予約されます。mysql-data-disk という名前をメモしておきます。この名前は次のファイルで使用します。

  1. MySQL データベースを構成するには、mysql-gke フォルダに別の新しいファイルを作成して deployment.yaml という名前を付け、そのファイルに次のコードを貼り付けます。
apiVersion: apps/v1 kind: Deployment metadata: name: mysql-deployment labels: app: mysql spec: replicas: 1 selector: matchLabels: app: mysql template: metadata: labels: app: mysql spec: containers: - name: mysql image: mysql:8.0 ports: - containerPort: 3306 volumeMounts: - mountPath: "/var/lib/mysql" subPath: "mysql" name: mysql-data env: - name: MYSQL_ROOT_PASSWORD valueFrom: secretKeyRef: name: mysql-secrets key: ROOT_PASSWORD - name: MYSQL_USER value: testuser - name: MYSQL_PASSWORD value: password volumes: - name: mysql-data persistentVolumeClaim: claimName: mysql-data-disk

注:

  • 19 行目では、MySQL Docker イメージが指定されています。
  • 26 行目からは、先ほど作成した Secret を使用して、データベースの root パスワードの環境変数が作成されます。簡単なパスワードでテストユーザーを作成する変数も含まれています。
  • 最後の行では、前のファイルで割り当てたディスク容量が使用されています。

データベースにアクセスするには、サービスが必要です。

  1. mysql-gke フォルダに 3 つ目のファイルを作成し、service.yaml という名前を付けて、そのファイルに次のコードを貼り付けます。
apiVersion: v1 kind: Service metadata: name: mysql-service spec: selector: app: mysql ports: - protocol: TCP port: 3306 targetPort: 3306 注: これにより、MySQL データベースにリクエストを転送する、クラスタ内からデータベースにアクセスできるサービスが作成されます。
  1. Cloud Shell で、[ターミナルを開く] をクリックしてコマンドラインに戻ります。正しいフォルダにいることを確かめてから「ls」と入力し、3 つの YAML ファイルがあることを確認します。

  2. データベースをデプロイするには、次の kubectl コマンドを入力します。

kubectl apply -f volume.yaml kubectl apply -f deployment.yaml kubectl apply -f service.yaml
  1. リソースが作成されるまで 1 分ほど待ってから、次のコマンドを入力します。
kubectl get pods

データベースがインストールされている Pod が実行されている必要があります。まだ実行されていない場合は、しばらく待ってからもう一度試してください。

注: この時点では、クライアント アプリケーションはなく、データベースにはクラスタ内からのみアクセスできます。次のステップでは、データベースが実行されている Pod の内部からデータベースにアクセスします。

[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。 クラスタに MySQL をデプロイする

  1. 前のコマンドで取得した Pod の名前をクリップボードにコピーします。その名前は mysql-deployment- で始まり、その後に一意の文字列が続きます。

  2. 次のコマンドを入力しますが、< Pod 名 > は実際の Pod 名に置き換えてください

kubectl exec -it <mysql-deployment-76fdc44468-rfhbp> -- /bin/bash

これにより、MySQL Pod 内に bash プロンプトが表示されます。

  1. MySQL にログインするには、次のように入力します。
mysql -u root -p
  1. プロンプトが表示されたら、パスワード「password」を入力します。すると mysql プロンプトが表示されます。

  2. 次のコマンドを実行します。

show databases;
  1. 新しいデータベースを作成します。
create database pets;
  1. データベースが作成されたことを確認するには、次のように入力します。
show databases;
  1. exit」と入力して MySQL を終了します。

  2. もう一度 exit と入力して Cloud Shell コマンド プロンプトに戻ります。

  3. 作成したものをすべて削除するには、次のコマンドを入力します。

kubectl delete -f service.yaml kubectl delete -f deployment.yaml kubectl delete -f volume.yaml

確認

Kubernetes 構成ファイルを使用して、MySQL データベースを Kubernetes クラスタにデプロイしました。

Helm は Kubernetes のパッケージ管理システムです。Kubernetes クラスタへのデータベースやその他のアプリケーションのデプロイがしやすくなります。これは次のステップで使用します。

タスク 3. Helm を使用して MySQL をクラスタにデプロイする

引き続き Cloud Shell で、Kubernetes クラスタに接続されている状態です。

  1. Bitnami Helm リポジトリをクラスタに追加するには、次のコマンドを入力します。
helm repo add bitnami https://charts.bitnami.com/bitnami
  1. Helm パッケージを更新するには、次のコマンドを入力します。
helm repo update
  1. Helm を使用して mydb という名前の MySQL をインストールします。
helm install mydb bitnami/mysql

[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。 Helm を使用してクラスタに MySQL をデプロイする

  1. helm install コマンドの出力を確認し、提供された手順に沿ってデータベースに接続します。

  2. データベースへの接続が確認できたら、終了して Cloud Shell のコマンド プロンプトに戻ります。

  3. Helm デプロイを確認するには、次のコマンドを入力します。

helm ls

デプロイの名前が、インストール コマンドで指定した mydb であることがわかります。

  1. デプロイを削除するには、次のコマンドを入力します。
helm delete mydb

これで完了です。Kubernetes クラスタを作成してから、最初は独自の構成コードを使用し、次に Helm を使用して、MySQL データベースをそのクラスタにデプロイしました。

ラボを終了する

ラボが完了したら、[ラボを終了] をクリックします。ラボで使用したリソースが Google Skills から削除され、アカウントの情報も消去されます。

ラボの評価を求めるダイアログが表示されたら、星の数を選択してコメントを入力し、[送信] をクリックします。

星の数は、それぞれ次の評価を表します。

  • 星 1 つ = 非常に不満
  • 星 2 つ = 不満
  • 星 3 つ = どちらともいえない
  • 星 4 つ = 満足
  • 星 5 つ = 非常に満足

フィードバックを送信しない場合は、ダイアログ ボックスを閉じてください。

フィードバックやご提案の送信、修正が必要な箇所をご報告いただく際は、[サポート] タブをご利用ください。

Copyright 2026 Google LLC All rights reserved. Google および Google のロゴは、Google LLC の商標です。その他すべての社名および製品名は、それぞれ該当する企業の商標である可能性があります。

始める前に

  1. ラボでは、Google Cloud プロジェクトとリソースを一定の時間利用します
  2. ラボには時間制限があり、一時停止機能はありません。ラボを終了した場合は、最初からやり直す必要があります。
  3. 画面左上の [ラボを開始] をクリックして開始します

シークレット ブラウジングを使用する

  1. ラボで使用するユーザー名パスワードをコピーします
  2. プライベート モードで [コンソールを開く] をクリックします

コンソールにログインする

    ラボの認証情報を使用して
  1. ログインします。他の認証情報を使用すると、エラーが発生したり、料金が発生したりする可能性があります。
  2. 利用規約に同意し、再設定用のリソースページをスキップします
  3. ラボを終了する場合や最初からやり直す場合を除き、[ラボを終了] はクリックしないでください。クリックすると、作業内容がクリアされ、プロジェクトが削除されます

このコンテンツは現在ご利用いただけません

利用可能になりましたら、メールでお知らせいたします

ありがとうございます。

利用可能になりましたら、メールでご連絡いたします

1 回に 1 つのラボ

既存のラボをすべて終了して、このラボを開始することを確認してください

シークレット ブラウジングを使用してラボを実行する

このラボを実行するには、シークレット モードまたはシークレット ブラウジング ウィンドウを使用することをおすすめします。これにより、個人アカウントと受講者アカウントの競合を防ぎ、個人アカウントに追加料金が発生することを防ぎます。