チェックポイント
Create a private cluster
/ 10
Create a VM instance
/ 10
Authorize your external address range
/ 20
Delete the Kubernetes cluster
/ 20
Create a subnetwork and secondary ranges in us-central1 region
/ 10
Create a private cluster that uses your subnetwork
/ 10
Authorize your external address range for private cluster in custom subnetwork
/ 20
限定公開 Kubernetes クラスタのセットアップ
GSP178
概要
Kubernetes Engine における限定公開クラスタとは、公共のインターネットからマスターにアクセスできないようにするクラスタのことです。このクラスタのノードにはプライベート アドレスのみが指定されている(パブリック IP アドレスが指定されていない)ため、隔離された環境でワークロードが実行されます。ノードとマスターは、VPC ピアリングを使用して相互に通信します。
Kubernetes Engine API では、アドレス範囲がクラスレス ドメイン間ルーティング(CIDR)ブロックとして表されます。
このラボでは、限定公開 Kubernetes クラスタを作成する方法を学びます。
演習内容
- 限定公開 Kubernetes クラスタを作成します。
前提条件
- Kubernetes クラスタの作成と起動の経験があり、CIDR 範囲での IP アドレス指定について熟知している必要があります。
設定と要件
[ラボを開始] ボタンをクリックする前に
こちらの手順をお読みください。ラボの時間は記録されており、一時停止することはできません。[ラボを開始] をクリックするとスタートするタイマーは、Google Cloud のリソースを利用できる時間を示しています。
このハンズオンラボでは、シミュレーションやデモ環境ではなく、実際のクラウド環境を使ってご自身でラボのアクティビティを行うことができます。そのため、ラボの受講中に Google Cloud にログインおよびアクセスするための、新しい一時的な認証情報が提供されます。
このラボを完了するためには、下記が必要です。
- 標準的なインターネット ブラウザ(Chrome を推奨)
- ラボを完了するために十分な時間を確保してください。ラボをいったん開始すると一時停止することはできません。
ラボを開始して Google Cloud コンソールにログインする方法
-
[ラボを開始] ボタンをクリックします。ラボの料金をお支払いいただく必要がある場合は、表示されるポップアップでお支払い方法を選択してください。 左側の [ラボの詳細] パネルには、以下が表示されます。
- [Google Cloud コンソールを開く] ボタン
- 残り時間
- このラボで使用する必要がある一時的な認証情報
- このラボを行うために必要なその他の情報(ある場合)
-
[Google Cloud コンソールを開く] をクリックします(Chrome ブラウザを使用している場合は、右クリックして [シークレット ウィンドウでリンクを開く] を選択します)。
ラボでリソースが起動し、別のタブで [ログイン] ページが表示されます。
ヒント: タブをそれぞれ別のウィンドウで開き、並べて表示しておきましょう。
注: [アカウントの選択] ダイアログが表示されたら、[別のアカウントを使用] をクリックします。 -
必要に応じて、下のユーザー名をコピーして、[ログイン] ダイアログに貼り付けます。
{{{user_0.username | "Username"}}} [ラボの詳細] パネルでも [ユーザー名] を確認できます。
-
[次へ] をクリックします。
-
以下のパスワードをコピーして、[ようこそ] ダイアログに貼り付けます。
{{{user_0.password | "Password"}}} [ラボの詳細] パネルでも [パスワード] を確認できます。
-
[次へ] をクリックします。
重要: ラボで提供された認証情報を使用する必要があります。Google Cloud アカウントの認証情報は使用しないでください。 注: このラボでご自身の Google Cloud アカウントを使用すると、追加料金が発生する場合があります。 -
その後次のように進みます。
- 利用規約に同意してください。
- 一時的なアカウントなので、復元オプションや 2 要素認証プロセスは設定しないでください。
- 無料トライアルには登録しないでください。
その後、このタブで Google Cloud コンソールが開きます。
Cloud Shell をアクティブにする
Cloud Shell は、開発ツールと一緒に読み込まれる仮想マシンです。5 GB の永続ホーム ディレクトリが用意されており、Google Cloud で稼働します。Cloud Shell を使用すると、コマンドラインで Google Cloud リソースにアクセスできます。
- Google Cloud コンソールの上部にある「Cloud Shell をアクティブにする」アイコン をクリックします。
接続した時点で認証が完了しており、プロジェクトに各自の PROJECT_ID が設定されます。出力には、このセッションの PROJECT_ID を宣言する次の行が含まれています。
gcloud
は Google Cloud のコマンドライン ツールです。このツールは、Cloud Shell にプリインストールされており、タブ補完がサポートされています。
- (省略可)次のコマンドを使用すると、有効なアカウント名を一覧表示できます。
-
[承認] をクリックします。
-
出力は次のようになります。
出力:
- (省略可)次のコマンドを使用すると、プロジェクト ID を一覧表示できます。
出力:
出力例:
gcloud
ドキュメントの全文については、gcloud CLI の概要ガイドをご覧ください。
タスク 1. リージョンとゾーンを設定する
- このラボのプロジェクト リージョンを設定します。
- リージョンの変数を作成します。
- ゾーンの変数を作成します。
詳しくは、リージョンとゾーンのドキュメントをご確認ください。
gcloud
を実行する場合はセッション間で config 設定が維持されますが、Cloud Shell で実行する場合はセッションごと、または再接続するたびに設定する必要があります。
タスク 2. 限定公開クラスタを作成する
- 限定公開クラスタを作成する場合、Kubernetes のマスター コンポーネントを実行する VM の
/28
CIDR 範囲を指定し、IP エイリアスを有効にする必要があります。
次に、private-cluster
という名前のクラスタを作成し、マスターに対して CIDR 範囲を 172.16.0.16/28
と指定します。IP エイリアスを有効にして、Kubernetes Engine が自動的にサブネットワークを作成するようにします。
--private-cluster
、--master-ipv4-cidr
、--enable-ip-alias
のフラグを使用して限定公開クラスタを作成します。
- 次のコマンドを実行してクラスタを作成します。
完了したタスクをテストする
[進行状況を確認] をクリックして、実行したタスクを確認します。限定公開クラスタが正常に作成されている場合は、評価スコアが表示されます。
タスク 3. サブネットとセカンダリ アドレス範囲を表示する
- デフォルト ネットワークのサブネットを一覧表示します。
-
出力で、クラスタに対して自動的に作成されたサブネットワークの名前を確認します(
gke-private-cluster-subnet-xxxxxxxx
のようになっています)。次のステップで使用するため、クラスタの名前を保存しておきます。 -
次に自動的に作成されたサブネットの情報を取得します。次のコマンドの
[SUBNET_NAME]
を対象のサブネットに置き換えて実行します。
出力には、プライマリ アドレス範囲と GKE の限定公開クラスタの名前、セカンダリ範囲が表示されます。
出力からは、セカンダリ範囲の 1 つ目が Pod 用で、2 つ目が Service 用であることがわかります。
privateIPGoogleAccess
が true
に設定されていることに注意してください。これにより、プライベート IP アドレスだけが指定されているクラスタホストが、Google API やサービスと通信できるようになります。
タスク 4. マスター承認済みネットワークを有効にする
この時点で、マスターにアクセスできる IP アドレスは、次の範囲のアドレスだけです。
- ノードに使用される、サブネットワークのプライマリ範囲。
- ポッドに使用される、サブネットワークのセカンダリ範囲。
追加でマスターにアクセスできるようにするには、選択したアドレス範囲を承認する必要があります。
VM インスタンスを作成する
- Kubernetes クラスタへの接続を確認するために使用するソース インスタンスを作成します。
完了したタスクをテストする
[進行状況を確認] をクリックして、実行したタスクを確認します。VM インスタンスが正常に作成されている場合は、評価スコアが表示されます。
- 次のコマンドで、
source-instance
の<External_IP>
を取得します。
出力例:
-
後のステップで使用するために、
<nat_IP>
アドレスをコピーして保存します。 -
次のコマンドを実行して、外部アドレス範囲を承認します。
[MY_EXTERNAL_RANGE]
は、前の出力で取得した外部アドレスの CIDR 範囲(natIP/32
)に置き換えます。CIDR 範囲をnatIP/32
にすると、1 つの IP アドレスが許可リストに登録されます。
[MY_EXTERNAL_RANGE]
を該当のネットワーク外部アドレスの CIDR 範囲に置き替えます。
完了したタスクをテストする
[進行状況を確認] をクリックして、実行したタスクを確認します。外部アドレス範囲が正常に承認された場合は、評価スコアが表示されます。
これで外部アドレスの範囲からマスターにアクセスできるようになったので、今度は kubectl
をインストールしてクラスタの情報を取得します。たとえば、kubectl
を使用すると、ノードに外部 IP アドレスが指定されていないことを確認できます。
- 次のコマンドで
source-instance
に SSH 接続します。
-
Y
を押して続行します。パスフレーズの質問への回答を入力して Enter キーを押します。 -
SSH シェルで、Cloud SDK の
kubectl
コンポーネントをインストールします。
- 次のコマンドで、SSH シェルから Kubernetes クラスタへのアクセスを構成します。
ZONE
変数でエクスポートされていることを確認してください。
- クラスタノードに外部 IP アドレスが指定されていないことを確認します。
ノードに内部 IP アドレスが指定されていて、外部アドレスが指定されていないことが出力に示されます。
- 次のコマンドでも、ノードに外部 IP アドレスが指定されていないことを確認できます。
出力では EXTERNAL-IP
に空白の列が返されます。
- 次のコマンドを入力して SSH シェルを閉じます。
タスク 5. クリーンアップ
- Kubernetes クラスタを削除します。
-
Y
を押して続行します。
完了したタスクをテストする
[進行状況を確認] をクリックして、実行したタスクを確認します。Kubernetes クラスタが正常に削除された場合は、評価スコアが表示されます。
タスク 6. カスタム サブネットワークを使用する限定公開クラスタを作成する
前のセクションでは、Kubernetes Engine によって自動的にサブネットワークが作成されました。このセクションでは、独自のカスタム サブネットワークを作成し、限定公開クラスタを作成します。 サブネットワークのプライマリ アドレス範囲と 2 つのセカンダリ アドレス範囲があります。
- サブネットワークとセカンダリ範囲を作成します。
完了したタスクをテストする
[進行状況を確認] をクリックして、実行したタスクを確認します。
- サブネットワークを使用する限定公開クラスタを作成します。
完了したタスクをテストする
[進行状況を確認] をクリックして、実行したタスクを確認します。サブネットワークを使用する限定公開クラスタが正常に作成されている場合は、評価スコアが表示されます。
- ソース インスタンスの外部アドレス範囲を取得します。
出力例:
-
後のステップで使用するために、
<nat_IP>
アドレスをコピーして保存します。 -
次のコマンドを実行して、外部アドレス範囲を承認します。
[MY_EXTERNAL_RANGE]
は、前の出力で取得した外部アドレスの CIDR 範囲(natIP/32
)に置き換えます。CIDR 範囲をnatIP/32
にすると、1 つの IP アドレスが許可リストに登録されます。
完了したタスクをテストする
[進行状況を確認] をクリックして、実行したタスクを確認します。カスタム サブネットワーク内の限定公開クラスタの外部アドレス範囲が正常に承認された場合は、評価スコアが表示されます。
- 次のコマンドで
source-instance
に SSH 接続します。
- 次のコマンドで、SSH シェルから Kubernetes クラスタへのアクセスを構成します。
ZONE
変数でエクスポートされていることを確認してください。
- クラスタノードに外部 IP アドレスが指定されていないことを確認します。
ノードに内部 IP アドレスが指定されていて、外部アドレスが指定されていないことが出力に示されます。
この時点で、マスターにアクセスできる IP アドレスは、次の範囲のアドレスだけです。
- ノードに使用される、サブネットワークのプライマリ範囲。この例のノードの範囲は
10.0.4.0/22
です。 - ポッドに使用される、サブネットワークのセカンダリ範囲。この例のポッドの範囲は
10.4.0.0/14
です。
お疲れさまでした
限定公開 Kubernetes クラスタを作成する方法を学習しました。
次のステップと詳細情報
- 以下のラボをご確認ください。
Google Cloud トレーニングと認定資格
Google Cloud トレーニングと認定資格を通して、Google Cloud 技術を最大限に活用できるようになります。必要な技術スキルとベスト プラクティスについて取り扱うクラスでは、学習を継続的に進めることができます。トレーニングは基礎レベルから上級レベルまであり、オンデマンド、ライブ、バーチャル参加など、多忙なスケジュールにも対応できるオプションが用意されています。認定資格を取得することで、Google Cloud テクノロジーに関するスキルと知識を証明できます。
マニュアルの最終更新日: 2024 年 4 月 15 日
ラボの最終テスト日: 2023 年 9 月 20 日
Copyright 2025 Google LLC All rights reserved. Google および Google のロゴは Google LLC の商標です。その他すべての企業名および商品名はそれぞれ各社の商標または登録商標です。