k8s学习-CKS真题-网络策略精细化控制

目录

  • 题目
  • 环境搭建
  • 解题
  • 参考


题目

Task
创建一个名为 pod-restriction 的 NetworkPolicy 来限制对在 namespace dev-team 中运行的 Pod products-service 的访问。
只允许以下 Pod 连接到 Pod products-service:
namespace qaqa 中的 Pod
位于任何 namespace,带有标签 environment: testing 的 Pod
注意:确保应用 NetworkPolicy。

环境搭建

创建命名空间
命令

kubectl create ns dev-team
kubectl create ns qaqa

截图
在这里插入图片描述

创建products-service
命令

kubectl run products-service --image=nginx --dry-run=clinet -o yaml>products-service.yaml

修改products-service.yaml

apiVersion: v1
kind: Pod
metadata:
  labels:
    run: products-service
  name: products-service
spec:
  containers:
  - image: nginx
    imagePullPolicy: IfNotPresent
    name: products-service
    resources: {}
  dnsPolicy: ClusterFirst
  restartPolicy: Always
status: {}

命令

kubectl create -f products-service.yaml -n dev-team

截图
在这里插入图片描述
在这里插入图片描述

pod打标签(default下的busybox-demo,请读者自行创建)
命令

kubectl label po busybox-demo environment=testing

截图
在这里插入图片描述

解题

在这里插入图片描述
pod-restriction.yaml

apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: pod-restriction
  namespace: dev-team
spec:
  podSelector:
    matchLabels:
      run: products-service 
  policyTypes:
    - Ingress
  ingress:
  - from:
    - namespaceSelector:
        matchLabels:
          kubernetes.io/metadata.name: qaqa
  - from:
    - podSelector:
        matchLabels:
          environment: testing

解释:对于dev-team命名空间下标签打了run=products-service的Pod的如流量进行限制,打了kubernetes.io/metadata.name=qaqa标签的命名空间下的Pod都可以访问,打了environment=testing标签的Pod都可以访问。

参考

k8s-网络策略
k8s学习-网络策略NetworkPolicy(概念、模版、创建、删除等)
k8s学习-CKA真题-网络策略NetworkPolicy

更多k8s相关内容,请看文章:k8s学习-思维导图与学习笔记

你可能感兴趣的:(#,云原生安全,kubernetes,网络,networkpolicy,CKS)