容器弹性云底层原理揭秘(下)

本文涉及的产品
容器镜像服务 ACR,镜像仓库100个 不限时长
简介: 容器弹性云底层原理揭秘(下)

1、任何cluster成员更改
都会在集群中每一个成员上同步
2、每一个子的cluster都是全量数据

通过DNS路由解析

image.png


数据都是共通的 按距离访问即可

4层负载 比如LVS
7层负载 比如Nginx


核心概念


image.png


pod 模版

k8s就一个大厨 pod模版是厨具

image.png


label:单进程一样就好了


控制器是最重要的

image.png


Deployment是长期服伺型

该类型代表 程序是一直运行在后台的 不会被杀死的

线上用的最多

Nginx Deployment

image.png


要求:Metadata 一定要全局唯一


K8S网络


image.png

1、Node独立IP段 1-254之间
2、node中pod的独立ip为10.1.1.0/24 24表示前面的24个字节(bytes)是子网掩码
3、pod中有dokcer容器,容器共享独立ip

四种模式

image.png

  • 单机
单机所有应用程序只能访问127.0.0.1即无网模式
  • host

Host模式 pod共享宿主机网络 导致的问题

要求pod1必须开公网权限
只能把node1这台机器的公网全部都打开
没有办法对每一个pod或对pod中的容器做操作
安全风险很高
host模式和宿主机直接共享网卡
eth0 安全性非常不好
  • bridge

image.png


1、bridge docker原生模式其实就是一个net
2、宿主机本身有一个网卡 eth0
Docker demon 开一个网桥 docker0网桥
一方面连接物理网卡
另一方面连接pod
pod里面有虚拟网卡
这个虚拟网卡会和docker0连接起来
有很多pod 都会共享docker这个网桥
3、有了docker网桥 每个pod都会有自己独立的ip
不需要共享宿主机的ip
4、bridge模式 网桥 dokcer0
(名字可以随便指定 docker1…)
5、Docker container中的eth0和veth通讯
6、网桥就是一个配置命令 不需要安装任何软件
无非就是套一个dokcer网桥就可以了


这是一个二层网络 没有办法做三层通信

所谓三层通信就是没有办法做网络虚拟化的
sdn是VXLAN技术
是一个三层网络
在多个机房之间就可以直接通信了


虚拟化模式

Web APP Frontend1如何访问Backend Service2的?

image.png

1、flannel是软件虚拟网络
就需要安装一个程序flannelid
虚拟化软件用来虚拟化网络的
在每台node上都需要安装
2、flannel将ip封装
之前都是二层网络
Flannel这块是三层网络
3、首先无缝经过网桥转换
包一层ip和port(源ip和目的ip)
传给物理链路的网卡
又包一层ip和port
传给另外一个物理链路网卡解掉一层
传给flannel 又解掉一层然后docker网卡


经过2层包装 传输效率很低

容器间怎么通信

容器间通讯

image.png


Ip1 不需要知道pod ip2的ip 在路由器(交换机)上都有配置

同一个node的pod间通信

image.png

image.png

pod1首先和网桥docker0通信
然后和本地网卡通信
另外一个机器的网卡通信
这是bridge模式


CNI

image.png

1、cni是网络规范 具体是通过bridge模式走
还是overlay模式做还是dhcp
2、执行add方法目的无非就是拿到一个ip
删除执行del把ip还回原来的地方
3、K8S-CNI默认提供了dhcp cni网络插件
集成dhcp服务器
比如分配了100个ip到dhcp中
每个pod重启的时候通过cni从dhcp中取一个ip
一旦不用则会还回去


后记


后续会继续介绍容器云的实践
目录
打赏
0
0
0
0
19
分享
相关文章
【深入浅出Docker原理及实战】「原理实战体系」零基础+全方位带你学习探索Docker容器开发实战指南(Dockerfile使用手册)
Docker 是一套构建在 Linux 内核之上的高级工具,旨在帮助开发人员和运维人员更轻松地交付应用程序和依赖关系,实现跨系统和跨主机的部署。使用安全且轻量级的容器环境来实现这一目标。容器可以手动创建,也可以通过编写 Dockerfile 自动创建。开发人员和运维人员可以将应用程序及其依赖打包到容器中,实现应用程序的可移植性和环境一致性。
292 5
【深入浅出Docker原理及实战】「原理实战体系」零基础+全方位带你学习探索Docker容器开发实战指南(Dockerfile使用手册)
深入理解Linux veth虚拟网络设备:原理、应用与在容器化架构中的重要性
在Linux网络虚拟化领域,虚拟以太网设备(veth)扮演着至关重要的角色🌐。veth是一种特殊类型的网络设备,它在Linux内核中以成对的形式存在,允许两个网络命名空间之间的通信🔗。这篇文章将从多个维度深入分析veth的概念、作用、重要性,以及在容器和云原生环境中的应用📚。
深入理解Linux veth虚拟网络设备:原理、应用与在容器化架构中的重要性
深入解析Docker容器化技术的核心原理
深入解析Docker容器化技术的核心原理
88 1
|
5月前
|
docker的底层原理二:容器运行时环境
本文深入探讨了Docker容器运行时环境的关键技术,包括命名空间、控制组、联合文件系统、容器运行时以及分离的进程树,这些技术共同确保了容器的隔离性、资源控制和可移植性。
79 5
Spring5入门到实战------2、IOC容器底层原理
这篇文章深入探讨了Spring5框架中的IOC容器,包括IOC的概念、底层原理、以及BeanFactory接口和ApplicationContext接口的介绍。文章通过图解和实例代码,解释了IOC如何通过工厂模式和反射机制实现对象的创建和管理,以及如何降低代码耦合度,提高开发效率。
Spring5入门到实战------2、IOC容器底层原理
一文详解容器技术简介和基本原理
本文全面阐述了容器技术的发展历程、关键技术、架构和当前的行业生态,特别是容器技术在云环境中的应用和演进。
在k8S中,初始化容器(init container)概念原理是什么?
在k8S中,初始化容器(init container)概念原理是什么?
《阿里云产品四月刊》—享道出行:容器弹性技术驱动下的智慧出行稳定性实践(3)
阿里云瑶池数据库云原生化和一体化产品能力升级,多款产品更新迭代
129 1
(九)深入并发编程之并发容器:阻塞队列、写时复制容器、锁分段容器原理详谈
相信大家在学习JavaSE时都曾接触过容器这一内容,一般Java中的容器可分为四类:Map、List、Queue以及Set容器,而在使用过程中,对于ArrayList、HashMap等这类容器都是经常使用的,但问题在于这些容器在并发环境下都会存在线程安全问题。
Java面试题:简述Docker等容器化技术的原理及其在Java应用部署中的作用。
Java面试题:简述Docker等容器化技术的原理及其在Java应用部署中的作用。
102 0

热门文章

最新文章