我是靠谱客的博主 干净白云,最近开发中收集的这篇文章主要介绍pod结构说明-运行容器的容器,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

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地址:

  1. pod ip: pod ip地址
  2. node ip: 物理机ip地址
  3. 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结构说明-运行容器的容器所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(52)

评论列表共有 0 条评论

立即
投稿
返回
顶部