当前位置:   article > 正文

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

cka考题 2024

不等更新题库

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 的访问
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

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

仅允许端口为 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
  • 1
查看 namespace echo 的标签
# 查看所有 ns 的标签 label
$ kubectl get ns --show-labels
# 如果访问者的 namespace 没有标签 label,则需要手动打一个。如果有一个独特的标签 label,则也可以直接使用。 
$ kubectl label ns echo project=echo
  • 1
  • 2
  • 3
  • 4
创建 networkpolicy
vim networkpolicy.yaml
  • 1
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  #被访问者公开的端口
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
创建
$ kubectl apply -f networkpolicy.yaml
  • 1

检查

$ kubectl describe networkpolicy -n my-app
  • 1
声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号