k8s部署一个带有mysql应用_基于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.1 NodePort方式

在service.yaml中配置nodeport参数

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值