プロファイル適用性: レベル1
Kubernetesでモダンなマイクロサービスベースのアプリケーションを実行する際、どのコンポーネントが互いに通信できるかを制御したいことがよくあります。Azure
Kubernetes Service (AKS) クラスター内のポッド間でのトラフィックの流れには、最小特権の原則を適用する必要があります。例えば、バックエンドアプリケーションへのトラフィックを直接ブロックしたいと考えるかもしれません。Kubernetesのネットワークポリシー機能を使用すると、クラスター内のポッド間のインバウンドおよびアウトバウンドトラフィックに対するルールを定義できます。
デフォルトでは、AKSクラスター内のすべてのポッドは制限なくトラフィックを送受信できます。セキュリティを向上させるために、トラフィックの流れを制御するルールを定義できます。例えば、バックエンドアプリケーションは必要なフロントエンドサービスにのみ公開されることがよくあります。また、データベースコンポーネントは、それらに接続するアプリケーション層にのみアクセス可能です。
ネットワークポリシーは、Pod間の通信に対するアクセスポリシーを定義するKubernetesの仕様です。ネットワークポリシーを使用して、トラフィックの送受信に関する順序付けられたルールセットを定義し、1つ以上のラベルセレクタに一致するPodのコレクションに適用します。
これらのネットワークポリシールールはYAMLマニフェストとして定義されています。ネットワークポリシーは、デプロイメントやサービスを作成するためのより広範なマニフェストの一部として含めることができます。
![]() |
注意初期設定では、ネットワークポリシーは無効になっています。
|
影響
ネットワークポリシーはネットワークポリシーアドオンを必要とします。このアドオンはネットワークポリシーを持つクラスターが作成されると自動的に含まれますが、既存のクラスターの場合、ネットワークポリシーを有効にする前に追加する必要があります。
ネットワークポリシーの有効化/無効化は、クラスタのアップグレードを実行するのと同様に、すべてのクラスタノードのローリングアップデートを引き起こします。この操作は長時間実行され、完了するまでクラスタ上の他の操作
(削除を含む) をブロックします。
ネットワークポリシーを使用する場合、クラスターには少なくとも2つの
n1-standard-1
タイプ以上のノードが必要です。ネットワークポリシー適用を実行するための推奨最小サイズのクラスターは3つのn1-standard-1
インスタンスです。ネットワークポリシー適用を有効にすると、ノードの追加リソースが消費されます。具体的には、
kube-system
プロセスのメモリ使用量が約128MB増加し、約300ミリコアのCPUが必要です。監査
次の項目がnullでなく、適切なグループIDが設定されていることを確認してください:
export CLUSTER_NAME=<your cluster name> az aks show --name ${CLUSTER_NAME} --resource-group ${RESOURCE_GROUP} --query "networkProfile.networkPolicy"
修復
Calicoや他のネットワークポリシーエンジンを利用して、トラフィックをセグメント化および分離します。