kubernetes的网络

  1. kubernetes网络模型
    1. Kubernetes采用的是基于扁平地址空间的网络模型,集群中的每个Pod都有自己的IP地址,Pod之间不需要配置NAT就能直接通信,同一个Pod中的容器共享Pod的IP,能够通过localhost通信
    2. Pod容器内的通信
      1. 当Pod被调度到某个节点,Pod中的所有容器都在这个节点上运行,这些容器共享相同的本地文件系统,IPC和网络命名空间
      2. 不同Pod之间不存在端口冲突的问题,因为每个Pod都有自己的IP地址,当某个容器使用localhost时,意味着使用的是容器所属的Pod的地址空间
      3. 比如Pod A有两个容器container-A1和container-A2,container-A1在端口1234上监听,当container-A2连接到localhost:1234时,实际上就是在访问container-A1,这不会与同一个节点上的Pod B冲突,即使Pod B中的容器container-B1也在监听1234端口
    3. Pod之间的通信
      1. Pod的IP是集群可见的,即集群中的任何其他Pod和节点都可以通过IP直接与Pod通信,这种通信不需要借助任何网络地址转换,隧道或代理技术,Pod内部和外部使用的是同一个IP,这也意味着标准的命名服务和发现机制,比如DNS可以直接使用
    4. Pod与Service的通信
      1. Pod间可以直接通过IP地址通信,但前提是Pod知道对方的IP,在Kubernetes集群中,Pod可能会频繁的销毁和创建,也就是说Pod的IP不是固定的,为了解决这个问题,Service提供了访问Pod的抽象层,无论后端的Pod如何变化,Service都作为稳定的前端对外提供服务,同时,Service还提供了高可用和负载功能,Service负责将请求转发给正确的Pod
    5. 外部访问
      1. 无论是Pod的IP还是Service的Cluster IP,他们只能在Kubernetes集群中可见,对集群之外的世界,这些IP是私有的
      2. kubernetes提供了两种方式让外界能够与Pod通信
        1. NodePort,service通过Cluster节点的静态端口对外提供服务,外部可以通过:访问Service
        2. LoadBalancer:Service利用cloud provider提供的load balancer对外提供服务cloud provider负责将load provider的流量导向Service,目前支持的cloud provider有GCP,AWS,Azur等
  2. 各种网络方案
    1. 为了保证网络方案的标准化,扩展性和灵活性,kubernetes采用了Container Networking Interface(CNI)规范
      1. CNI是由CoreOS提出的容器网络规范,使用了插件模型创建容器的网络栈

      2. 在这里插入图片描述

      3. CNI的优点是支持多种容器runtime,不仅仅是Docker

      4. 目前已有多种支持Kubernetes的网络方案,比如Flannel,Calico,Canal,Weave Net等,因为他们都实现了CNI规范,无论选择哪种方案,得到的网络模型都一样,即每个Pod都有独立的IP,可以直接通信,

    2. Network Policy
      1. Network Policy是Kubernetes的一种资源,Network Policy通过Label选择Pod,并指定其他Pod或外界如何与这些Pod通信
      2. 默认情况下,所有Pod是非隔离的,即任何来源的网络流量都能够访问Pod,没有任何限制,当为Pod定义了Network Policy时,只有Policy允许的流量才能访问Pod
      3. 不是所有的Kubernetes网络方案都支持Network Policy,比如Flannel就不支持,Calico支持,
    3. Canal:他用Flannel实现Kubernete集群网络,同时又用Calico实现Network Policy
      1. Canal作为DaemonSet部署到每个节点,属于kube-system这个namespace
    4. 实践Network Policy
      1. 部署一个httpd应用,配置文件为httpd.yaml在这里插入图片描述

      2. httpd有三个副本,通过NodePort类型的Service对外提供服务,部署应用在这里插入图片描述

      3. 当前没有定义任何Network Policy,验证应用可以被访问

        1. 启动一个busybox Pod,既可以访问Service,也可以Ping到副本Pod在这里插入图片描述

        2. 集群节点既可以访问到Service,也可以Ping到副本Pod在这里插入图片描述

        3. 集群外可以访问Service在这里插入图片描述

      4. 创建Network Policy

        1. 在这里插入图片描述

          1. 定义将次Network Policy中的访问规则应用于label为run:httpd的Pod,即httpd应用的三个副本Pod
          2. ingress中定义只有label为accsee: "true"的Pod才能访问应用
          3. 只能访问80端口
        2. 通过kubectl apply创建Network Policy

          1. 在这里插入图片描述

          2. 验证Network Policy的有效性

            1. busybox Pod已经不能访问Service

              1. 在这里插入图片描述

              2. 如果Pod添加了label access:"true"就能访问到应用,但Ping已经被禁止在这里插入图片描述

            2. 集群节点已经不能访问Service,也Ping不到副本Pod

              1. 在这里插入图片描述
            3. 集群外也不能访问Service

              1. 在这里插入图片描述

              2. 如果希望让集群节点和集群外(192.168.56.1)也能够访问到应用,可以对Network Policy做修改在这里插入图片描述

              3. 应用新的Network Policy在这里插入图片描述

              4. 现在集群节点和集群外(192.168.56.1)已经能够访问了在这里插入图片描述

          3. 通过ingress限制进入的流量,也可以用ingress限制外出的流量

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

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

相关文章

车辆重识别(去噪扩散概率模型)论文阅读2024/9/27

[2] Denoising Diffusion Probabilistic Models 作者:Jonathan Ho Ajay Jain Pieter Abbeel 单位:加州大学伯克利分校 摘要: 我们提出了高质量的图像合成结果使用扩散概率模型,一类潜变量模型从非平衡热力学的考虑启发。我们的最…

【hot100-java】【零钱兑换】

R9-dp篇 class Solution {public int coinChange(int[] coins, int amount) {int ncoins.length;int [][] fnew int[n1][amount1];//除2防止下面1溢出Arrays.fill(f[0],Integer.MAX_VALUE/2);f[0][0]0;for (int i0;i<n;i){for (int c0;c<amount;c){if(c<coins[i]) f[i…

5G NR 协议规范表(对应3GPP 协议编号)

文章目录 5G NR 协议规范表&#xff08;对应3GPP 协议编号&#xff09;5G 架构相关协议5G 新空口相关协议无线接入网相关协议终端相关协议 5G NR 协议规范表&#xff08;对应3GPP 协议编号&#xff09; 5G 架构相关协议 5G 新空口相关协议 无线接入网相关协议 终端相关协议

网页设计html心得

一&#xff0c;认识网页 说到网页&#xff0c;其实大家并不陌生 1.1网页究竟是什么&#xff1f; 网页主要由文字、图像和超链接等元素构成。当然&#xff0c;除了这些元素&#xff0c;网页中还可以包含音频、视频以及Flash等。 1.2网页是如何形成的呢&#xff1f; 1.特殊的…

uni-app在线预览pdf

这里推荐下载pdf.js 插件 PDF.js - Browse Files at SourceForge.net 特此注意 如果报 Promise.withResolvers is not a function 请去查看版本兼容问题 降低pdf.js版本提高node版本 下载完成后 在 static 文件夹下新建 pdf 文件夹&#xff0c;将解压文件放进 pdf 文件…

从0新建一个微信小程序实现一个简单跳转

首先 1.从这里下载开发工具 https://developers.weixin.qq.com/miniprogram/dev/framework/quickstart/getstart.htm 2. 等下载完毕后 创建一个空白项目 在pages目录下右键创建一个page : testUI,这时候会生成四个文件 新建一个文件夹 testUI 给他们放一起 3.增加一个按钮 …

尚品汇-自动化部署-Jenkins的安装与环境配置(五十六)

目录&#xff1a; 自动化持续集成 &#xff08;1&#xff09;环境准备 &#xff08;2&#xff09;初始化 Jenkins 插件和管理员用户 &#xff08;3&#xff09;工作流程 &#xff08;4&#xff09;配置 Jenkins 构建工具 自动化持续集成 互联网软件的开发和发布&#xf…

【AI基础】pytorch lightning 基础学习

传统pytorch工作流是首先定义模型框架&#xff0c;然后写训练和验证&#xff0c;测试循环代码。训练&#xff0c;验证&#xff0c;测试代码写起来比较繁琐。这里介绍使用pytorch lightning 部署模型&#xff0c;加速模型训练和验证&#xff0c;记录。 准备工作 1 安装pytorch…

JAVA红娘婚恋相亲交友系统源码全面解析

在数字化时代&#xff0c;红娘婚恋相亲交友系统成为了连接单身男女的重要桥梁。JAVA作为一种流行的编程语言&#xff0c;为开发这样的系统提供了强大的支持。编辑h17711347205以下是对JAVA红娘婚恋相亲交友系统源码的全面解析&#xff0c;以及三段示例代码的展示。 系统概述 …

[产品管理-33]:实验室技术与商业化产品的距离,实验室技术在商业化过程中要越过多少道“坎”?

目录 一、实验室技术 1.1 实验室研究性技术 1.2 技术发展的S曲线 技术发展S曲线的主要阶段和特点 技术发展S曲线的意义和应用 二、实验室技术商业化的路径 2.1 实验室技术与商业化产品的距离 1、技术成熟度与稳定性 - 技术自身 2、市场需求与适应性 - 技术是满足需求 …

ArcEngine C#二次开发图层处理:根据属性分割图层(Split)

需求&#xff1a;仅根据某一属性&#xff0c;分割图层&#xff0c;并以属性值命名图层名保存。 众所周知&#xff0c;ArcGIS ArcToolbox中通过Split可以实现图形分割一个图层&#xff0c;以属性值命名图层&#xff0c;如下图所示。 本功能仅依据属性值&#xff0c;将一个shp图…

转行大模型的必要性与未来前景:迎接智能时代的浪潮

随着人工智能&#xff08;AI&#xff09;技术的迅猛发展&#xff0c;特别是大型语言模型&#xff08;LLM, Large Language Models&#xff09;的崛起&#xff0c;各行各业正迎来一场前所未有的技术革命。对于普通程序员而言&#xff0c;转行进入大模型领域不仅是对个人职业发展…

【第十五章:Sentosa_DSML社区版-机器学习之关联规则】

目录 15.1 频繁模式增长 15.2 PrefixSpan 【第十五章&#xff1a;Sentosa_DSML社区版-机器学习之关联规则】 机器学习关联规则是一种用于发现数据集中项之间有趣关系的方法。它基于统计和概率理论&#xff0c;通过分析大量数据来识别项之间的频繁共现模式。 15.1 频繁模式增…

Python 爬虫 根据ID获得UP视频信息

思路&#xff1a; 用selenium库对网页进行获取&#xff0c;然后用bs4进行分析&#xff0c;拿到bv号&#xff0c;标题&#xff0c;封面&#xff0c;时长&#xff0c;播放量&#xff0c;发布时间 先启动webdriver.&#xff0c;进入网页之后&#xff0c;先等几秒&#xff0c;等加…

Unity 的Event的Use()方法

对于Event的Use方法&#xff0c;其在调用后将不会再判断同类型的事件 这种情况下&#xff0c;第二个MosueDown不会进入&#xff0c;因为已经Use 如果把Use注释掉 依旧能进入第二个MosueDown 也就是说当使用了Use方法&#xff0c;相同的事件类型不会进第二遍

【反素数】

题目 思路 首先分析 的性质 一定是 中约数最大的一定是约数同是最大的数字中值中最小的进一步挖掘性质&#xff0c;紧贴枚举的做法 约数最大值最小&#xff08;也决定了层数、其它约束&#xff09;&#xff0c;是枚举的比较条件实现上述目的&#xff0c;枚举的质数种类在大小…

Tensorflow 2.0 cnn训练cifar10 准确率只有0.1 [已解决]

cifar10 准确率只有0.1 问题描述踩坑解决办法 问题描述 如果你看的是北京大学曹健老师的tensorflow2.0,你在class5的部分可能会遇见这个问题 import matplotlib.pyplot as plt import tensorflow as tf from tensorflow.keras.layers import Dense, Dropout,MaxPooling2D,Fla…

VS Code breadcrumbs view 是什么

VS Code breadcrumbs view 是什么 正文 正文 breadcrumbs view&#xff1a;中文翻译&#xff0c;面包屑视图&#xff0c;乍听起来感觉十分抽象。这里我们来解释一下这个视图的含义&#xff1f; 如下图所示&#xff0c;红色框标记的部分就是 这个视图可以显示出当前打卡文件所…

新手答疑 | 零基础该怎么学习嵌入式?嵌入式Linux学习路线是什么?嵌入式开发板推荐?

很多初学者想要涉足嵌入式Linux开发领域&#xff0c;但往往在刚入门阶段&#xff0c;会因为初次接触到大量复杂的概念术语和深奥的技术文档感到压力重重&#xff0c;面对这些内容不知从何下手&#xff0c;感到十分迷茫&#xff0c;网上的内容也纷繁复杂&#xff0c;没有清晰的学…

从 Kafka 到 WarpStream: 用 MinIO 简化数据流

虽然 Apache Kafka 长期以来一直是流数据的行业标准&#xff0c;但新的创新替代方案正在重塑生态系统。其中之一是 WarpStream&#xff0c;它最近在 Confluent 的所有权下进入了新的篇章。此次收购进一步增强了 WarpStream 提供高性能、云原生数据流的能力&#xff0c;巩固了其…