概述
pod基础概念
- pod相当于一个运行容器的环境,有独立的ip地址,也有自己的hostname,利用namespace进行资源隔离。
- pod内部封装的是容器,可以封装一个或者多个相关的容器。
pod网络
- pod有自己独立的ip地址。
- pod内部容器之间访问采用localhost访问。
pod如何对外提供访问
pod是虚拟的资源对象(进程),没有对应实体版本(物理机,物理网卡)与之对应,无法对外提供服务访问。
pod如果想要对外提供服务,必须绑定物理机端口(在物理机上开启端口,让这个端口和pod端口进行映射),这样就可以通过物理机进行数据包的转发。其具体流程如下
先通过物理机ip+端口进行转发->进行数据包转发
访问pod如何实现负载均衡
pod是一个进程,是有生命周期的,宕机、版本更新都会创建新的pod,此时ip地址发生变化,hostname也会发生变化。要实现pod负载均衡就需要了解什么是service资源对象。
首先k8s集群中包含如下几类ip地址:
- pod ip: pod ip地址
- node ip: 物理机ip地址
- cluster ip: 虚拟ip,由kubenetes抽象出的service对象,service对象即是一个vip的资源对象。
service如何实现负载均衡
- service和pod都是一个进程,service也不能对外提供服务。
- service和pod可以直接进行通信,它们的通信属于局域网通信。
外部把请求交给service后,service使用(iptables,ipvs)做数据包分发。
- service和一组pod副本通过标签选择器进行关联
- endpoints存储所有pod的ip地址
pod宕机、发布新版本,service如何发现pod已经发生变化
kube-proxy监听所有pod,发现pod变化去更新存储在etcd中的endpoints中的映射关系。
最后
以上就是干净白云为你收集整理的pod结构说明-运行容器的容器的全部内容,希望文章能够帮你解决pod结构说明-运行容器的容器所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复