当前位置: 首页 > 编程日记 > 正文

kubernetes学习笔记之十三:基于calico的网络策略入门

一、.安装calico

[root@k8s-master01 ~]# kubectl apply -f  https://docs.projectcalico.org/v3.3/getting-started/kubernetes/installation/hosted/canal/rbac.yaml
clusterrole.rbac.authorization.k8s.io "calico" created
clusterrole.rbac.authorization.k8s.io "flannel" configured
clusterrolebinding.rbac.authorization.k8s.io "canal-flannel" created
clusterrolebinding.rbac.authorization.k8s.io "canal-calico" created
[root@k8s-master01 ~]# kubectl apply -f  https://docs.projectcalico.org/v3.3/getting-started/kubernetes/installation/hosted/canal/canal.yaml
configmap "canal-config" created
daemonset.extensions "canal" created
serviceaccount "canal" created
customresourcedefinition.apiextensions.k8s.io "felixconfigurations.crd.projectcalico.org" created
customresourcedefinition.apiextensions.k8s.io "bgpconfigurations.crd.projectcalico.org" created
customresourcedefinition.apiextensions.k8s.io "ippools.crd.projectcalico.org" created
customresourcedefinition.apiextensions.k8s.io "hostendpoints.crd.projectcalico.org" created
customresourcedefinition.apiextensions.k8s.io "clusterinformations.crd.projectcalico.org" created
customresourcedefinition.apiextensions.k8s.io "globalnetworkpolicies.crd.projectcalico.org" created
customresourcedefinition.apiextensions.k8s.io "globalnetworksets.crd.projectcalico.org" created
customresourcedefinition.apiextensions.k8s.io "networkpolicies.crd.projectcalico.org" created
[root@k8s-master01 ~]# kubectl get pods -n kube-system
NAME                                    READY     STATUS              RESTARTS   AGE
canal-888kk                             0/3       ContainerCreating   0          1m
canal-9rk4k                             0/3       ContainerCreating   0          1m
canal-xxvrz                             0/3       ContainerCreating   0          1m

二、基于calico设置网络策略

1.查看配置帮助

[root@k8s-master01 ~]# kubectl explain networkpolicy
[root@k8s-master01 ~]# kubectl explain networkpolicy.spec
egress             <[]Object>  #定义出栈规则
ingress            <[]Object>  #定义入栈规则
podSelector    <Object> -required-   #选择将规则应用至哪些pod上
policyTypes    <[]string>   #策略类型,如果没有指定规则,同时egress或者ingress规则存在,那么都会生效,
[root@k8s-master01 ~]# kubectl explain networkpolicy.spec.egress
ports     <[]Object>  #目标端口(客户端),可以有多个端口,也可以知道端口的协议
to        <[]Object>  #目标地址,可以是一个IP段,名称空间或者一组pod,可以同时都选择,但是需要注意的是,k8s将取其中的交集,如无必要,尽量不要配置
[root@k8s-master01 ~]# kubectl explain networkpolicy.spec.ingress
from     <[]Object>  #目标地址,与egress相同
ports    <[]Object>  #目标端口(本地端口),注意和egress的区别

2.创建一个ingress默认拒绝的示例

[root@k8s-master01 networkpolicy]# kubectl create namespace dev
[root@k8s-master01 networkpolicy]# kubectl create namespace prod
[root@k8s-master01 networkpolicy]# vim ingress-def.yaml
apiVersion: networking.k8s.io/v1  #注意资源版本号,extensions/v1beta1在1.9中已经被废弃
kind: NetworkPolicy
metadata:name: deng-all-ingress
spec:podSelector: {}  #{}表示选择所有pod,即整个名称空间olicyTypes:- Ingress          #选择ingress规则,当前没有定义具体的ingress规则,则表示使用默认规则,默认规则为拒绝,没有包含egress规则,则表示默认egress放行,注意其中默认规则的区别,被选择的规则默认规则为拒绝,没有被选择的默认规则为允许
[root@k8s-master01 networkpolicy]# kubectl apply -f ingress-def.yaml -n dev
[root@k8s-master01 networkpolicy]# kubectl get networkpolicy -n dev
NAME               POD-SELECTOR   AGE
deng-all-ingress   <none>         53s

验证

[root@k8s-master01 networkpolicy]# cat pod_demo.yaml 
kind: Pod
apiVersion: v1
metadata:name: task-pv-pod   #为了能在多个名称空间创建,不要添加namespace
spec:containers:- name: nginximage: ikubernetes/myapp:v1ports:- containerPort: 80name: www
[root@k8s-master01 networkpolicy]# kubectl apply -f pod_demo.yaml -n dev  #在名称为dev的名称空间中创建一个pod
pod "task-pv-pod" created
[root@k8s-master01 networkpolicy]# kubectl get pod -n dev -o wide  #查看pod的IP地址
NAME          READY     STATUS    RESTARTS   AGE       IP           NODE
task-pv-pod   1/1       Running   0          20s       10.244.1.2   k8s-node01
[root@k8s-master01 networkpolicy]# curl 10.244.1.2  #访问这个地址,可以发现无法访问
^C
[root@k8s-master01 networkpolicy]# kubectl apply -f pod_demo.yaml -n prod #在名称为prod的名称空间中创建一个pod
pod "task-pv-pod" created
[root@k8s-master01 networkpolicy]# kubectl get pod -n prod -o wide #获取pod的IP地址
NAME          READY     STATUS    RESTARTS   AGE       IP           NODE
task-pv-pod   1/1       Running   0          7s        10.244.1.3   k8s-node01
[root@k8s-master01 networkpolicy]# curl 10.244.1.3  #访问,可以正常访问
Hello MyApp | Version: v1 | <a href="hostname.html">Pod Name</a>

3.显示定义一个ingress规则,允许访问dev名称空间中的pod

[root@k8s-master01 networkpolicy]# cat allow-netpol.yaml 
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:name: all-myapp-ingress
spec: podSelector:matchLabels:app: myappingress:- from:- ipBlock:cidr: 10.244.0.0/16except:- 10.244.1.2/32ports:- protocol: TCPport: 80- protocol: TCPport: 443
[root@k8s-master01 networkpolicy]# kubectl apply -f allow-netpol.yaml -n dev
networkpolicy.networking.k8s.io "all-myapp-ingress" created
[root@k8s-master01 networkpolicy]# kubectl get networkpolicy -n dev
NAME                POD-SELECTOR   AGE
all-myapp-ingress   app=myapp      54s
deng-all-ingress    <none>         32m

验证:

[root@k8s-master01 networkpolicy]# curl 10.244.1.2
Hello MyApp | Version: v1 | <a href="hostname.html">Pod Name</a>
[root@k8s-master01 networkpolicy]# curl 10.244.1.2:443
curl: (7) Failed connect to 10.244.1.2:443; 拒绝连接 
[root@k8s-master01 networkpolicy]# curl 10.244.1.2:6443  #注意6443和443的区别
^C

4.egress默认拒绝(验证步骤忽略)

[root@k8s-master01 networkpolicy]# cat egress-def.yaml 
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:name: deng-all-egress
spec: podSelector: {}policyTypes:- Egress

官方文档:https://docs.projectcalico.org/v3.3/introduction/

基于k8s安装文档:https://docs.projectcalico.org/v3.3/getting-started/kubernetes/

转载于:https://www.cnblogs.com/panwenbin-logs/p/10085764.html

相关文章:

设计模式之抽象工厂模式(Abstract Factory)摘录

面向对象系统的分析和设计实际上追求的就是两点&#xff1a;高内聚(Cohesion)和低耦合(Coupling). 23种GOF设计模式一般分为三大类&#xff1a;创建型模式、结构型模式、行为模式。 创建型模式包括&#xff1a;1、FactoryMethod(工厂方法模式)&#xff1b;2、Abstract Factor…

grub设置密码的方法

grub设置密码的方法&#xff1a;一、grub设置明文口令的方法&#xff1a;修改/etc/grub.conf配置文件就可以了.[root RedHat ~] # vi /etc/grub.conf #注&#xff1a;此为链接文件&#xff0c;指向 /boot/grub/grub.conf#boot/dev/hdbdefault0timeout5splashimage(hd0,0)/gr…

web服务器(IIS)的操作步骤

转载于:https://blog.51cto.com/14118520/2335646

微软全球AI总监:Azure AI是OpenAI技术商业化变现唯一、排他性合作方

作者 | 夕颜出品 | AI科技大本营&#xff08;ID:rgznai100&#xff09;导读&#xff1a;7 月 24 日下午&#xff0c;微软在北京举行了媒体交流会。会上&#xff0c;微软全球副总裁&#xff0c;人工智能平台负责人 Eric Boyd 介绍了 Azure AI 近期的最新进展情况&#xff0c;并带…

NYOJ_16_矩形嵌套

有点小坑的严格单调递增序列&#xff0c;主要是排序那里坑了一下。 思路&#xff1a;矩形的嵌套&#xff1f; (a<c&&b<d)||(a<d&&b<c)? 不&#xff0c;只要在建点时保证a<b&#xff0c;条件就会少一个&#xff0c;直接a<c&&b<…

抢程序员饭碗?自动写代码的Deep TabNine真如此神奇?

作者 | James Vincent等编译 | 夕颜出品 | AI科技大本营&#xff08;ID:rgznai100&#xff09;导读&#xff1a;在过去的一年中&#xff0c;AI 生成书面文字的能力大大提高。通过扫描庞大的文本数据集&#xff0c;机器学习软件可以生成从短篇小说到歌词的各种令人信服的样本。…

JS 总结之事件循环

众所周知&#xff0c;JavaScript 为了避免复杂&#xff0c;被设计成了单线程。 ⛅️ 任务 单线程意味着所有任务都需要按顺序执行&#xff0c;如果某个任务执行非常耗时&#xff0c;线程就会被阻断&#xff0c;后面的任务需要等上一个任务执行完毕才会进行。而大多数非常耗时的…

设计模式之工厂方法模式(Factory Method)摘录

23种GOF设计模式一般分为三大类&#xff1a;创建型模式、结构型模式、行为模式。 创建型模式包括&#xff1a;1、FactoryMethod(工厂方法模式)&#xff1b;2、Abstract Factory(抽象工厂模式)&#xff1b;3、Singleton(单例模式)&#xff1b;4、Builder(建造者模式)&#xff1b…

SpanBERT:提出基于分词的预训练模型,多项任务性能超越现有模型!

作者 | Mandar Joshi, Danqi Chen, Yinhan Liu, Daniel S. Weld, Luke Zettlemoyer, Omer Levy译者 | Rachel责编 | Jane出品 | AI科技大本营&#xff08;ID: rgznai100&#xff09;【导读】本文提出了一个新的模型预训练方法 SpanBERT &#xff0c;该方法能够更好地表示和预测…

XP与Windows 7(Win7)等操作系统Ghost备份

XP与Windows 7&#xff08;Win7&#xff09;等操作系统Ghost备份 2013年5月5日 前提&#xff1a;备份还原win7的话&#xff0c;此种Ghost备份方法只针对没有100MB保留分区的win7安装方式。去掉100MB的方法可以参考《Windows7&#xff08;win7&#xff09;系统重装与破解》&…

SSE4.1和SSE4.2 Intrinsics各函数介绍

SIMD相关头文件包括&#xff1a; //#include <ivec.h>//MMX //#include <fvec.h>//SSE(also include ivec.h) //#include <dvec.h>//SSE2(also include fvec.h)#include <mmintrin.h> //MMX #include <xmmintrin.h> //SSE(include mmintrin.h) #…

Nacos v0.7.0:对接CMDB,实现基于标签的服务发现能力

Nacos近期发布了0.7.0版本&#xff0c;该版本支持对接第三方CMDB获取CMDB数据、使用Selector机制来配置服务的路由类型、支持单机模式使用MySQL数据库、上线Node.js客户端&#xff0c;并修复了一些bug。对接CMDB实现就近访问在服务进行多机房或者多地域部署时&#xff0c;跨地域…

数十篇推荐系统论文被批无法复现:源码、数据集均缺失,性能难达预期

作者 | Maurizio Ferrari Dacrema译者 | 凯隐责编 | Jane出品 | AI科技大本营&#xff08;ID: rgznai100&#xff09;【导读】来自意大利米兰理工大学的 Maurizio 团队近日发表了一篇极具批判性的文章&#xff0c;剑指推荐系统领域的其他数十篇论文&#xff0c;指出这些论文中基…

crontab 总结

2019独角兽企业重金招聘Python工程师标准>>> 1.写法 每三天执行一次&#xff1a;0 0 */3 * * root command&#xff0c;注意&#xff1a;* * */3 * * root command 这样写是不对的。其它每N小时执行一次也类似 &#xff08;后续补充&#xff09; 转载于:https://…

ubuntu安装thrift

ubuntu环境下安装thrift-0.10.0 1.解压 2.编译安装 ./configure -with-cpp -with-boost -without-python -without-csharp -with-java -without-erlang -without-perl -with-php -without-php_extension -without-ruby -without-haskell -without-go make sudo make install3.是…

AES(Advanced Encryption Standard) Intrinsics各函数介绍

AES为高级加密标准&#xff0c;是较流行的一种密码算法。 SIMD相关头文件包括&#xff1a; //#include <ivec.h>//MMX //#include <fvec.h>//SSE(also include ivec.h) //#include <dvec.h>//SSE2(also include fvec.h)#include <mmintrin.h> //MMX #…

轻松应对Java试题,这是一份大数据分析工程师面试指南

作者 | HappyMint转载自大数据与人工智能&#xff08;ai-big-data&#xff09;导语&#xff1a;经过这一段时间与读者的互动与沟通&#xff0c;本文作者发现很多小伙伴会咨询面试相关的问题&#xff0c;特别是即将毕业的小伙伴&#xff0c;所以决定输出一系列面试相关的文章。本…

【Elasticsearch 5.6.12 源码】——【3】启动过程分析(下)...

版权声明&#xff1a;本文为博主原创&#xff0c;转载请注明出处&#xff01;简介 本文主要解决以下问题&#xff1a; 1、ES启动过程中的Node对象都初始化了那些服务&#xff1f;构造流程 Step 1、创建一个List暂存初始化失败时需要释放的资源&#xff0c;并使用临时的Logger对…

C++中的封装、继承、多态

封装(encapsulation)&#xff1a;就是将抽象得到的数据和行为(或功能)相结合&#xff0c;形成一个有机的整体&#xff0c;也就是将数据与操作数据的源代码进行有机的结合&#xff0c;形成”类”&#xff0c;其中数据和函数都是类的成员。封装的目的是增强安全性和简化编程&…

比尔盖茨护犊子 称iPad让大批用户沮丧

为什么80%的码农都做不了架构师&#xff1f;>>> 在5月6日接受美国CNBC电视台访问时&#xff0c;微软前任掌门人比尔盖茨维护了自家反响不那么好的Surface系列平板电脑&#xff0c;同时他还不忘吐槽了一把iPad。 当 谈到日渐颓败的PC市场时&#xff0c;盖茨称平板电…

小心陷阱:二维动态内存的不连续性

void new_test() {int** pp;pp new int*[10];for(int i0; i<10; i){pp[i] new int[10];}//pp[0], pp[1], ... , pp[9]在内存中连续;//a1 pp[0][0], pp[0][1], ... , pp[0][9]在内存中也是连续的;//a2 pp[1][0], pp[1][1], ... , pp[1][9]在内存中也是连续的;//...//a9 …

超酷炫!Facebook用深度学习和弱监督学习绘制全球精准道路图

作者 | Saikat Basu等译者 | 陆离责编 | 夕颜出品 | AI科技大本营&#xff08;ID: rgznai100&#xff09;导读&#xff1a;现如今&#xff0c;即使可以借助卫星图像和绘制软件&#xff0c;创建精确的道路图也依然是一个费时费力的人力加工过程。许多地区&#xff0c;特别是在发…

npm包发布记录

下雪了&#xff0c;在家闲着&#xff0c;不如写一个npm 包发布。简单的 npm 包的发布网上有很多教程&#xff0c;我就不记录了。这里记录下&#xff0c;一个复杂的 npm 包发布&#xff0c;复杂指的构建环境复杂。 整个工程使用 rollup 来构建&#xff0c;其中会引进 babel 来转…

设计模式之单例模式(Singleton)摘录

23种GOF设计模式一般分为三大类&#xff1a;创建型模式、结构型模式、行为模式。 创建型模式包括&#xff1a;1、FactoryMethod(工厂方法模式)&#xff1b;2、Abstract Factory(抽象工厂模式)&#xff1b;3、Singleton(单例模式)&#xff1b;4、Builder(建造者模式)&#xff1…

关于知识蒸馏,这三篇论文详解不可错过

作者 | 孟让转载自知乎导语&#xff1a;继《从Hinton开山之作开始&#xff0c;谈知识蒸馏的最新进展》之后&#xff0c;作者对知识蒸馏相关重要进行了更加全面的总结。在上一篇文章中主要介绍了attention transfer&#xff0c;FSP matrix和DarkRank&#xff0c;关注点在于寻找不…

设计模式之建造者模式(生成器模式、Builder)摘录

23种GOF设计模式一般分为三大类&#xff1a;创建型模式、结构型模式、行为模式。 创建型模式包括&#xff1a;1、FactoryMethod(工厂方法模式)&#xff1b;2、Abstract Factory(抽象工厂模式)&#xff1b;3、Singleton(单例模式)&#xff1b;4、Builder(建造者模式、生成器模式…

[置顶] webservice系列2---javabeanhandler

摘要&#xff1a;本节主要介绍以下两点&#xff0c;1.带javabean的webservice的开发和调用 2.handler的简单介绍及使用1.引言在之前的一篇博客webservice系列1---基于web工程上写一个基本数据类型的webservice中介绍了如何采用axis1.4来完成一个简单的webservice的开发流程(入参…

AI教育公司物灵科技完成战略融资,商汤科技投资

1月2日消息&#xff0c;从相关媒体报道&#xff0c;AI教育公司物灵科技近日完成了商汤的战略融资&#xff0c;本轮融资将用于产品迭代和扩大市场。 此前投资界曾报道&#xff0c;物灵科技已经获得1.5亿元Pre-A轮融资&#xff0c;当时具体资方未透露。 公开资料显示&#xff0…

Python之父发文,将重构现有核心解析器

原题 | PEG Parsers作者 | Guido van Rossum译者 | 豌豆花下猫转载自 Python猫&#xff08;ID: python_cat&#xff09; 导语&#xff1a;Guido van Rossum 是 Python 的创造者&#xff0c;虽然他现在放弃了“终身仁慈独裁者”的职位&#xff0c;但却成为了指导委员会的五位成员…

全面支持三大主流环境 |百度PaddlePaddle新增Windows环境支持

2019独角兽企业重金招聘Python工程师标准>>> PaddlePaddle作为国内首个深度学习框架&#xff0c;最近发布了更加强大的Fluid1.2版本, 增加了对windows环境的支持&#xff0c;全面支持了Linux、Mac、 windows三大环境。 PaddlePaddle在功能完备的基础上&#xff0c;也…