2024 CKA 题库 | 3、配置网络策略 NetworkPolicy

不等更新题库

文章目录

    • 3、配置网络策略 NetworkPolicy
      • 题目:
      • 考点:
      • 参考链接:
      • 解答:
        • 更换 context
        • 查看 namespace echo 的标签
        • 创建 networkpolicy
        • 创建
      • 检查

3、配置网络策略 NetworkPolicy

题目:

设置配置环境:
[candidate@node-1] $ kubectl config use-context hk8s

Task
在现有的 namespace my-app 中创建一个名为 allow-port-from-namespace 的新 NetworkPolicy。
确保新的 NetworkPolicy 允许 namespace echo 中的 Pods 连接到 namespace my-app 中的 Pods 的 9000 端口。
进一步确保新的 NetworkPolicy:
不允许对没有在监听 端口 9000 的 Pods 的访问 不允许非来自 namespace echo 中的 Pods 的访问

双重否定就是肯定,所以最后两句话的意思就是:

仅允许端口为 9000 的 pod 方法。
仅允许 echo 命名空间中的 pod 访问。

考点:

NetworkPolicy 的创建

参考链接:

依次点击 Concepts → Services, Load Balancing, and Networking → Network Policies(看不懂英文的,可右上角翻译成中文)
https://kubernetes.io/zh-cn/docs/concepts/services-networking/network-policies/

解答:

更换 context
$ kubectl config use-context hk8s
查看 namespace echo 的标签
# 查看所有 ns 的标签 label
$ kubectl get ns --show-labels
# 如果访问者的 namespace 没有标签 label,则需要手动打一个。如果有一个独特的标签 label,则也可以直接使用。 
$ kubectl label ns echo project=echo
创建 networkpolicy
vim networkpolicy.yaml
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: allow-port-from-namespace
  namespace: my-app   #被访问者的命名空间
spec:
  podSelector:      #这两行必须要写,或者也可以写成一行为 podSelector: {}
    matchLabels: {}     # 注意 matchLabels:与{}之间有一个空格
  policyTypes:
  - Ingress   #策略影响入栈流量
  ingress:
  - from:   #允许流量的来源
    - namespaceSelector:
        matchLabels:
          project: echo    #访问者的命名空间的标签 label
    #- podSelector: {}       #注意,这个不写。如果 ingress 里也写了- podSelector: {},则会导致 my-app 中的 pod 可以访问 my-app 中 pod 的 9000 了,这样不 满足题目要求不允许非来自  namespace echo 中的 Pods 的访问。
    ports:
    - protocol: TCP
      port: 9000  #被访问者公开的端口
创建
$ kubectl apply -f networkpolicy.yaml

检查

$ kubectl describe networkpolicy -n my-app

你可能感兴趣的:(CKA,网络,kubernetes,linux,运维,云原生)