当前位置: 首页 > news >正文

网站建设钱试论述网上商城的推广技巧

网站建设钱,试论述网上商城的推广技巧,电商有哪些推广方法,aso优化重要吗前言 随着微服务的流行,越来越多的云服务平台需要大量模块之间的网络调用。 在 Kubernetes 中,网络策略(NetworkPolicy)是一种强大的机制,可以控制 Pod 之间和 Pod 与外部网络之间的流量。 Kubernetes 中的 NetworkPolicy 定义了一组规则&…

前言

随着微服务的流行,越来越多的云服务平台需要大量模块之间的网络调用。

在 Kubernetes 中,网络策略(NetworkPolicy)是一种强大的机制,可以控制 Pod 之间和 Pod 与外部网络之间的流量。

Kubernetes 中的 NetworkPolicy 定义了一组规则,这些规则允许或者拒绝特定流量的传输。通过使用 NetworkPolicy,Kubernetes 管理员能够更好地掌控容器网络,确保应用程序的网络安全性。

NetworkPolicy 可以实现什么

NetworkPolicy 可被定义为 Pod 标签选择器、命名空间选择器或者两者的组合。它可以实现以下功能:

  • 限制 Pod 之间的流量:通过指定 Ingress 规则,可以阻止来自其他 Pod 的流量进入目标 Pod。
  • 允许 Pod 之间的流量:需要为目标 Pod 配置 Egress 规则,以便只允许来自特定 Pod 的流量进入。
  • 限制 Pod 与外部网络的通信:通过指定 Egress 规则,可以控制哪些类型的外部流量可以进入 Pod,并防止未经授权的访问。
  • 允许 Pod 与外部网络的通信:需要为目标 Pod 配置 Ingress 规则,以便只允许来自特定 IP 地址、端口或协议的流量进入。

使用 NetworkPolicy 时,需要考虑什么

使用 NetworkPolicy 时,需要考虑以下几个方面:

  • NetworkPolicy 只在支持它的网络插件中起作用,例如 Calico、Cilium 和 Weave Net 等。
  • 没有定义任何 NetworkPolicy 规则,则所有的流量都会被允许。
  • 定义 NetworkPolicy 后,它只适用于当前命名空间中的 Pod。
  • 在 NetworkPolicy 中指定标签选择器时,应保证其唯一性,以免给其他 Pod 带来影响。

网络策略有哪些

默认情况下,如果名字空间中不存在任何策略,则所有进出该名字空间中 Pod 的流量都被允许。

Namespace 隔离流量

默认情况下,所有 Pod 之间都是互通的。每个 Namespace 可以配置独立的网络策略,来隔离 Pod 之间的网络流量。

由此,可以通过创建匹配 Pod 的 Network Policy 来作为默认的网络策略,比如默认拒绝所有 Pod 之间 Ingress 的通信,如下:

apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:name: default-deny
spec:podSelector: {}policyTypes:- Ingress

默认拒绝 Pod 之间 Egress(出口) 通信的策略:

apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:name: default-deny
spec:podSelector: {}policyTypes:- Egress

甚至是默认拒绝 Pod 之间 Ingress(入口) 和 Egress(出口) 通信的策略:

apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:name: default-deny
spec:podSelector: {}policyTypes:- Ingress- Egress

Pod 隔离

Pod 隔离可以分为出口的隔离和入口的隔离。其实这里的“隔离”不是绝对的,而是还有一些其它限制。

比如可以通过使用标签选择器(这里可以是 namespaceSelector 和 podSelector)来控制 Pod 之间的流量。

如下面的 Network Policy:

  • 允许 default namespace 中带有 role=myfront 标签的 Pod 访问 default namespace 中带有 role=mydb 标签 Pod 的 6379 端口
  • 允许带有 project=myprojects 标签的 namespace 中所有 Pod 访问 default namespace 中带有 role=mydb 标签 Pod 的 6379 端口
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:name: test-network-policynamespace: default
spec:podSelector:matchLabels:role: mydbingress:- from:- namespaceSelector:matchLabels:project: myproject- podSelector:matchLabels:role: myfrontports:- protocol: tcpport: 6379

另外一个同时开启 Ingress 和 Egress 通信的策略为:

apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:name: test-network-policynamespace: default
spec:podSelector:matchLabels:role: mydbpolicyTypes:- Ingress- Egressingress:- from:- ipBlock:cidr: 192.168.0.0/16except:- 192.168.1.0/24- namespaceSelector:matchLabels:project: myproject- podSelector:matchLabels:role: myfrontports:- protocol: TCPport: 6379egress:- to:- ipBlock:cidr: 10.1.0.0/24ports:- protocol: TCPport: 5978

它用来隔离 default namespace 中带有 role=mydb 标签的 Pod:

  • 允许 default namespace 中带有 role=myfront 标签的 Pod 访问 default namespace 中带有 role=mydb 标签 Pod 的 6379 端口
  • 允许带有 project=myprojects 标签的 namespace 中所有 Pod 访问 default namespace 中带有 role=mydb 标签 Pod 的 6379 端口
  • 允许 default namespace 中带有 role=mydb 标签的 Pod 访问 10.1.0.0/24 网段的 TCP 5987 端口

使用场景

禁止访问指定服务

kubectl run web --image=nginx --labels app=web,env=prod --expose --port 80

在这里插入图片描述

网络策略如下:

kind: NetworkPolicy
apiVersion: networking.k8s.io/v1
metadata:name: web-deny-all
spec:podSelector:matchLabels:app: webenv: prod

只允许指定 Pod 访问服务

kubectl run apiserver --image=nginx --labels app=bookstore,role=api --expose --port 80

网络策略如下:

kind: NetworkPolicy
apiVersion: networking.k8s.io/v1
metadata:name: api-allow
spec:podSelector:matchLabels:app: bookstorerole: apiingress:- from:- podSelector:matchLabels:app: bookstore

禁止 namespace 中所有 Pod 之间的相互访问

apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:name: default-denynamespace: default
spec:podSelector: {}

禁止其他 namespace 访问服务

kubectl create namespace secondary
kubectl run web --namespace secondary --image=nginx \--labels=app=web --expose --port 80

在这里插入图片描述

网络策略配置如下:

kind: NetworkPolicy
apiVersion: networking.k8s.io/v1
metadata:namespace: secondaryname: web-deny-other-namespaces
spec:podSelector:matchLabels:ingress:- from:- podSelector: {}

此策略可以确保即使没有被其他任何 NetworkPolicy 选择的 Pod 也不会被允许流出流量。 此策略不会更改任何 Pod 的入站流量隔离行为。

只允许指定 namespace 访问服务

kubectl run web --image=nginx \--labels=app=web --expose --port 80

网络策略如下:

kind: NetworkPolicy
apiVersion: networking.k8s.io/v1
metadata:name: web-allow-prod
spec:podSelector:matchLabels:app: webingress:- from:- namespaceSelector:matchLabels:purpose: production

允许外网访问服务

kubectl run web --image=nginx --labels=app=web --port 80
kubectl expose deployment/web --type=LoadBalancer

网络策略如下:

kind: NetworkPolicy
apiVersion: networking.k8s.io/v1
metadata:name: web-allow-external
spec:podSelector:matchLabels:app: webingress:- ports:- port: 80from: []

有了这个策略,任何额外的策略都不会导致来自这些 Pod 的任何出站连接被拒绝。 此策略对进入任何 Pod 的隔离没有影响。
以上这些使用场景的 YAML 配置定义就不再赘述了,有不明白的地方可以看下我之前的文章。

总结

Kubernetes 中的 NetworkPolicy 是一个非常重要的特性,可以控制容器网络的流量和安全,确保应用程序的可靠性和安全性。

为了更好地使用它,需要对其有一定的理解并遵循相应的配置和管理规则。

http://www.yayakq.cn/news/711201/

相关文章:

  • 昆明市住房和城乡建设局门户网站黑龙江建设网ca数字证书如何注销
  • 网站开发前端要学什么公司注册地址查询系统
  • seo学习网站广告设计与制作专业就业方向有哪些
  • 中建西部建设西南有限公司网站网站建设业务怎么开展
  • 网站设计的书天长网站开发
  • 东莞哪些网络公司做网站比较好自己买服务器做网站
  • 专做尼泊尔的旅行网站那类型网站容易做排名
  • 企业网站排名关键关于网站建设的英文书籍
  • 上海做网站就用乐云seo十年专业团队张伟图片
  • 外贸网站商城建设郑州做手机网站建设
  • 三网合一网站安康市集约化平台
  • 壹互联是网站公司吗中国商标网商标查询网
  • 东莞市建设企业网站服务机构wordpress机器人抓取
  • 网站验收时项目建设总结报告中国建设银行官网站保本理财
  • 网站开发调试iis毕业设计网站建设流程
  • 设计网站要包含信息类型怎么做一个微信公众号
  • 济南网站建设 unzz网上下的网站模版后门
  • 阿里云服务器怎么发布网站网站建设评价指标
  • 期刊网站建设南里商濮阳网站建设
  • 河南省做网站的公司核桃少儿编程加盟
  • 课外辅导东莞网站建设技术支持天台建设局网站
  • php 开启gzip加速网站网站建设的一般费用
  • 百度seo网站优化怎么做品牌营销策划方案报价
  • 让蜘蛛不抓取网站的文件夹网站域名查询工具
  • 怎么做自己淘宝优惠券网站设计一个小程序多少钱
  • 站酷网app网站做下CDN防护
  • c 语言做网站网站的友情连接怎么做
  • 宁波汽车网站建设游戏开发和网站开发
  • 一般在什么网站上做电子请帖cuteftp 备份网站
  • 多平台网站设计实例京东网站建设吗