真题解析

题目

Task

创建一个名为 pod-restriction 的 NetworkPolicy 来限制对在 namespace development 中运行的 Pod products-service 的访问。

只允许以下 Pod 连接到 Pod products-service:

  • namespace qa 中的 Pod

  • 位于任何 namespace,带有标签 environment:testing 的 Pod

你可以在 /home/candidate/KSSH00301/network-policy.yaml 找到一个模板清单文件。

解析

查看 Pod products-service 的标签

kubectl get pod products-service -n development --show-labels
NAME               READY   STATUS    RESTARTS   AGE   LABELS
products-service   1/1     Running   0          34m   run=products-service

查看 namespace qa 的标签

kubectl get ns qa --show-labels
NAME   STATUS   AGE   LABELS
qa     Active   33m   kubernetes.io/metadata.name=qa

编辑 NetworkPolicy yaml

# vim network-policy.yaml
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: pod-restriction
  namespace: development
spec:
  podSelector:
    matchLabels:
      run: products-service
  policyTypes:
  - Ingress
  ingress:
  - from:
    - namespaceSelector:
        matchLabels:
          kubernetes.io/metadata.name: qa
    - podSelector:
        matchLabels:
          environment: testing
      namespaceSelector: {}

创建 NetworkPolicy

kubectl create -f network-policy.yaml

Last updated