ToB企服应用市场:ToB评测及商务社交产业平台

标题: 构建 dotnet&vue 应用镜像->推送到 Nexus 仓库->部署为 k8s 服务实践 [打印本页]

作者: 美丽的神话    时间: 2024-3-16 19:53
标题: 构建 dotnet&vue 应用镜像->推送到 Nexus 仓库->部署为 k8s 服务实践
前言

前面分享了 k8s 的部署安装,本篇来点实操,将会把一个 .net core + vue 的项目(zhontai),打包构建成 docker 镜像,推送到 nexus 镜像仓库,并部署到 k8s 中
准备

要实现项目的部署,除了准备要部署的环境(k8s),还需要准备项目所用到的各中间件,本文旨在分享部署的一个整体流程,对项目中所使用到的各中间件(mysql,redis 等)的安装使用可自行在本DevOps 系列文章中找到

使用 Docker 打包应用镜像

不管什么语言,基本都可以使用这个打包流程,将官方镜像打包推送到私有镜像仓库个人认为是必要的,不然如果一旦远端的镜像失效,又需要重新拉取镜像时就会很尬尴。
.Net Core 7.0 项目镜像

构建所需一个 sdk 镜像用于打包编译项目,一个 runtime 镜像运行 .net core 项目,版本选择对应的 7.0 即可
构建 dotnet sdk 7.0 打包镜像

构建 dotnet runtime 7.0 运行时镜像

构建 zhontai 后端项目的应用镜像

制作完镜像,下面将使用 sdk 镜像打包项目生成部署文件,再使用 runtime 镜像部署运行。
Vue 3 项目打包

构建所需一个 node 镜像用于 vue 项目打包,nginx 用于部署前台项目
构建 nodejs 18.17.1 打包镜像

构建 nginx 1.24 运行时镜像

构建 zhontai 前端项目的应用镜像

  1. #打标签
  2. docker tag zhontai_webui push.nexus.devops.test.com/projectapp/zhontai_webui
  3. #推送
  4. docker push push.nexus.devops.test.com/projectapp/zhontai_webui
复制代码
将 Docker 应用镜像部署到 K8S

应用镜像打包成功,现在需要将两个应用精选镜像部署到 k8s 中
应用镜像的拉取凭证设置

因为 nexus 部署在局域网,并且配置的域名是局域网域名,所以面临着如何在 k8s 中访问 https://nexus.devops.test.com 获取镜像的问题,目前我的解决方法时每个节点机器都配置好对应 dns
要想访问到 nexus 仓库,需要满足两个条件,一个是访问到仓库,一个是仓库的认证
使用 Deployment 部署应用

配置仅供参考,关于数据库,配置文件,日志,上传文件等未处理

配置 Ingress 使用域名访问


前端项目需要修改为对应的接口地址

确保绑定的域名正常解析到 k8s 节点,即可使用域名访问了,我这里使用的 DnsServer 泛解析,故可以直接访问,



至此,一步步将一个单体项目部署到了 k8s 中,仅供参考,实际如果时微服务,还设计到一些通用和环境的配置,后面再慢慢分享。
根据上面的步骤,后面分享将其整理成脚本,以便后续可以直接使用。
相关文档

后语

本文始于2023末,结束于2024始。
2023的最后两个月,是这几年以来,学习,产出最高的的两个月。
始于国庆,不止步于元旦。
新年快乐!

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4