クラスタ ネットワーク ポリシーの作成

このページでは、Kubernetes Engine でネットワーク ポリシーを設定する方法について説明します。

概要

Kubernetes Engine のネットワーク ポリシーの適用を使用すると、クラスタのポッドとサービス間の通信を制御することができます。Kubernetes Engine でネットワーク ポリシーを定義するには、Kubernetes ネットワーク ポリシー API を使用してポッドレベルのファイアウォール ルールを作成します。これらのファイアウォール ルールは、クラスタ内でどのポッドとサービスが相互にアクセスできるかを決定します。

ネットワーク ポリシーを定義すると、クラスタがマルチレベルのアプリケーションを処理するときに多層防御のような機能を有効にすることができます。たとえば、アプリケーション内の不正使用されたフロントエンド サービスが数レベル下の課金サービスや会計サービスと直接通信できないようにするネットワーク ポリシーを作成することができます。

ネットワーク ポリシーを使用して、複数のユーザーが生成したデータを同時にホストするアプリケーションをより簡単に作成することもできます。たとえば、テナント単位の名前空間モデルを定義して、セキュアなマルチテナンシーを提供できます。このようなモデルでは、ネットワーク ポリシー ルールにより、特定の名前空間内のポッドやサービスが異なる名前空間内の他のポッドやサービスにアクセスできないようにすることができます。

始める前に

このタスクを準備するには、次の手順を実行します。

  • Cloud SDK がインストール済みであることを確認します。
  • デフォルトのプロジェクト ID を設定します。
    gcloud config set project [PROJECT_ID]
  • デフォルトのコンピューティング ゾーンを設定します。
    gcloud config set compute/zone [COMPUTE_ZONE]

ネットワーク ポリシーの適用を使用する

ネットワーク ポリシーの適用を有効または無効にするには、gcloud コマンドラインツール、Kubernetes Engine REST API、または Google Cloud Platform Console を使用できます。

クラスタのネットワーク ポリシーを有効にした後は、Kubernetes ネットワーク ポリシー API を使用してネットワーク ポリシーを作成できます。

ネットワーク ポリシーの適用は、Kubernetes Engine クラスタの作成時に有効にするか、既存のクラスタに対して有効にすることができます。また、既存のクラスタのネットワーク ポリシーを無効にすることもできます。

ネットワーク ポリシーの適用を有効にする

Console

  1. GCP Console で [Kubernetes Engine] メニューにアクセスします。

    [Kubernetes Engine] メニューにアクセス

  2. [クラスタを作成] をクリックします。

  3. 必要に応じてクラスタを設定します。次に、[ネットワーク ポリシー] プルダウン メニューから [有効] を選択します。
  4. [作成] をクリックします。

gcloud

gcloud コマンドライン ツールを使用して新しいクラスタを作成する際にネットワーク ポリシー適用を有効にするには、--enable-network-policy フラグを指定した gcloud container clusters create コマンドを実行します。

gcloud container clusters create [CLUSTER_NAME] --enable-network-policy

gcloud コマンドライン ツールを使用して既存のクラスタに対するネットワーク ポリシーの適用を有効にするには、次の 2 つの手順を実行します。まず、--update-addons フラグを指定した gcloud container clusters update コマンドを実行します。

gcloud container clusters update [CLUSTER_NAME] --update-addons=NetworkPolicy=ENABLED

次に、--enable-network-policy フラグを指定した gcloud container clusters update コマンドを実行します。このコマンドを実行すると、ネットワーク ポリシーを有効にしてクラスタのノードプールが再作成されます。

gcloud container clusters update [CLUSTER_NAME] --enable-network-policy

API

Kubernetes Engine API を使用してネットワーク ポリシーを有効にするには、projects.zones.clusters.create または projects.zones.clusters.update に渡す cluster オブジェクト内に networkPolicy オブジェクトを指定します。.

networkPolicy オブジェクトには、使用するネットワーク ポリシー プロバイダを指定する列挙値と、ネットワーク ポリシーを有効にするかどうかを指定するブール値が必要です。ネットワーク ポリシーを有効にしてもプロバイダを設定しないと、create コマンドと update コマンドはエラーを返します。現在有効なプロバイダ値は CALICO だけです。

ネットワーク ポリシーの適用を無効にする

Console

  1. GCP Console で [Kubernetes Engine] メニューにアクセスします。

    [Kubernetes Engine] メニューにアクセス

  2. 目的のクラスタを選択します。

  3. [編集] をクリックします。
  4. [ノードのネットワーク ポリシー] プルダウン メニューから、[無効] を選択します。
  5. [保存] をクリックします。次に、[編集] を再度クリックします。
  6. [マスターのネットワーク ポリシー] プルダウン メニューから、[無効] を選択します。
  7. [保存] をクリックします。

gcloud

gcloud コマンドライン ツールを使用して既存のクラスタに対するネットワーク ポリシーの適用を無効にするには、--no-enable-network-policy フラグを指定して gcloud container clusters update コマンドを実行します。

gcloud container clusters update [CLUSTER_NAME] --no-enable-network-policy

API

Kubernetes Engine API を使用して既存のクラスタに対するネットワーク ポリシーの適用を無効にするには、projects.zones.clusters.update に渡す cluster オブジェクト内に networkPolicy オブジェクトを指定します。networkPolicy オブジェクト内のブール値 enabledfalse に設定します。

ネットワーク ポリシーを作成する

クラスタに対するネットワーク ポリシーの適用を有効にした後は、実際のネットワーク ポリシーを定義する必要があります。ネットワーク ポリシーは、Kubernetes ネットワーク ポリシー API を使用して定義します。

ネットワーク ポリシーの作成について詳しくは、Kubernetes ドキュメントの次のトピックをご覧ください。

ネットワーク ポリシーを一時的にオーバーライドする

問題や異常な状況が発生した場合に、クラスタに対するネットワーク ポリシーの適用を一時的に無効にすることができます。詳しくは、Calico ポリシーのオーバーライドに関する Tigera 社のドキュメントをご覧ください。

オーバーヘッド、制限事項、および注意事項

ネットワーク ポリシーの適用を有効にすると、クラスタノードで追加のリソースが消費されます。具体的には、kube-system プロセスのメモリ フットプリントが約 128 MB 増加し、約 300 ミリコアの CPU が必要になります。

制限事項と要件

  • クラスタ内に n1-standard-1 以上のノードが少なくとも 2 つ必要です。ネットワーク ポリシーの適用を行うために推奨されるクラスタの最小サイズは、3 つの n1-standard-1 インスタンスです。
  • ノードが f1-micro または g1-small インスタンスであるクラスタでは、そのサイズのインスタンスに対してリソース要件が高すぎるため、ネットワーク ポリシーはサポートされません。

ノードマシンのタイプと割り当て可能なリソースについて詳しくは、クラスタのアーキテクチャ - ノードをご覧ください。

次のステップ

このページは役立ちましたか?評価をお願いいたします。

フィードバックを送信...