cka真题练习(三)配置网络策略Networkpolicy

题目三 Networkpolicy        

        在namespace my-app中创建一个allow-port-from-namespace的新networkpolicy,确保新的NetwoekPolicy允许namespace big-corp中的Pods连接到namespace my-app中的Pod的端口8080。

进一步确认Networkolicy:

不允许对没有监听 8080 的Pods访问

不允许不来自namespace my-app 的Pods访问


答案:

切换考试环境

kubectl config use-context (切换环境)

kubectl label namespace 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

猜你喜欢

转载自blog.csdn.net/m0_65307735/article/details/129556648