2019 年 1 月 7 日,华为推出鲲鹏920 处理器,便宣告了构建鲲鹏生态系统的开始。据官方介绍,鲲鹏是一个包含了鲲鹏计算单元、AI 处理单元、智能管理、智能网卡的片上系统 SoC,在此之上加上服务器操作系统,从而形成一个生态的闭环。在 2019 年 9 月 20 号举办的华为全联接大会中,预告了华为服务器操作系统EulerOS(欧拉)将会以开源版本发出,代号为openEuler,其主要目的就是完善鲲鹏生态系统。被华为 Cloud&AI BG 总裁侯金龙称为“鲲鹏灵魂”的就是这个openEuler操作系统,它不仅能让华为云计算为人工智能保驾护航,还能为数据安全提供更全面的保障。在 2020 年 3 月 27 日的华为开发者大会上,正式推出了openEuler 20.03 LTS 版本,任何伙伴都可以免费的获取 LTS 版本,并且可以商业化,同时承诺将对openEuler永久免费、开源。
随着美帝对中国的封锁日趋严峻,国家在大政策方针上也开始了全面国产化的进程,新上线的软硬件服务基本上都要求使用国产,符合安全可控原则。本人所在公司业务也涉及到国企及党政军部门的业务,因此必须在国产化安全可控方面有相应的策略,经过一番对国产服务器及操作系统(多多少少都有一些现有国外开源 Linux 的影子)的调研了解后,个人觉得华为推出的鲲鹏服务器以及 Euler 系统比较符合公司的发展方向:1. 华为有自主知识产权硬件,鲲鹏为 Arm 架构芯片,性能与 Intel 相比不弱;2. 开源的 Euler 使用起来更让人放心;3. 华为同时拥有软硬件开发能力,这使得系统的稳定性和可用性更强; 4. 最重要的一点,我们使用 .NET Core 开发平台,支持 Arm 架构,并且在 Docker 的加持下(使用 Docker 是为了简化运行环境配置,毕竟那些配置还是很繁琐的),基本上无需修改程序,仅仅需要在 Euler 系统上重新编译即可顺利运行。以下,我就介绍如何使用 Euler 系统来编译运行.NET Core 程序。
首先,作为测试环境,我在华为云上购买了一台鲲鹏云服务器,4C8G, EulerOS 2.8
其次,我们要先调整下系统环境,不知为何默认的 yum 包源并不正确,查阅官方文档才获得正确配置。
1. SSH 远程登录后,需要调整一下 yum 包的源地址。转到 /etc/yum.repos.d 目录下,修改 euleros_aarch64.repo 文件内容如下:
[base]
name=EulerOS-2.0SP8 base
baseurl=http://mirrors.huaweicloud.com/euler/2.8/os/aarch64/
enabled=1
gpgcheck=1
gpgkey=http://mirrors.huaweicloud.com/euler/2.8/os/RPM-GPG-KEY-EulerOS
yum-config-manager
--add-repo
https:
dnf clean all # 清除所有的缓存文件
dnf makecache # 制作元数据缓存
yum install policycoreutils-python
wget http://mirror.centos.org/altarch/7/extras/aarch64/Packages/container-selinux-2.107-3.el7.noarch.rpm
rpm -ivh container-selinux-2.107-3.el7.noarch.rpm
yum list docker-ce --showduplicates | sort -r
yum install docker-ce
docker -v
Docker version 19.03.8, build afacb8b
4. 既然 Docker 装好了,我们跑一下 .NET Core 官方 Demo 瞧瞧
docker run --rm -it -p 80:80 mcr.microsoft.com/dotnet/core/samples:aspnetapp
嗯,程序顺利运行起来了!请忽略截图里几个”Already exists”, 因为我之前已经拉了一个 dotnet 的包。我们现在用浏览器访问下服务器的 80 端口看看吧!
页面正确展示,也显示了服务器的一些信息,只是那个最大可用内存有点问题,感觉应该是 core 的问题,有知道的同学可以留言说说看。
至此,我们让 Arm 架构的鲲鹏服务器在 Euler 系统上基于 Docker 跑起 .NET Core 程序了。如果有 Docker 运行 .NET Core 程序的同学们就已经可以自己玩起来了,如果没有做过,那么在下一篇文章中,我将继续介绍如何使用.NET SDK 的 Docker 镜像编译 .NET Core 程序,并使用 Docker 将它跑起来。
© 版权声明
博主的文章没有高度、深度和广度,只是凑字数。利用读书、参考、引用、抄袭、复制和粘贴等多种方式打造成自己的纯镀 24k 文章!如若有侵权,请联系博主删除。
喜欢就点个赞吧