ACK Serverless クラスターで Poseidon コンポーネントを使用して、ネットワークポリシーを有効化し、Pod レベルのトラフィックを制御します。
前提条件
-
ACK マネージドクラスターまたはACK 専用クラスターが作成済みである必要があります。詳細については、「ACK マネージドクラスターの作成」または「ACK 専用クラスターの作成 (廃止済み)」をご参照ください。
重要ACK マネージドクラスター ProおよびACK Serverless Proクラスターでは、ネットワークポリシーは異なるコンポーネントによって実装されます。
-
ACK マネージドクラスター Pro(エラスティックコンテナインスタンス以外のノード)では、ネットワークポリシーは Terway ネットワークプラグインによって実装されます。詳細については、「ACK クラスターでのネットワークポリシーの有効化」をご参照ください。
-
ACK Serverless クラスターおよびACK マネージド Pro クラスター内のエラスティックコンテナインスタンス (ECI) では、ネットワークポリシーは Poseidon コンポーネントによって実装されます。
-
-
ACK Virtual Node コンポーネントが v2.10.0 以降にスペックアップされている必要があります。詳細については、「コンポーネントの管理」をご参照ください。
-
クラスター用にセキュリティグループが設定されています。
-
kubectl を使用したクラスターへのアクセスが設定されている必要があります。
制限事項
-
ネットワークポリシーは、ACK Serverless ProおよびACK マネージドクラスター Proクラスターでのみサポートされます。
-
ネットワークポリシーは IPv6 アドレスをサポートしません。
-
NetworkPolicy の
endPortフィールドはサポートされていません。 -
NetworkPolicy ルールは、名前空間または Pod をマッチさせるためにラベルセレクターを使用します。NetworkPolicy リソースが多すぎると、ルールの伝搬が遅くなり、管理やトラブルシューティングが複雑になります。クラスターあたりの NetworkPolicy リソースは 40 未満に制限してください。
ステップ 1:ネットワークポリシーの有効化
ACK Serverless Pro クラスターでネットワークポリシーを有効化するために、Poseidon コンポーネントをインストールします。
-
Poseidon コンポーネントをインストールします。
ACK コンソールにログインします。左側のナビゲーションウィンドウで、[クラスター] をクリックします。
クラスターリストページで、ご利用のクラスター名をクリックします。左側のナビゲーションウィンドウで、コンポーネントとアドオンをクリックします。
-
アドオン管理ページで、ネットワークタブをクリックします。Poseidonカードで、インストールをクリックします。
-
インストールダイアログボックスで、ACS/ECI インスタンスの NetworkPolicy を有効にするを選択し、OKをクリックします。
インストール後、カードにインストール済みと表示されます。
ステップ 2:nginx アプリケーションの作成とテスト
コンソール
-
ACK コンソールにログインします。左側のナビゲーションウィンドウで、クラスターをクリックします。
-
クラスターページで、対象のクラスター名をクリックします。左側のナビゲーションウィンドウで、ワークロード > デプロイメントを選択します。
-
デプロイメントページで、イメージから作成をクリックします。作成ウィザードで、nginxという名前のアプリケーションを作成し、サービスとして公開します。アプリケーションの設定後、作成をクリックします。Nginx アプリケーションについては以下のパラメーターを設定し、その他はすべてデフォルト設定を使用します。詳細については、「設定の詳細」をご参照ください。
セクション
パラメーター
例
基本情報
名前
nginx
レプリカ数
1
コンテナ
イメージ名
nginx:latest
高度な設定 > サービス
サービス名
nginx
タイプ
ClusterIP、LoadBalancer、または NodePort
ポートマッピング
名前: nginx / サービスポート: 80 / コンテナポート: 80 / プロトコル: TCP
-
デプロイメントページで、再度イメージから作成をクリックします。nginxサービスへの接続性をテストするため、busyboxという名前のクライアントアプリケーションを作成します。busyboxアプリケーションについては以下のパラメーターを設定し、その他はすべてデフォルト設定を使用します。詳細については、「設定の詳細」をご参照ください。
セクション
パラメーター
例
基本情報
名前
busybox
レプリカ数
1
コンテナ
イメージ名
busybox:latest
インタラクティブセッション
stdin、tty
-
busybox クライアントが nginx サービスに到達できることを確認します。
-
デプロイメントページで、busybox アプリケーションを見つけ、その名前をクリックします。
-
[Pod]タブをクリックし、busybox-{hash} Pod を見つけて、[操作]列の[ターミナル]をクリックします。

-
busybox ターミナルで、接続性をテストするために
wget nginxを実行します。
出力結果から、busybox Pod が nginx サービスに到達できることが確認できます。
-
CLI
-
Nginx Pod を作成し、サービスとして公開します。Pod を作成します。
kubectl run nginx --image=nginx期待される出力:
pod/nginx createdPod が実行中であることを確認します。
kubectl get pod期待される出力:
NAME READY STATUS RESTARTS AGE nginx 1/1 Running 0 45sPod をサービスとして公開します。
kubectl expose pod nginx --port=80期待される出力:
service/nginx exposedサービスを確認します。
kubectl get service期待される出力:
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE kubernetes ClusterIP 172.XX.XX.1 <none> 443/TCP 30m nginx ClusterIP 172.XX.XX.48 <none> 80/TCP 12s -
busybox Pod を起動し、nginx サービスにアクセスします。
kubectl run busybox --rm -ti --image=busybox /bin/sh期待される出力:
If you don't see a command prompt, try pressing enter. / # / #プロンプトが表示されたら、次のコマンドを実行します。
wget nginx期待される出力:
Connecting to nginx (172.XX.XX.48:80) saving to 'index.html' index.html 100% |****************************************************************************************************************************************************| 612 0:00:00 ETA 'index.html' saved
ステップ 3:ネットワークポリシーの使用
ラベル、CIDR ブロック、送信先、またはパブリックネットワークアクセスに基づいて、Pod のトラフィックを制限する NetworkPolicy リソースを適用します。