K8S Calico

NetworkPolicy是kubernetes对pod的隔离手段,是宿主机上的一系列iptables规则。
1334255-20181122144452314-131222249.png

Egress 表示出站流量,就是pod作为客户端访问外部服务,pod地址作为源地址。策略可以定义目标地址或者目的端口
Ingress 表示入站流量,pod地址和服务作为服务端,提供外部访问。pod地址作为目标地址。策略可以定义源地址和自己端口

官网
https://docs.projectcalico.org/v3.1/getting-started/kubernetes/

我们这里使用的是 flannel 构建 K8S 网络,使用 Calico 构建网络规则

mkdir ~/networkpolicy ; cd ~/networkpolicykubectl apply -f https://docs.projectcalico.org/v3.1/getting-started/kubernetes/installation/hosted/canal/rbac.yaml
kubectl apply -f https://docs.projectcalico.org/v3.1/getting-started/kubernetes/installation/hosted/canal/canal.yaml
kubectl get pods -n kube-system# 创建两个命名空间 dev 和 prod 进行测试
kubectl create namespace dev
kubectl create namespace prodvi pod-a.yaml
# 内容如下
apiVersion: v1
kind: Pod
metadata:name: pod1
spec:containers:- name: myappimage: ikubernetes/myapp:v1# 在命名空间 dev 创建 pod1
kubectl apply -f pod-a.yaml -n dev
kubectl get pods -n dev -o wide
# 运行结果:
NAME   READY   STATUS    RESTARTS   AGE   IP           NODE
pod1   1/1     Running   0          14m   10.244.2.2   node2# 在命名空间 prod 创建 pod1
kubectl apply -f pod-a.yaml -n prod
kubectl get pods -n prod -o wide
# 运行结果:
NAME   READY   STATUS    RESTARTS   AGE   IP           NODE
pod1   1/1     Running   0          14m   10.244.1.2   node1# 测试网络
curl 10.244.1.2    # 正常访问
curl 10.244.2.2    # 正常访问kubectl exec pod1 -it -n prod -- /bin/sh
ping 10.244.2.2   # 链路正常

Ingress

# Ingress 默认禁止所有的入站流量
vi ngress-def.yaml 
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:name: deny-all-ingress
spec:podSelector: {}policyTypes:- Ingresskubectl apply -f ingress-def.yaml -n dev# 查看 networkpolicy 规则
kubectl get netpol -n devcurl 10.244.2.2    # 命名空间 dev  pod1 无法访问curl 10.244.1.2    # 命名空间 prod pod1 正常访问# 开放所有的入站流量
vi ingress-def.yaml
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:name: deny-all-ingress
spec:podSelector: {}ingress:- {}policyTypes:- Ingresskubectl apply -f ingress-def.yaml -n devcurl 10.244.1.2   # 命名空间 prod pod1 正常访问curl 10.244.2.2   # 命名空间 dev pod1 正常访问

通过规则限制入站流量

kubectl delete netpol deny-all-ingress -n devkubectl label pods pod1 app=myapp -n dev# 添加网络规则
vi allow-netpol-demo.yaml
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:name: allow-myapp-ingress
spec:podSelector:matchLabels:app: myapp           # 选择app=myapp 的标签放行ingress:- from:- ipBlock:              # 地址段cidr: 10.244.0.0/16 # 允许这个地址段访问except:             # 排除一下地址不可以访问- 10.244.1.2/32ports:- protocol: TCPport: 80              # 允许访问80端口- protocol: TCPport: 443kubectl apply -f allow-netpol-demo.yaml -n devkubectl get netpol -n devcurl 10.244.2.2:80    # 命名空间 dev pod1 正常访问curl 10.244.2.2:443   # NetworkPolicy 放行,没有开放 443 端口,服务器拒绝
curl: (7) Failed connect to 10.244.2.2:443; Connection refusedcurl 10.244.2.2:6443  # 卡住,被 NetworkPolicy 拒绝

Egress

# 默认限制所有的出站流量
vi egrees-def.yaml 
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:name: deny-all-egress
spec:podSelector: {}policyTypes:- Egresskubectl apply -f egrees-def.yaml -n prodkubectl get pods -n kube-system -o wide
# 选取一个 coredns 的 pod ipkubectl exec pod1 -it -n prod -- /bin/sh
ping 10.244.0.4    # 无法正常 ping 通# 放行所有的出站流量
vi egrees-def.yaml 
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:name: deny-all-egress
spec:podSelector: {}egress:- {}policyTypes:- Egresskubectl apply -f egrees-def.yaml -n prodkubectl exec pod1 -it -n prod -- /bin/sh
ping 10.244.0.4    # 正常 ping 通

转载于:https://www.cnblogs.com/klvchen/p/10000687.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/395950.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

前端页面内含外显相关知识

页面显示: 对于页面上筛选条件有下拉框加载的,直接下对应显示时加载 {text : 产品线,dataIndex : entorgid,align : center,width : 150,renderer:function(value,metaData,record ,rowIndex,colIndex,store,view){if(value ! ""){$("#en…

捷克 签证_一位捷克开发人员构建了可在您的浏览器中直接运行的语音合成器

捷克 签证Here are three links worth your time:这是三个值得您花费时间的链接: A Czech developer built this mouth synthesizer that runs right in your browser. Be sure to turn your sound on. (1 minute watch interactive app) 一位捷克开发人员构建了可…

mvc 之 配置EF+oralce

只需要在项目中加载nuGet包就可以了 操作:工具--nuGet包管理器--程序包管理器控制台 在 PM>处输入 install-package entityframework 加载sqlserver的数据库连接 install-package oracle.manageddataaccess.entityframework 加载oracle的数据库连接 参考地址&…

计算机组装与维修bios设置,(完整版)计算机组装与维修模拟试题(BIOS设置的习题).docx...

第十二章BIOS 设置的习题一、问答题、目前 BIOS 的类型主要有哪几种?、设置 Quick_Power_Self_Test( 快速开机自检 ) 为什么状态时,可以加速计算机的启动?、何谓 _BIOS?、简述 BIOS 的基本功能。、 BIOS与 CMOS有何区别&#xff1…

从诺克斯维尔的攀岩健身房到旧金山的网络安全公司

这是三个值得您花费时间的链接: (Here are three links worth your time:) How Sean went from working in a Knoxville rock climbing gym to working as a software engineer in a San Francisco cybersecurity startup, through 12 months of intense self-teach…

每周总结(第十一周)

转载于:https://www.cnblogs.com/qinlihong/p/5510026.html

10个关于linux中Squid代理服务器的实用面试问答

10个关于linux中Squid代理服务器的实用面试问答 不仅是系统管理员和网络管理员时不时会听到“代理服务器”这个词,我们也经常听到。代理服务器已经成为一种企业常态,而且经常会接触到它。它现在也出现在一些小型的学校或者大型跨国公司的自助餐厅里。Squ…

北京矿大计算机考研每年分数线,2021中国矿业大学北京考研国家线公布时间_国家线是多少分...

中国矿业大学北京考研国家线怎么看?中国矿业大学北京考研国家线是多少分?山西人事考试网整理中国矿业大学北京考研考研国家线怎么看、国家线公布时间、历年中国矿业大学北京考研国家线,希望考生及时关注考研成绩国家线公布信息,为…

工厂模式-依赖倒置原则

老板:阿飞啊,我们公司最近接了个项目,你看着设计一下,我给你说下需求。项目组长阿飞:好啊,什么需求?老板:我们找了一个合作的商铺,他们要设计一套面包销售系统。主要功能…

aws lambda_如何通过在本地模拟AWS Lambda来加速无服务器开发

aws lambdaby John McKim约翰麦金(John McKim) 如何通过在本地模拟AWS Lambda来加速无服务器开发 (How you can speed up serverless development by simulating AWS Lambda locally) Designing AWS Lambda functions can be a frustrating experience. Each time you make a …

(6)css盒子模型(基础下)

一、理解多个盒子模型之间的相互关系 现在大部分的网页都是很复杂的,原因是一个“给人用的”网页中是可能存在着大量的盒子,并且它们以各种关系相互影响着。 html与DOM的关系 详情了解“DOM” :http://baike.baidu.com/link?urlSeSj8sRDE-JZ…

easyui获取下拉框选中的文本值_Word中文本显示不全的常见3种情况及解决方法

在日常工作使用Word文档时,经常会遇到文本显示不全的情况,比如文本框或表格里的文本显示不全等情况,你一般是怎么操作呢?以下这3种常见情况你可能也遇到过,一起看看是什么原因并解决它们吧!1、文本显示不全…

企业IT架构转型之道:阿里巴巴中台战略思想与架构实战. 导读

企业IT架构转型之道 阿里巴巴中台战略思想与架构实战 钟 华 编 著 前 言  在过去15年的IT从业经历中,有很长一段时间我都是以软件服务商的身份参与了企业的IT系统建设,对于过去十几年来企业IT的发展有一定的认知和理解,带着对互联网技术…

计算机软件技术大作业报告,多媒体技术大作业报告.doc

多媒体技术大作业报告.doc华南理工大学多媒体技术大作业报告专 业:班 级:学 号:学生姓名:完成时间:目录说 明 ……………………………………………………3第一章概述 …………………………………………………4第二章技…

ES6入门之Generator函数

Generator Generator函数是ES6提供的一种异步编程解决方案,Generator函数是一个状态机,封装了多个内部状态。 执行Generator函数会返回一个遍历器对象,也就是说,Generator函数除了状态机,还是一个遍历器对象生成函数。…

reddit_Reddit如何设计和编码其详尽的愚人节体验,/ r / place

redditHere are three links worth your time:这是三个值得您花费时间的链接: How Reddit designed and coded its elaborate April Fool’s experience, /r/place (17 minute read) Reddit如何设计和编码其详尽的愚人节经验/ r / place( 阅读17分钟 ) These hacka…

CSS中属性的值和单位

CSS中值的单位 1.颜色值 被各种浏览器支持,并且作为 CSS 规范推荐的颜色名称只有 16 种,如下表所示。 百分比表示 color: rgb(100%, 100%, 100%); 这个声明将红、蓝、绿 3 种原色都设置为最大值,结果组合显示为白色。相反,可以设置…

mysql能否在手机端运行_在手机上安装linux并部署mysql,jupyter用于数据探索

因为现在有一台旧手机放在学校,之前使用的软路由内存只有128M,不方便存一些小的数据.手机的好处是可以一直开着,因此在手机上安装linux来替代树莓派做服务器是可行的(由于不需要对外,所以也不用购买服务器).安装linux首先安装busybox1.对于busybox,进入左上角settings,设置inst…

《走进SAP(第2版)》——2.8 SAP的目标是什么

本节书摘来自异步社区《走进SAP(第2版)》一书中的第2章,第2.8节,作者: 【德】Nancy Muir , Ian Kimbell , 等 更多章节内容可以访问云栖社区“异步社区”公众号查看。 2.8 SAP的目标是什么 走进SAP(第2版)…

尼康d850相机参数测试软件,尼康 - D850 - 产品介绍

类型数码单镜反光相机镜头卡口尼康F卡口(带有AF耦合和AF接点)有效视角尼康FX格式影像传感器格式FX格式影像传感器类型CMOS传感器有效像素数约4,575万影像传感器约35.9mm x 23.9mm总像素数约4,689万灰尘减少功能清洁影像传感器图像尺寸(像素)-FX (36x24) 影像区域(L) 8256 x 550…