pod在生产环境中的访问流程?
pod有独立的ip地址,也有自己的hostname,利用namespace进行资源隔离,独立沙箱环境
pod内部封装的是容器,可以一个,或者多个容器
pod网络,pod有自己独立的ip地址,pod内部容器之间访问采用localhost访问
pod如何对外提供服务?
pod是虚拟的资源对象(进程),没有对应实体 物理机,物理网卡,与之对应,无法直接对外提供服务访问
在物理机上开启端口,让这个端口和pod的端口进行映射,这样可以通过物理机进行数据包的转发
内部是如何访问pod?
访问pod是如何实现负载均衡?
pod是一个进程,是有生命周期的,宕机,老版本更新,都会创建pod,ip地址发生变化,hostname发生变化,nginx做负载均衡不太合适
Service
什么是 service 资源对象?
pod ip pod的ip地址
node ip 物理机的ip地址
cluster ip 虚拟ip,是由k8s抽象出来的service对象,这个service对象就是一个VIP的资源对象
如何负载均衡
service 和pod都是一个进程,service也不能对外提供服务
访问物理机,然后把请求交给service
service和一组pod副本是通过标签选择器进行关联的
pod宕机,service如何发现
通过kube-proxy
监听所有的pod,更新映射关系,etcd
子主题
serviice和pod之间可以进行通信,他们的通信属于局域网通信
把请求交给service后,service使用 iptables,ipvs做数据包的分发