网络策略实战

news2024/11/15 13:30:11

网络策略实战

在这里插入图片描述

网络策略

在命名空间 dev 中创建⽹络策略 dev-policy,只允许 命名空间 prod 中的 pod 连上 dev 中 pod 的 80 端⼝,注意:这⾥有 2 个 ns ,⼀个为 dev(⽬标pod的ns),另外⼀个为prod(访 问源pod的ns)

🔋创建命名空间

首先创建两个命名空间dev和prod:

root@k8s-master:~# kubectl create namespace dev
namespace/dev created
root@k8s-master:~# kubectl create namespace prod
namespace/prod created

#查看已存在的命名空间

root@k8s-master:~# kubectl get namespaces --show-labels
NAME                STATUS   AGE    LABELS
app-team1           Active   673d   kubernetes.io/metadata.name=app-team1
default             Active   688d   kubernetes.io/metadata.name=default
dev                 Active   34m    kubernetes.io/metadata.name=dev
fubar               Active   673d   kubernetes.io/metadata.name=fubar
ing-internal        Active   673d   kubernetes.io/metadata.name=ing-internal
ingress-nginx       Active   672d   app.kubernetes.io/instance=ingress-nginx,app.kubernetes.io/name=ingress-nginx,kubernetes.io/metadata.name=ingress-nginx
kube-node-lease     Active   688d   kubernetes.io/metadata.name=kube-node-lease
kube-public         Active   688d   kubernetes.io/metadata.name=kube-public
kube-system         Active   688d   kubernetes.io/metadata.name=kube-system
kubesphere-system   Active   26h    kubernetes.io/metadata.name=kubesphere-system
my-app              Active   673d   kubernetes.io/metadata.name=my-app,name=my-app
prod                Active   34m    kubernetes.io/metadata.name=prod


在这里插入图片描述

🔌在两个命名空间生成Pod

这里使用Deployment生成Pod

首先在dev空间生成Pod:

dev-deploy.yml

apiVersion: apps/v1 
kind: Deployment     
metadata:
  name: dev-deploy
  namespace: dev 
spec: 
  replicas: 1
  selector:
    matchLabels:      
      app: dev-pod
  template: 
    metadata:
      labels:
        app: dev-pod
    spec:
      containers:
      - name: nginx
        image: nginx:latest
        ports:
        - containerPort: 80


root@k8s-master:~# vim dev-depoly.yml
root@k8s-master:~# kubectl apply -f dev-depoly.yml
deployment.apps/dev-deploy created

查看Pod信息:

root@k8s-master:~# kubectl get pod -n dev -o wide
NAME                          READY   STATUS    RESTARTS   AGE   IP               NODE        NOMINATED NODE   READINESS GATES
dev-deploy-6dccc6d68c-rqzrr   1/1     Running   0          39s   10.244.169.162   k8s-node2   <none>           <none>

然后在prod生成Pod:

prod-pod.yml

apiVersion: apps/v1 
kind: Deployment     
metadata:
  name: prod-deploy
  namespace: prod
spec: 
  replicas: 1
  selector:
    matchLabels:      
      app: prod-pod
  template: 
    metadata:
      labels:
        app: prod-pod
    spec:
      containers:
      - name: nginx
        image: nginx:latest
        ports:
        - containerPort: 80

root@k8s-master:~# vim prod-deploy.yml
root@k8s-master:~# kubectl apply -f prod-deploy.yml
deployment.apps/prod-deploy created

查看Pod信息:

root@k8s-master:~# kubectl get pod -n prod -o wide
NAME                           READY   STATUS    RESTARTS   AGE   IP               NODE        NOMINATED NODE   READINESS GATES
prod-deploy-7559496b85-8frb9   1/1     Running   0          65s   10.244.169.163   k8s-node2   <none>           <none>

在这里插入图片描述

🖨️设置网络策略

在命名空间dev中设置网络策略

目标:dev

访问:prod

在这里插入图片描述

设置入口隔离规则:

apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: dev-policy
  namespace: dev
spec:
  podSelector:
    matchLabels:
      app: dev-pod
  policyTypes:
    - Ingress   #因为是外部访问,所以设置dev的入口隔离
  ingress:
    - from:
        - namespaceSelector:
            matchLabels:
              kubernetes.io/metadata.name: prod 
        - podSelector:
            matchLabels: {}  #选择prod所有Pod
      ports:
        - protocol: TCP
          port: 80

在这里插入图片描述

设置网络策略:

root@k8s-master:~# vim dev-policy.yml
root@k8s-master:~# kubectl apply -f dev-policy.yml
networkpolicy.networking.k8s.io/dev-policy created

查看网络策略:

root@k8s-master:~# kubectl describe  networkpolicy -n dev
Name:         dev-policy
Namespace:    dev
Created on:   2023-10-27 17:59:26 +0800 CST
Labels:       <none>
Annotations:  <none>
Spec:
  PodSelector:     app=dev-pod
  Allowing ingress traffic:
    To Port: 80/TCP
    From:
      NamespaceSelector: kubernetes.io/metadata.name=prod
    From:
      PodSelector: <none>
  Not affecting egress traffic
  Policy Types: Ingress

进入prod的Pod里的容器里:

root@k8s-master:~# kubectl get pod  -n prod --show-labels
NAME                           READY   STATUS    RESTARTS   AGE   LABELS
prod-deploy-7559496b85-8frb9   1/1     Running   0          25m   app=prod-pod,pod-template-hash=7559496b85

root@k8s-master:~# kubectl exec -it prod-deploy-7559496b85-8frb9 -n prod -- /bin/bash
#访问dev-pod的ip 默认80端口
root@prod-deploy-7559496b85-8frb9:/# curl 10.244.169.162
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
<style>
html { color-scheme: light dark; }
body { width: 35em; margin: 0 auto;
font-family: Tahoma, Verdana, Arial, sans-serif; }
</style>
</head>
<body>
<h1>Welcome to nginx!</h1>
<p>If you see this page, the nginx web server is successfully installed and
working. Further configuration is required.</p>

<p>For online documentation and support please refer to
<a href="http://nginx.org/">nginx.org</a>.<br/>
Commercial support is available at
<a href="http://nginx.com/">nginx.com</a>.</p>

<p><em>Thank you for using nginx.</em></p>
</body>
</html>
#尝试访问其他端口 因为没有添加策略所以无法访问
root@prod-deploy-7559496b85-8frb9:/# curl 10.244.169.162:8080
curl: (28) Failed to connect to 10.244.169.162 port 8080: Connection timed out

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

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

相关文章

熟悉项目过程中

刑天机器人本身 背景知识&#xff1a; 刑天与地平线的关系、旭日派的关系&#xff1f; 地平线是一家公司&#xff0c;刑天机器人是他们家的一款产品&#xff0c;是硬件&#xff0c;旭日派也是他们家的一款产品&#xff0c;用作刑天机器人的大脑。 刑天机器人的源代码能安装…

【网络安全无小事】汽车网络安全:只有开局,没有尽头,聚光向前,安全到达

“ 汽车网络安全: 只有开局&#xff0c;没有尽头&#xff0c;聚光向前&#xff0c;安全到达。” 01 — 引言 汽车一直以来都将速度、激情、男性荷尔蒙和阳刚气息联系在一起&#xff0c;这种联系似乎已经成为了文化符号。然而&#xff0c;作为一名安全从业者&#xff0c;我时常担…

汽车电子 -- Bin、Hex、Srec、s19、elf等文件的区别

一、烧写文件 烧写文件有很多种格式&#xff0c;比如bin、Hex、s19等。下面对这几种文件格式做一下介绍。 1、bin文件 参看&#xff1a;【嵌入式烧录/刷写文件】-3.1-详解二进制Bin格式文件 bin是binary的缩写&#xff0c;翻译为“二进制”。binary file 二进制文件是一个…

idea提交代码冲突后,代码意外消失解决办法

敲了大半天的代码&#xff0c;解决冲突后&#xff0c;直接消失了当时慌的一批CCCCC 右击项目Local History ----show History 找到最近提交的内容右击选择Revert,代码全回来了

python+request接口自动化框架

目前我们需要考虑的是如何实现关键字驱动实现接口自动化输出&#xff0c;通过关键字的封装实现一定意义上的脚本与用例的脱离&#xff01; robot framework 的安装不过多说明&#xff0c;网上资料比较太多~ 实例&#xff1a;&#xff01;&#xff01;&#xff01;&#xff01…

matlab simulink PMSM永磁电机DTC控制

1、内容简介 略 10-可以交流、咨询、答疑 2、内容说明 PMSM永磁电机DTC控制 PMSM、永磁电机、DTC控制 传 是 &#xff0c;它的工作原理是&#xff1a;首先设定好运行期望值和滞环的容差值&#xff0c;然后把电机 到的差值 号输出&#xff0c;可以 示需要减小 大输出…

​LeetCode解法汇总1465. 切割后面积最大的蛋糕

目录链接&#xff1a; 力扣编程题-解法汇总_分享记录-CSDN博客 GitHub同步刷题项目&#xff1a; https://github.com/September26/java-algorithms 原题链接&#xff1a;力扣&#xff08;LeetCode&#xff09;官网 - 全球极客挚爱的技术成长平台 描述&#xff1a; 矩形蛋糕的…

ChatGLM系列七:LangChain+ChatGLM-6B

背景介绍 在开发过程中&#xff0c;我们经常会遇到需要构建基于本地知识库的问答系统的问题。这种系统需要能够根据用户提供的问题&#xff0c;在本地的知识库中查找并返回相关答案。然而&#xff0c;要实现这样的功能并不容易&#xff0c;涉及到语言模型的选择、知识库的管理…

OpenCV+OpenCvSharp实现图片特征向量提取与相似度计算

图片特征向量是一种用于描述图片内容的数学表示&#xff0c;它可以反映图片的颜色、纹理、形状等信息。图片特征向量可以用于做很多事情&#xff0c;比如图片检索、分类、识别等。 本文将介绍图片特征向量的提取以及相似度的计算&#xff0c;并使用C#来实现它们。 文章开始前&a…

论文阅读——BART

Arxiv: https://arxiv.org/abs/1910.13461 一个去噪自编码器的预训练序列到序列的模型。是一个结合了双向和自回归transformers的模型。 预训练分为两个阶段&#xff1a;任意噪声函数破坏文本和序列模型重建原始文本 一、模型 input&#xff1a;被破坏的文本-->bidirecti…

折磨的Ts

先看下官网 这里的withDefault是给props设置默认值的 由于props传入了个函数在设置默认值的时候不知道怎么设置了 解决办法&#xff1a;直接不设置了。也不写了。

JAVA毕业设计106—基于Java+Springboot的外卖系统(源码+数据库)

基于JavaSpringboot的外卖系统(源码数据库)106 一、系统介绍 本系统分为用户端和管理端角色 前台用户功能&#xff1a; 登录、菜品浏览&#xff0c;口味选择&#xff0c;加入购物车&#xff0c;地址管理&#xff0c;提交订单。 管理后台&#xff1a; 登录&#xff0c;员工管…

四、【常用的几种抠图方式三】

文章目录 钢笔工具抠图通道抠图蒙版抠图色彩范围抠图 钢笔工具抠图 钢笔工具抠图适合边缘比较硬的主体对象&#xff0c;因此适合需要精修而且边缘比较生硬的图片&#xff0c;钢笔工具操作比较多&#xff0c;对一般的新手来讲不是很友好&#xff0c;想要使用好钢笔工具需要经常…

appium操控微信小程序的坑

appium操控微信小程序的坑 打不开启动页面driver的context只有NATIVE_APP小程序上元素找不到 我打算使用appium操控微信小程序&#xff0c;只要能够获取到小程序的页面元素就算成功。下面都是我遇到的问题。 打不开启动页面 以下是我的appium的配置参数和代码&#xff1a; de…

每日一练 | 华为认证真题练习Day123

1、下面哪项参数不能用于高级访问控制列表&#xff1f; A. 物理接口 B. 时间范围 C. 目的端口号 D. 协议号 2、ACL不会过滤设备自身产生的访问其它设备的流量&#xff1b;只过滤转发的流量&#xff0c;转发的流量中包括其它设备访问该设备的流量。 A. 对 B. 错 3、某个AC…

python读取Excel到mysql

常见问题&#xff1a; 1.数据库密码有特殊字符 使用urllib.parse.quote_plus 编译密码 mysql_engine create_engine((f"mysqlpymysql://root:%s10.0.0.2:3306/mydb")%urllib.parse.quote_plus("passaaaa")) 2.设置字段类型 设置特定类型&#xff0c;和指…

<多线程章节五>synchrosized的可重入特性

&#x1f490;专栏导读 本篇文章收录于多线程&#xff0c;也欢迎翻阅博主的其他文章&#xff0c;可能也会让你有不一样的收获&#x1f604; &#x1f341;JavaSE &#x1f33a;多线程 &#x1f342;数据结构 &#x1f490;synchrosized的可重入特性及死锁 可重入特性就是&…

汉威科技光纤预警系统,守护油气长输管道“大动脉”

石油、天然气早已成为城市生活中不可或缺的能源。广大车主能快速地加上汽油&#xff0c;千家万户能方便地用上天然气&#xff0c;得益于我国庞大的石油、天然气输送基础设施网络。 我国油气分布西多东少、北多南少&#xff0c;要想把千里、乃至万里之外的石油、天然气输送到中部…

降本增效的集成平台

降本增效的集成平台是企业数字化转型中的关键工具之一。它能够帮助企业解决传统集成方式面临的痛点&#xff0c;并满足企业在数字化转型过程中的需求。下面将重点讲解企业集成的痛点及需求、传统与全域集成的对比。 企业集成的痛点及需求&#xff1a; 系统孤岛和信息孤岛&…

uniapp vue2、vue3 页面模板代码块设置

本文分享 uniapp vue2、vue3 页面模板代码块设置 设置路径 HBuilder X -> 工具 -> 代码块设置 -> vue代码块 -> 自定义代码块 如上图操作后在打开的 vue.json 文件的右侧“自定义代码块”中复制如下代码&#xff08;可全选替换也可添加到代码中&#xff09; 示…