1. 首页 > Linux教程 > 正文

Linux教程FG297-K8s集群网络安全策略配置入门

内容简介:本文风哥教程参考Linux官方文档、Red Hat Enterprise Linux官方文档、Ansible Automation Platform官方文档、Docker官方文档、Kubernetes官方文档和Podman官方文档等内容,详细介绍了相关技术的配置和使用方法。

本文档风哥主要介绍Kubernetes集群网络安全策略的配置方法,包括NetworkPolicy、Pod安全策略、网络插件等内容。

Part01-基础概念与理论知识

1.1 K8s网络安全

# 网络安全组件
NetworkPolicy:网络策略控制Pod间通信
Pod Security Policy:Pod安全策略
Service Account:服务账号权限控制
RBAC:基于角色的访问控制

# 网络插件
Calico、Flannel、Weave、Cilium

Part02-生产环境规划与建议

2.1 网络策略设计

# 设计原则
1. 默认拒绝所有流量
2. 显式允许必要通信
3. 按命名空间隔离
4. 限制出口流量

Part03-生产环境项目实施方案

3.1 NetworkPolicy配置

# 创建命名空间
$ kubectl create ns production

# 默认拒绝所有入站流量
$ cat > default-deny-ingress.yaml << 'EOF' apiVersion: networking.k8s.io/v1 kind: NetworkPolicy metadata: name: default-deny-ingress namespace: production spec: podSelector: {} policyTypes: - Ingress EOF $ kubectl apply -f default-deny-ingress.yaml # 允许特定Pod访问 $ cat > allow-web.yaml << 'EOF' apiVersion: networking.k8s.io/v1 kind: NetworkPolicy metadata: name: allow-web namespace: production spec: podSelector: matchLabels: app: web ingress: - from: - namespaceSelector: matchLabels: name: frontend ports: - protocol: TCP port: 80 EOF $ kubectl apply -f allow-web.yaml

3.2 查看网络策略

# 查看网络策略
$ kubectl get networkpolicy -n production
NAME POD-SELECTOR AGE
default-deny-ingress 1m
allow-web app=web 30s

# 查看策略详情
$ kubectl describe networkpolicy allow-web -n production
Name: allow-web
Namespace: production
Created on: 2026-04-06 10:00:00 +0800 CST
Spec:
PodSelector: app=web
Allowing ingress traffic:
To Port: 80/TCP
From:
NamespaceSelector: name=frontend
Policy Types: Ingress

Part04-生产案例与实战讲解

4.1 案例:多层应用网络隔离

# 场景:Web-App-DB三层架构网络隔离

# 1.更多视频教程www.fgedu.net.cn 创建命名空间
$ kubectl create ns web
$ kubectl create ns app
$ kubectl create ns db

# 2. 配置DB网络策略(只允许App访问)
$ cat > db-network-policy.yaml << 'EOF' apiVersion: networking.k8s.io/v1 kind: NetworkPolicy metadata: name: db-policy namespace: db spec: podSelector: matchLabels: app: mysql ingress: - from: - namespaceSelector: matchLabels: name: app ports: - protocol: TCP port: 3306 EOF $ kubectl apply -f db-network-policy.yaml # 3. 配置App网络策略(允许Web访问,允许访问DB) $ cat > app-network-policy.yaml << 'EOF' apiVersion: networking.k8s.io/v1 kind: NetworkPolicy metadata: name: app-policy namespace: app spec: podSelector: matchLabels: app: tomcat ingress: - from: - namespaceSelector: matchLabels: name: web ports: - protocol: TCP port: 8080 egress: - to: - namespaceSelector: matchLabels: name: db ports: - protocol: Tfrom PG视频:www.itpux.comCP port: 3306 EOF $ kubectl apply -f app-network-policy.yaml

风哥提示:

Part05-风哥经验总结与分享

K8s网络策略是实现微服务安全隔离的重要手段,建议在生产环境中配置严格的网络学习交流加群风哥微信: itpux-com策略,默认拒绝所有流量,显式允许必要的通信。

本文由风哥教程整理发布,仅用于学习测试使用,转载注明出处:http://www.fgedu.net.cn/10327.html

联系我们

在线咨询:点击这里给我发消息

微信号:itpux-com

工作日:9:30-18:30,节假日休息