spring-cloud/script/k8s/readme.md

49 lines
2.6 KiB
Markdown
Raw Blame History

This file contains invisible Unicode characters!

This file contains invisible Unicode characters that may be processed differently from what appears below. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to reveal hidden characters.

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

# 🚀k8s部署说明
# 1.前置条件
* [X] docker环境。安装参考[Docker 部署 | yudao-cloud 开发指南 (iocoder.cn)](https://cloud.iocoder.cn/deployment-docker/#_1-%E5%AE%89%E8%A3%85-docker)
* [X] k8s环境。安装参考[使用 kubeadm 引导集群 | Kubernetes](https://kubernetes.io/zh-cn/docs/setup/production-environment/tools/kubeadm/)
* [X] 通过dockerfile进行生成镜像 部署参考:[Docker 部署 | yudao-cloud 开发指南 (iocoder.cn)](https://cloud.iocoder.cn/deployment-docker/#_1-%E5%AE%89%E8%A3%85-docker)
* [X] 推送镜像到镜像仓库
* [X] 保证nacos、mysql、redis等其他所需组件正常运行能够正常连接
* [X] 创建yudao命名空间 `kubectl cerate namespace yudao`
> 参考spring run on k8s [Spring on Kubernetes 研讨会 - HackMD --- Spring on Kubernetes Workshop - HackMD](https://hackmd.io/@ryanjbaxter/spring-on-k8s-workshop)
# 2.yaml说明
## 2.1 镜像地址说明
* 镜像仓库需自建,或推送至官方仓库
* yaml中`image` 为仓库下各子模块镜像地址,示例: `image: harbor.dcos.hangzhou.aliyun.local/yudao/yudao-infra:latest`
## 2.2 skywalking配置说明
* 默认yaml中不涉及skywalking
* 如需修改,确保在 `volumes` 中,`hostPath` 的路径 `/data/skywalking/skywalking-agent/skywalking-agent.jar` 应该是完全存在于主机上的路径。
* `SW_AGENT_COLLECTOR_BACKEND_SERVICES` 的值 `[YOUR_SKYWALKING_ADDR]` 是一个占位符,应该替换为实际的 SkyWalking 地址。
## 2.3 nacos配置说明
* `SPRING_CLOUD_NACOS_CONFIG_SERVER_ADDR`、`SPRING_CLOUD_NACOS_CONFIG_NAMESPACE`、`SPRING_CLOUD_NACOS_SERVER_ADDR`、`SPRING_CLOUD_NACOS_DISCOVERY_NAMESPACE` 的值也是占位符,应该替换为实际的 Nacos 配置中心、注册中心地址、命名空间。
## 2.4 暴露gateway服务
- 将gateway服务类型(默认为ClusterIp)更改为 `LoadBalancer`,如果将 `type` 设置为 `"LoadBalancer"` 则平台会为 Service 提供对外负载均衡器。
> 参考:[服务Service | Kubernetes](https://kubernetes.io/zh-cn/docs/concepts/services-networking/service/#loadbalancer)
# 3.服务启动
- 执行:`kubectl apply -f xxx.yaml`
- (1)gateway (2)infra
- system、mp、pay、bpm、report服务基于infra进行
- 网关服务gateway、基础服务infra、系统服务system为必选微服务其他为非必须服务按需启动
# 4.用了K8s还需要部署Nacos吗
为什么没有使用原生K8s的ingress、configMap,参考如下
> 【【IT老齐311】有了K8S还需要部署网关、配置中心组件吗】 https://www.bilibili.com/video/BV1es4y1n7HS/?share_source=copy_web&vd_source=72aa4f31238972662733e2bba889a0c9