<svg xmlns="http://www.w3.org/2000/svg" style="display: none;"> <path stroke-linecap="round" d="M5,0 0,2.5 5,5z" id="raphael-marker-block" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);"></path> </svg>
讯享网
Docker中的名称空间用于提供进程隔离,确保容器之间的资源相互独立。主要分类包括:
PID Namespace:进程ID隔离,使每个容器有自己的进程树,容器内的进程不会干扰其他容器或主机上的进程。
NET Namespace:网络隔离,允许每个容器拥有独立的网络栈,包括IP地址、端口、路由等。
IPC Namespace:进程间通信隔离,使容器内的共享内存和信号量独立,防止不同容器之间的通信干扰。
MNT Namespace:挂载点隔离,允许每个容器有自己的文件系统视图,不同容器的文件系统不会相互干扰。
UTS Namespace:主机名和域名隔离,使容器可以有自己的主机名和域名。
USER Namespace:用户和组ID隔离,允许容器内的用户和主机上的用户独立。
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 重新调度到其他节点上运行。


- 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解析。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/205587.html