CKS 考试题整理 (01)-NetworkPolicy
Task
创建一个名为 pod-restriction 的 NetworkPolicy 来限制对在 namespace dev-team 中运行的 Pod products-service 的访问。
只运行以下 Pod 连接到 Pod products-service
- namespace qa 中的 Pod
- 位于任何 namespace,带有标签 environment:testing 的 Pod
注意: 确保应用 NetworkPolicy。
你可以再 /cks/6/p1.yaml 找到一个模板清单文件。
参考资料
https://kubernetes.io/zh-cn/docs/concepts/services-networking/network-policies/
解答
切换集群
kubectl config use-context KSSH00301
1. 检查 namespace 标签
kubectl get ns --show-labels
查看 pod 标签(environment:testing)
kubectl get pod -n dev-team --show-labels
如果 Pod 或者 Namespace 没有标签,需要打上标签
kubectl label ns qa name=qa
kubectl label pod products-service environment=testing -n dev-team
2. 创建 NetworkPolicy
vim /cks/6/p1.yaml
根据官网修改内容如下:
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
name: pod-restriction
namespace: dev-team
spec:
podSelector:
matchLabels:
environment: testing # 这个是 pod 的 label 要从show-label中查
policyTypes:
- Ingress
ingress:
- from:
- namespaceSelector:
matchLabels:
name: qa
- from:
- namespaceSelector: {} # 表示所有命名空间
podSelector: # podSelector 前面的 “-”要删除,对齐
matchLabels:
environment: testing # 这个是所有命名空间有标签的 Pod, 根据题目要求写的 “位于任何 namespace,带有标签 environment:testing 的 Pod”
创建
kubectl apply -f /cks/6/p1.yaml
检查
kubectl get networkpolicy -n dev-team
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律