kubernetes不同pod之间调用(四)

kubernetes不同pod之间调用(四)

k8s系列 源自我工作上的实际场景,记录于此。
kubernetes不同服务间的调用、kubernetes不同容器间的调用、kubernetes不同…

今天在群里看到有人问A容器怎么调用B容器的数据库,其实也是很简单的。

方式一:基于域名

假设你的Apod是一个springboot应用,Bpod是一个mysql,内部端口3306。k8s帮我们搞好域名了,直接使用Bpod就会解析到对应ip。
所以Apod中的数据连接应该写成这样

spring:
  datasource:
    username: root
    password: 123456
    url: jdbc:mysql://Bpod:3306/db?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=UTC
    type: com.alibaba.druid.pool.DruidDataSource
    driver-class-name: com.mysql.cj.jdbc.Driver

注意,上面的情况需要在同一命名空间下namespace

方式二:基于网卡ip

假设你在master上部署,master的网卡分配ip是192.168.1.1
那么你先部署Bpod,使用kubectl get svc 获取Bpod的对外端口30001(假设)
那么此时你Apod的数据库连接可以写成这样:

spring:
  datasource:
    username: root
    password: 123456
    url: jdbc:mysql://192.168.1.1:30001/db?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=UTC
    type: com.alibaba.druid.pool.DruidDataSource
    driver-class-name: com.mysql.cj.jdbc.Driver

获取不同命名空间时使用 kubectl get svc -n namespaceName,不用-n时默认的命名空间是default
然后部署Apod
这种情况可以覆盖不同命名空间下的pod,测试环境下很好用。生产上的用法是方法一,基于域名来的。

posted @   凌康  阅读(208)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
点击右上角即可分享
微信分享提示