.NET Core 服务在 ARM64 服务器中的部署

.NET Core 服务在 ARM64 服务器中的部署,第1张

Linux 服务器 CPU 架构主要可分为: X86_64/AMD64 、 ARM64/AARCH64 两大类,大多情况使用的都是基于 AMD64 CPU 架构的服务器。但随着国产 *** 作系统、CPU 等自主生态打造的应用产品得到越来越多的用户认可和应用,如:华为鲲鹏、统信 UOS 这类服务器不断被采购使用,而它们均有采用 ARM64 CPU 架构,所以 NET 程序如果需要在更多的国产服务器中运行,适配 ARM64 CPU 架构将是开始的第一步。

本文的介绍并不是一个简单的 Demo 示例,而是基于一个较大项目适配 ARM64 架构改造的经验分享。

该项目的大概背景如下:

当时提出整个项目需要支持在 ARM64 CPU 架构的服务器中进行部署时,其实并没有太多担忧,因为 NET Core 的跨平台能力与生俱来,所以随便找了个服务来测试,结果马上被打脸了,跑不起来。接着一度怀疑是运行环境的问题,尝试多次重装 NET Core SDK,并测试了多个版本,结果还是失败。经过一番研究与确认,主要是以下3个问题:

以上主要是 NET Core 服务本身适配 ARM64 服务器部署遇到的一些问题,不过不同的项目还是会面对不一样的情况,解决后目前来看一切正常。当然这还不包含其他配套组件的改造,比如:MySQL 替换成 MariaDB 等。

废话不多说,直接来干的。这里介绍一套成熟的方案。

gitlab(代码管理)+jenkins(持续集成)+k8s(服务管理)

其中涉及到的技术细节:dockerindockermakefile

gitlab使用介绍

gitlab是一款类似github的开源代码管理软件,可在公司内网,直接搭建一套私有代码仓库,适合团队多人开发,具有完善的分支管理、角色管理、issue、里程碑等。是非常优秀的一款软件。

jeknis使用介绍

这是一款开源持续集成软件,说人话就是使用他可以自动化部署服务。其具有gitlab相关的插件,安装后可直接对接gitlab,当gitlab发生push或者merge代码事件,会通知jeknis去完成最新推送的代码的镜像构建和部署。

推荐上面说的两款技术和jeknis混合使用。

1dockerindocker技术。顾名思义就是docker里面运行docker,简单点直接用dockerfile在jeknis镜像的基础上安装docker客户端或者k8s客户端。这样我们在容器中就可以直接调用宿主机的docker命令或者k8s命令。这对我们使用jenkins执行部署脚本,通知k8s或者docker部署服务,非常方便。

2makefile之所以介绍这款他,是因为其具有一个绝佳的功能,可以检测文件内容是否发生变化,这样对于微服务架构,其配合jenkins,无需指定什么,就可以部署上发生文件变化的微服务。而不会影响到其他服务。

k8s使用介绍

这款当红炸子鸡,相信大家耳闻已久。其实现了对docker的管理和编排。配合上共享存储和其服务自动重启机制,可以让我们的服务无当机。

对于docker内部服务的暴露推荐ingress+service

docker镜像管理推荐harbor。

以上完整的自动化开发部署环境,有兴趣的可以自行学习相关内容,进行搭建测试。

方法如下:

找到菜单 window → Show View → Servers,打开Servers视图标签,部署的Tomcat 服务

在这个服务上右击,选择“Add Deployment”

在新打开的对话框中,有一个Project项,选择要部署的项目

点击“Finish”完成部署

这样项目就部署到Tomcat里面去了


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10609153.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-10
下一篇 2023-05-10

发表评论

登录后才能评论

评论列表(0条)

保存