# KubernetesのNetworkPolicy ## NetworkPolicyとは Kubernetesクラスタ内でPod同士が通信する際のトラフィックルールを定義する。 Namespace間の通信を行なわせないようにしたり、特定のPod間だけ通信を許可できるようにしたりする。 IngressとEgressから成り立っていて、Ingressはインバウンド方向、Egressはアウトバウンド方向のトラフィックを制御する。 NetworkPolicyのサンプルYAML ```yaml= apiVersion: networking.k8s.io/v1 kind: NetworkPolicy metadata: name: sample-networkpolicy namespace: sample-network # NetworkPolicyを作成するNamespace spec: podSelector: # 対象のPod policyTypes: - Ingress # Ingressルールを作成する場合は明示 - Egress # Egressルールを作成する場合は明示 ingress: - from: # Ingressルールを記述 ports: # Ingressルールで許可する受信ポート番号とプロトコルを記述 egress: - from: # Egressルールを記述 ports: # Egressルールで許可する宛先ポート番号とプロトコルを記述 ``` ## アクセス制御 アクセス制御を行なう場合は、ホワイトリスト方式かブラックリスト方式が一般的。 * ホワイトリスト方式:特定のトラフィックだけを許可 * ブラックリスト方式:特定のトラフィックだけを遮断 全てのトラフィックを遮断する場合のNetworkPolicy(ホワイトリスト方式で利用) ```yaml= apiVersion: networking.k8s.io/v1 kind: NetworkPolicy metadata: name: deny-all-networkpolicy spec: podSelector: {} policyTypes: - Ingress - Egress ``` 全てのトラフィックを許可する場合のNetworkPolicy(ブラックリスト方式で利用) ```yaml= apiVersion: networking.k8s.io/v1 kind: NetworkPolicy metadata: name: allow-all-networkpolicy spec: podSelector: {} policyTypes: - Ingress - Egress ingress: - {} egress: - {} ```
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up