k8s知识点总结

news/2024/11/6 1:39:13/

docker 名称空间 分类

Docker中的名称空间用于提供进程隔离,确保容器之间的资源相互独立。主要分类包括:
PID Namespace:进程ID隔离,使每个容器有自己的进程树,容器内的进程不会干扰其他容器或主机上的进程。
NET Namespace:网络隔离,允许每个容器拥有独立的网络栈,包括IP地址、端口、路由等。
IPC Namespace:进程间通信隔离,使容器内的共享内存和信号量独立,防止不同容器之间的通信干扰。
MNT Namespace:挂载点隔离,允许每个容器有自己的文件系统视图,不同容器的文件系统不会相互干扰。
UTS Namespace:主机名和域名隔离,使容器可以有自己的主机名和域名。
USER Namespace:用户和组ID隔离,允许容器内的用户和主机上的用户独立。

docker 网络模式

bridge(桥接模式):
默认模式,容器连接到Docker创建的桥接网络。每个容器都有一个独立的IP地址,可以通过该地址相互通信。

host(主机模式):
容器直接使用宿主机的网络栈,没有网络隔离。容器的网络接口与宿主机相同,适用于性能敏感的应用。

none(无网络模式):
容器没有网络连接,适用于需要完全隔离的场景。可以通过手动配置网络来实现特定需求。

overlay(覆盖网络):
用于Docker Swarm集群,允许不同主机上的容器相互通信。通过虚拟网络实现跨主机的容器通信。

macvlan:
允许容器获得物理网络接口的MAC地址,使其在网络上表现得像独立的物理设备。适用于需要直接访问网络的场景。

ipvlan:
类似于macvlan,但在IP层上实现。适用于需要简化网络管理的场景,能够更好地支持现有的网络架构。

pod类型

1 静态pod
静态Pod不存放在etcd存储里,而是存放在某个具体的 Node 上的一个具体文件中,并且只在此 Node 上启动运行。静态 Pod 是由 kubelet 进行管理的仅存在于特定 Node 上的 pod.它们不能通过 API Server 进行管理,无法与 ReplicationController,Deployment 或者 DaemonSet 进行关联,也无法进行健康检查
2 普通pod
普通的 Pod 一旦被创建,就会被存储到 etcd 中,随后会被 Kubernetes Master 调度到某个具体的 Node 上并进行绑定(Binding),该 Node 上的 kubelet 进程会将其实例化成一组相关的 Docker 容器并启动起来。当 Pod 里的某个容器停止时,Kubernetes 会自动检测到这个问题并且重新启动这个 Pod(重启Pod里的所有容器);如果 Pod 所在的 Node 宕机,则会将这个 Node 上的所有 Pod 重新调度到其他节点上运行。

pod调度原理

在这里插入图片描述
在这里插入图片描述

pod生命周期

Pending
APIserver已经创建该server,但pod内有一个或多个容器的镜像还未创建,可能在下载中。资源不够用,调度策略,网络

Running
Pod内所有的容器已创建,所有容器都是运行状态,活性检测过了,就绪检测还有 0/1 running

Succeeded
Pod 中的所有容器都已成功终止,并且不会再重启,正常执行任务完成退出的状态

Failed
Pod 中的所有容器都已终止,并且至少有一个容器是因为失败终止,容器以非 0 状态退出或者被系统终止。

Unknown
由于某种原因无法获取Pod的状态,比如 网络不通。

dnsPolicy 可以配置四种策略。

  • None: 表示不使用集群、节点的解析,只使用dnsConfig中配置的解析。
  • Default:表示使用节点上的域名解析配置。即pod内的dns配置与节点上的/etc/resolv.conf配置相同。
  • ClusterFirst(默认配置):表示使用集群的DNS解析,即coreDNS中的解析。注意,如果同时设置hostNetwork为true的话,效果相当于Default策略。另外,如果coreDNS中配置了forward . /etc/resolv.conf或其他域名解析配置的话,ClusterFirst不仅可以解析到集群内部的服务,也可以使用节点resolv.conf配置的nameserver解析外部服务。
  • ClusterFirstWithHostNet:一般配合hostNetwork配置使用。设置hostNetwork为true后,Pod会使用节点的网络命名空间,此时无法与集群内其他Pod通信,设置dnsPolicy为ClusterFirstWithHostNet后,会将coreDNS服务地址等集群DNS服务配置加入到resolv.conf中,实现使用节点的网络栈情况下与集群其他Pod通信。最终效果为Pod网络命名空间使用节点网络命名空间,DNS解析使用ClusterFirst配置的DNS解析。

http://www.ppmy.cn/news/1544683.html

相关文章

mysql通过sql语句手动关闭连接

最后更新于2024年10月30日 09:44:17 最近写spring,hikari没控制好,总触发too many connections,需要手动关闭一些。我是按照host来关闭的: 查看当前连接: SELECT * FROM information_schema.PROCESSLIST这里关闭我用…

软件测试学习笔记丨Flask操作数据库-一对多

本文转自测试人社区,原文链接:https://ceshiren.com/t/topic/23443 场景示例: 一个班级有多个学生一个学生只在一个班级一对多关系中,通过外键来关联数据,外键设置在多的一方,即学生表中 创建表 from fl…

Python常用脚本集锦

收集了一些常用Python脚本,作为平时练手使用,也可以作为自己的笔记,用到哪个功能可以自己查询一下即可。 文件和目录管理 复制文件 import shutil# 复制源文件到目标文件 shutil.copy(source.txt, destination.txt)移动文件 import shuti…

一篇文章理解CSS垂直布局方法

方法1&#xff1a;align-content: center 在 2024 年的 CSS 原生属性中允许使用 1 个 CSS 属性 align-content: center进行垂直居中。 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8" /><meta name"viewpo…

如何区分实例化网格中的每个实例

1&#xff09;如何区分实例化网格中的每个实例 2&#xff09;项目在模拟器上切换程序后有概率画面冻结 3&#xff09;Unity工程导入团结引擎&#xff0c;GUID会变化&#xff0c;导致引用关系丢失 4&#xff09;Mask在Android平台下渲染异常 这是第407篇UWA技术知识分享的推送&a…

crc16 with word byte--查表法

#1, BYTE CRC 参考&#xff1a; https://blog.csdn.net/m0_37697335/article/details/113267780?ops_request_misc%257B%2522request%255Fid%2522%253A%2522F1451286-1B97-44AA-A5FC-386045B4939B%2522%252C%2522scm%2522%253A%252220140713.130102334…%2522%257D&reques…

使用Python和OpenCV实现火焰检测

使用Python和OpenCV实现火焰检测 项目解释&#xff1a; 此 Python 代码是使用 OpenCV、线程、声音和电子邮件功能的火灾探测系统的简单示例。 以下是它的功能的简单描述&#xff1a; 导入库&#xff1a;代码首先导入必要的库&#xff1a; cv2&#xff1a;用于图像和视频处理…

java设计模式之结构型模式(7种)

结构型模式 描述如何将类或者对象按某种布局组成更大的结构。它分为结构型模式和对象结构型模式&#xff0c;前者采用继承机制来组织接口和类&#xff0c;后者通过组合或聚合来组合对象。 分为7种&#xff1a;代理模式、适配器模式、装饰者模式、桥接模式、外观模式、组合模式、…