Rancher入门到精通-2.0 深入理解k8s网络模型及服务访问配置
当我们使用k8s部署了一套应用时(比如一个blog系统),要怎么访问它便成了我们最直接的问题,这里的访问应该同时包括了对外(tomcat)和对内(mysql)服务。
要弄清楚这个问题,首先我们需要了解kubernetes网络模型设计的基础原则:
每个pod都拥有一个独立的ip地址,而且假定所有的pod都在一个直接连通的、扁平的网络空间中。
回到题目的问题,我们这里分两步分讨论:
1. 集群内部访问
1.1 通过pod的ip访问
通过这种方式访问是不可靠的,因为当pod重启后,它的ip会重新分配
1.1.1 因为pod中所有容器共享一个网络堆栈(pod的ip地址是docker0分配的),所以同一个pod中的容器可以通过localhost来互相访问
1.1.2 不同pod的容器访问可以使用endpoint方式:pod的ip+容器的端口
1.2 通过服务访问
通过创建service,可以为一组具有相同功能的容器应用提供一个统一的入口地址,这个地址不会因为pod的重启而发生改变,所以是可靠的。
访问方式:服务的clusterIP(这个是系统分配的全局唯一ip)+containerPort(应用容器的端口)
2. 集群外部访问
2.1 直接访问容器
在启动pod的rc/deployment中指定容器的hostport,并设置pod级别的hostwork=true,这样直接通过主机ip+hostport就可以实现访问
2.2 通过service访问
2.2
文章来源: blog.csdn.net,作者:隔壁老瓦,版权归原作者所有,如需转载,请联系作者。
原文链接:blog.csdn.net/wxb880114/article/details/102550595
- 点赞
- 收藏
- 关注作者
评论(0)