文章目录
1、环境陈述
docker 驱动部署 minikube ,为单节点 k8s。
在 k8s 中已经部署了 mysql 和 redis. mysql 已完成数据结构初始化。
具体服务的 mysql-service 和 redis-service
➜ ~ kubectl get svc
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 3d4h
mysql-service NodePort 10.102.114.64 <none> 3306:30002/TCP 2d23h
redis-service NodePort 10.108.203.83 <none> 6379:30001/TCP 3d4h
2、前期准备
2.1、将一个 SpringCloud 微服务运行 以 jar 方式运行
将一个 SpringCloud 微服务运行 以 jar 方式运行
2.2、为 SpringCloud 项目生成 Docker 镜像
2.3、推送镜像
2.4、从宿主机访问 k8s(minikube) 发布的 redis 服务
从宿主机访问 k8s(minikube) 发布的 redis 服务
2.5、k8s(minikube) 部署mysql
3、本期关键
本期的关键在于:
第一、在把 springcloud 项目的 jar 打包为镜像时,需要通过 k8s 中服务的依赖名称进行 mysql 和 redis 的访问。
第二、如何把本地的 镜像 直接推送到 k8s 中,这样的好处是节约一些流量——当然,我们也可以推送到远程仓库去,然后像依赖普通镜像一样去运行。
3.1、打 jar 包需要修改的地方
为 SpringCloud 提供一个新的配置文件
通过这个配置文件,对应镜像将通过服务名去获取 redis 和 mysql 服务
➜ ~ kubectl get svc
NAME TYPE