Context
一个默认拒绝(default-deny)的NetworkPolicy可避免在未定义任何其他NetworkPolicy的namespace中意外公开Pod。
Task
为所有类型为 Ingress+Egress 的流量在 namespace testing 中创建一个名为 denypolicy 的新默认拒绝 NetworkPolicy 。 此新的 NetworkPolicy 必须拒绝 namespace testing 中的所有的 Ingress + Egress 流量。 将新创建的默认拒绝 NetworkPolicy 应用在 namespace testing 中运行的所有 Pod 。
你可以在 /cks/net/p1.yaml 找到一个模板清单文件。
参考:
https://kubernetes.io/zh-cn/docs/concepts/services-networking/network-policies/#默认拒绝所有入口和所有出站流量
解答:
切换集群
kubectl config use-context KSCS00101
编辑模板文件 /cks/net/p1.yaml
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
name: denypolicy #注意修改name
namespace: testing #添加namespace
spec:
podSelector: {}
policyTypes:
- Ingress #注意看题,是Ingress + Egress(入口+出口),还是只是Ingress或只是Egress。
- Egress #在1.25的考试中,只要求拒绝所有Egress流量,那就只写这这个- Egress即可,这种情况就不要写- Ingress了。
创建并检查
kubectl -f /cks/net/p1.yaml create
kubectl -n testing describe networkpolicies denypolicy