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

义乌正规自适应网站建设首选wordpress防御插件

义乌正规自适应网站建设首选,wordpress防御插件,宁夏微信网站建设,徐州网站制作企业Kubernetes作为编排引擎管理着分布在不同节点上的容器和Pod。Pod、Service、外部组件之间需要⼀种可靠的方找到彼此并进行通信#xff0c;Kubernetes网络则负责提供这个保障。 1.1 Kubernetes网络模型 Container-to-Container的网络 当Pod被调度到某个节点#xff0c;Pod中…Kubernetes作为编排引擎管理着分布在不同节点上的容器和Pod。Pod、Service、外部组件之间需要⼀种可靠的方找到彼此并进行通信Kubernetes网络则负责提供这个保障。 1.1 Kubernetes网络模型 Container-to-Container的网络 当Pod被调度到某个节点Pod中的所有容器都在这个节点上运行这些容器共享相同的本地问件系统、IPC和网络命名空间。不同Pod之间不存在端口冲突的问题因为每个Pod都有自己的IP地址。当某个容器使用localhost时意味着使用的是容器所属Pod的地址空间。 2. Pod之间的通信 Pod的IP是集群可见的即集群中的任何其他Pod和节点都可以通过IP直接与Pod通信这种通信不需要借助任何网络地址转换、隧道或代理技术。Pod内部和外部使用的是同⼀个IP这也意味着标准的命名服务和发现机制比如如DNS可以直接使用 数据包的传递Pod-to-Pod同节点 在 network namespace 将每一个 Pod 隔离到各自的网络堆栈的情况下虚拟以太网设备virtual Ethernet device将每一个 namespace 连接到 root namespace网桥将 namespace 又连接到一起此时Pod 可以向同一节点上的另一个 Pod 发送网络报文了。下图演示了同节点上网络报文从一个Pod传递到另一个Pod的情况。 数据包的传递Pod-to-Pod跨节点 在了解了如何在同节点上 Pod 之间传递数据包之后我们接下来看看如何在跨节点的 Pod 之间传递数据包。Kubernetes 网络模型要求 Pod 的 IP 在整个网络中都可访问但是并不指定如何实现这一点。实际上这是所使用网络插件相关的但是仍然有一些模式已经被确立了。 3. Pod与Service的通信 在Kubernetes集群中Pod可能会频繁地销毁和创建也就是说Pod的IP不是固定的。为了解决这个问题Service提供了访问Pod的抽象层。无论后端的Pod如何变化Service都作为稳定的前端对外提供服务。同时Service还提供了高可用和负载均衡功能Service负责将请求转发给正确的Pod。 外部访问 无论是Pod的IP还是Service的Cluster IP它们只能在Kubernetes集群中可见对集群之外的世界这些IP都是私有的。 Kubernetes提供了两种方式让外界能够与Pod通信 NodePort。Service通过Cluster节点的静态端口对外提供服务。 外部可以通过:访问Service。LoadBalancer。Service利用cloudprovider提供的loadbalancer对外提供服务cloudprovider负责将loadbalancer的流量导向Service。目前支持的cloudprovider有GCP、AWS、Azur等。 参考kubernetes基本概念 1.2 各种网络方案 为了保证网络方案的标准化、扩展性和灵活性K8S采用了CNIContainer Networking Interface规范。CNI是一个Pod网络集成标准简化了K8S和不同Pod网络实现技术的集成。 CNI最大的优点就是支持多种容器runtime而不仅仅是Docker。目前已经有多种支持K8S的网络方案包括 Flannel、Calico、Canal等它们都实现了CNI规范因此无论我们选择哪种具体方案它们的网络模型都是一致的。 1.3 Network Policy Network Policy是K8S的一种资源它使K8S可以通过Label选择Pod并指定其他Pod或外界如何与这些Pod通信。换句话说当Pod被定义了Network Policy时只有Policy允许的流量才能访问Pod默认情况下任何来源的流量都可以访问Pod是没有限制的即帮助K8S实现更为精细的流量控制实现租户隔离机制。 但是并不是所有K8S网络方案都支持Network Policy比如Flannel就不支持而Calico是支持的。 1.4 Network Policy实践 1.5 部署Canal 想要部署Canal需要切换网络方案这里我们使用最简单粗暴的方式重建当前K8S集群 kubeadm reset # 在每个节点上执行一次然后重新对Master节点进行初始化 kubeadm init \ --apiserver-advertise-address192.168.200.128 \ --image-repository registry.aliyuncs.com/google_containers \ --kubernetes-version v1.18.0 \ --service-cidr10.1.0.0/16 \ --pod-network-cidr10.244.0.0/16在两个Node节点上执行以下命令重新加入集群 kubeadm join 192.168.200.160:6443 --token ekqxk2.iiu5wx5bbnbdtxsw --discovery-token-ca-cert-hash sha256:c50bb83d04f64f4a714b745f04682b27768c1298f331e697419451f3550f2d05 最后通过以下命令部署Canal kubectl apply -f https://docs.projectcalico.org/v3.8/manifests/canal.yaml 1.6 部署测试应用 这里通过一个httpd应用来演示Network Policy该应用的yaml定义如下 apiVersion: apps/v1 kind: Deployment metadata:name: httpd spec:replicas: 3selector:matchLabels:name: networkpolicy-demotemplate:metadata:labels:name: networkpolicy-demospec:containers:- name: httpdimage: httpd:latestports:- containerPort: 80imagePullPolicy: IfNotPresent---kind: Service apiVersion: v1 metadata:name: httpd-svc spec:type: NodePortports:- protocol: TCPnodePort: 33000port: 8080targetPort: 80selector:name: networkpolicy-demo通过kubectl将其部署到K8S集群 kubectl apply -f httpd-demo.yaml[rootk8s-master ~]# kubectl get pod -o wide NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES httpd-595dc58589-c4hcv 1/1 Running 5 2d2h 10.244.1.157 k8s-node1 none none httpd-595dc58589-lxj9w 1/1 Running 6 2d2h 10.244.1.156 k8s-node1 none none httpd-595dc58589-v6wzw 1/1 Running 11 4d20h 10.244.1.153 k8s-node1 none none 1.7 测试Network Policy有效性 现在我们创建一个Network Policy其配置文件yaml如下 apiVersion: networking.k8s.io/v1 kind: NetworkPolicy metadata:name: access-httpd spec:podSelector:matchLabels:name: networkpolicy-demoingress:- from:- podSelector:matchLabels:access: trueports:- protocol: TCPport: 80该Network Policy定义了如下规则   1应用于所有 label 为 name : networkpolicy-demo 的Pod这里即刚刚创建的三个httpd pod。   2ingress中定义了只有 label 为 access : “true” 的Pod才能访问应用。   3即使通过Policy也只能访问80端口 通过kubectl将其应用到K8S集群中 kubectl apply -f networkpolicy.yaml下面再次在busybox pod中验证Network Policy的有效性 [rootk8s-master ~]# kubectl run busvbox --rm -it --imagebusybox bin/sh / # wget httpd-svc:8080 Connecting to httpd-svc:8080 (10.1.216.8:8080) wget: cant connect to remote host (10.1.216.8) Connection timed out从上可以看到已经无法再成功访问Service也无法再ping通三个Pod节点。 这个时候集群外也无法再通过NodePort访问到Service。 如果想要让测试Podbusybox能访问到应用了Network Policy的httpd应用我们可以对busybox pod加一个label就可以 [rootk8s-master ~]# kubectl run busybox --rm -it --imagebusybox --labelsaccesstrue /bin/sh / # wget httpd-svc:8080 Connecting to httpd-svc:8080 (10.1.216.8:8080) saving to index.html index.html 100% |**************************************************************************************************| 45 0:00:00 ETA index.html saved 运行后的验证结果如下可以访问到Service但Ping却被禁止 / # ping -c 3 10.244.1.150 PING 10.244.1.150 (10.244.1.150): 56 data bytes --- 10.244.1.150 ping statistics --- 3 packets transmitted, 0 packets received, 100% packet loss但是此时集群节点k8s-master与两个node与集群仍然无法访问到应用了Network Policy的httpd应用如果想要让它们也访问到则需要修改Network Policy做一个类似于开防火墙白名单的操作注意下面的ipBlock配置 apiVersion: networking.k8s.io/v1 kind: NetworkPolicy metadata:name: access-httpd spec:podSelector:matchLabels:name: networkpolicy-demoingress:- from:- podSelector:matchLabels:access: true- ipBlock:cidr: 192.168.200.0/24ports:- protocol: TCPport: 80再次应用到K8S集群后再来通过集群访问试试 [rootk8s-master ~]# kubectl exec -it busvbox -- /bin/sh / # ping -c 3 10.244.1.150 PING 10.244.1.150 (10.244.1.150): 56 data bytes 64 bytes from 10.244.1.150: seq0 ttl62 time2.633 ms 64 bytes from 10.244.1.150: seq1 ttl62 time0.288 ms 64 bytes from 10.244.1.150: seq2 ttl62 time0.319 ms--- 10.244.1.150 ping statistics --- 3 packets transmitted, 3 packets received, 0% packet loss round-trip min/avg/max 0.288/1.080/2.633 ms
http://www.zqtcl.cn/news/231488/

相关文章:

  • 龙口建设局网站深圳十大网站建设公司
  • 湛江网站设计哪家好公司网址怎么查询
  • 网站怎么设置关键词河南宣传片制作公司
  • 做网站 怎么赚钱吗安乡网站制作
  • 国外展览展示设计网站沧州网络推广管理公司
  • 物流信息平台网站建设深圳做手机网站建设
  • 品牌型网站的特点领导视察网站建设
  • 如何自己做网站推广淘宝客佛山小程序开发公司
  • 天津市建设局网站口碑营销相关案例
  • 怎么有自己的网站厂字形网页布局网站
  • 广州市财贸建设开发监理网站工程建设企业等采用
  • 网站建设规模设想自己建立网站教程
  • 兰溪建设局网站门户网站建设招标
  • 用wp做网站备案怎么查自己的邮箱号
  • 苏州企业网站建设公司价格数字媒体应用 网站开发
  • 西宁做网站seo四川省的住房和城乡建设厅网站首页
  • 响应式网站 有哪些弊端可以发广告的网站
  • wordpress 漫画站wordpress加目录
  • 天津商城网站制作深圳品牌网站设计公司
  • 初学网站开发上海市普陀区建设规划局网站
  • 网站开发完成后如何发布做网站用vs还是dw
  • 怎么看网站是否备案可信赖的菏泽网站建设
  • 做网站的优点系统软件开发服务
  • 深圳品牌营销网站建设尚品中国网站
  • 新建网站怎么做关键词南阳手机网站制作
  • 宁波网站建设应届生公司网站备案需要每年做吗
  • 汽车设计网站论坛网站 备案
  • 网站源码带手机版展示型网站首页设计解析
  • 备案的网站名称能重复备案吗为什么打开Wordpress很慢
  • vps网站建设个人网站二级域名做淘宝客