K8S探索之Service+Flannel本机及跨主机网络访问原理详解

发布时间:2023-10-01 19:00

简介

在上篇中,我们部署了我们的应用,但我们访问是直接在应用所在的容器,使用IP+Port的方式直接访问的,style不够k8s,本篇文章我们将使用service和跨主机访问

内容概览

目前我们的应用大致如下:

K8S探索之Service+Flannel本机及跨主机网络访问原理详解_第1张图片

我们的应用目前是部署在工作节点1上面,如上篇所示,我们可以在工作节点1上面直接使用应用容器的ip+port进行访问

➜  ~ curl http://10.244.1.8:9000/app/versionCheck\?version\=1
{"data":{"downloadUrl":null,"updateMsg":null,"latest":true},"code":200,"msg":null}#

但上面有个问题,每次重启,我们的应用ip是会变化的,也就是不固定,这样对我们访问会造成麻烦,我们不可能每次重启都去替换我们的访问ip

针对这种情况,k8s提供的解决方案是:Service

Service有一个固定的集群内访问IP,能够感知其对应的pod的ip变化,自动对应上

Service解决了Pod重启后的IP变化问题,但还有一个问题是跨主机访问问题:pod重启后,不一定在原来的node节点上,这个时候对我们访问也会带来麻烦,需要访问节点是能跨节点访问

针对跨主机访问问题,目前有很多解决方案,比如:Flannel,本篇也是基于Flannel进行探索的

整个如下图所示:

K8S探索之Service+Flannel本机及跨主机网络访问原理详解_第2张图片

在工作节点和主节点上,我们都能通过service的集群IP进行访问,如下:

➜  dashboard curl http://10.103.5.88:9000/app/versionCheck\?version\=1
{"data":{"downloadUrl":null,"updateMsg":null,"latest":true},"code":200,"msg":null}

目前的概况就如上所示,接下来的我们就开始探索其中的原理,主要是两方面:

  • 1.在工作节点中,如何通过service访问到具体的应用
  • 2.主节点上没有部署有应用,是如何通过service访问到具体应用的

ItVuer - 免责声明 - 关于我们 - 联系我们

本网站信息来源于互联网,如有侵权请联系:561261067@qq.com

桂ICP备16001015号