k8s发布vue、springboot项目

前提

你已经有了一个k8s集群,如果没有,可以参考CentOS7搭建k8s集群

预期效果

前端、后端和数据库分别通过三个Service表示,相互之间通过Service的CLUSTER-NAME:port来相互访问,而不是通过CLUSTER-IP:port来相互访问,因为每次重新部署Service,CLUSTER-IP都会变。

思路

前端:nginx + vue创建镜像
后端:Java + springboot项目创建镜像
数据库:MySQL镜像
难点:前端怎么访问后端?后端怎么访问数据库?
nginx肯定要用到代理,可以在upstream标签中的server设置后端Service的CLUSTER-NAME:port。后端访问数据库,把数据库的URL的host改成CLUSTER-NAME.CLUSTER-NAMESPACE就可以了。
在这里插入图片描述
这里,ws-backendsvc是后端服务,ws-fontendsvc是前端服务。在nginx中这样配置

upstream backend {
	server ws-backendsvc:9090;#后端服务名称 + Service中的port(不是nodePort,targetPort之类的的)
}
server {
	listen       80;
	server_name  localhost;

	location /api/ {
		rewrite  /api/(.*)  /$1  break;
		proxy_pass http://backend;#不能在这直接写http://ws-backendsvc:9090,会报错
		proxy_set_header Host $host;
		proxy_set_header X-Real-IP $remote_addr;
		proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
		proxy_http_version 1.1;
		proxy_set_header Connection "";
	} 
}

访问数据库的时候类似,把数据库当作一个Service,有他的ServiceName和ServicePort

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值