トピック 3 ネットワーク ポリシー
名前空間 my-app に allow-port-from-namespace の新しい networkpolicy を作成し、新しい NetwoekPolicy が名前空間 big-corp の Pod が名前空間 my-app の Pod のポート 8080 に接続できるようにします。
Networkolicy のさらなる確認:
8080 でリッスンしていない Pod へのアクセスを許可しない
名前空間 my-app 以外からの Pod へのアクセスを許可しない
答え:
テスト環境の切り替え
kubectl config use-context (スイッチ環境)
kubectl label 名前空間 big-corp name=big-corp #namespace label
#ビジターの名前空間にラベル label がない場合は、手動で入力する必要があります。独自のラベルラベルがあれば、直接使用することもできます
vim networkpolicy.yaml
#k8s公式で次の対応する位置を見つけ、次のコンテンツをコピーします。下にコピーがあります。直接使用できます
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
name: test-network-policy
namespace: default
spec:
podSelector:
matchLabels:
role: db
policyTypes:
- Ingress
- Egress
ingress:
- from:
- ipBlock:
cidr: 172.17.0.0/16
except:
- 172.17.1.0/24
- namespaceSelector:
matchLabels:
project: myproject
- podSelector:
matchLabels:
role: frontend
ports:
- protocol: TCP
port: 6379
egress:
- to:
- ipBlock:
cidr: 10.0.0.0/24
ports:
- protocol: TCP
port: 5978
トピックの必要に応じてコンテンツを変更します
修正前
修正後
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
name: allow-port-from-namespace
namespace: my-app
spec:
podSelector:
matchLabels: {}
policyTypes:
- Ingress
ingress:
- from:
- namespaceSelector:
matchLabels:
project: big-corp
ports:
- protocol: TCP
port: 8080
kubectl apply -f networkpolicy.yaml
確認:
kubectl describe networkpolicy -n my-app