ラボのセットアップ
このラボでは、ラボクラスターにデプロイされたサンプルアプリケーションのネットワークポリシーを実装します。サンプルアプリケーションのコンポーネントアーキテクチャを以下に示します。
サンプルアプリケーションの各コンポーネントは、独自の namespace に実装されています。例えば、'ui' コンポーネントは 'ui' namespace にデプロイされ、'catalog' Web サービスと 'catalog' MySQL データベースは 'catalog' namespace にデプロイされています。
現在、定義されたネットワークポリシーはなく、サンプルアプリケーション内のどのコンポーネントも他のコンポーネントや外部サービスと通信できます。例えば、'catalog' コンポーネントは 'checkout' コンポーネントと直接通信できます。以下のコマンドを使用してこれを検証できます。
~$kubectl exec deployment/catalog -n catalog -- curl -s http://checkout.checkout/health | jq
{"status": "ok",
"info": { "chaos": {"status": "up"
}
},
"error": {}, "details": { "chaos": {"status": "up"
}
}
}
EKS Auto Mode クラスターでネットワークポリシーを有効にするために必要な構成変更を行いましょう。そのために、クラスターにネットワーキングを提供 する VPC container network interface (CNI) の ConfigMap を作成します。
~/environment/eks-workshop/modules/fastpaths/operators/network-policies/vpc-cni-policies.yaml
apiVersion: v1
kind: ConfigMap
metadata:
name: amazon-vpc-cni
namespace: kube-system
data:
enable-network-policy-controller: "true"
A
これにより、vpc-cni プラグインでネットワークポリシーコントローラが有効になります
この構成を適用します。
~$kubectl apply -f ~/environment/eks-workshop/modules/fastpaths/operators/network-policies/vpc-cni-policies.yaml
それでは、サ ンプルアプリケーションのネットワークトラフィックフローをより適切に制御できるように、いくつかのネットワークルールを実装しましょう。