1987WEB视界-分享互联网热门产品和行业

您现在的位置是:首页 > 服务器 > 正文

服务器

华为云服务器部署初探二(完结)

1987web2023-07-03服务器244
在上一篇《华为云服务器部署初探》中介绍了在使用华为云服务器部署时的一些关键点,本篇继续,内容涉及如下:●中间件的部署问题解决●NAT网关使用

在上一篇《华为云服务器部署初探》 中介绍了在使用华为云服务器部署时的一些关键点,本篇继续,内容涉及如下:

●中间件的部署问题解决

●NAT 网关使用

●数据库服务的访问

●dotNET Core 程序的构建

Redis

首先更正上一篇中的一个错误,在运行参数中进行密码设置,是不能生效的,而且还会导致配置文件加载出错:

在日志中可以看到下面的错误:

**FATALCONFIGFILEERROR(Redis6.2.6)***Baddirectiveorwrongnumberofarguments>>>requirepass=123456’

如果想要给 Redis 设置密码,只需要修改 Redis 的配置文件即可,将 requirepass 的注释放开:

都设置好了,Redis 的工作负载运行状态是正常的,但使用客户端工具连接时不能正常连接,继续查看日志发现:

Warning: Could not create server TCP listeningsocket::1:6379:bind: Cannot assign requested address

看似是个警告,但其实是个错误,意思是地址不能分配,肯定就访问不了。修改 Redis 的配置文件:

  • 注释掉 bind 所在行

  • protected-moe 由 yes 修改为 no

RabbitMQ

默认情况下,RabbitMQ 的 UI 插件是没有自动开启的,所以在安装了 RabbitMQ 之后,需要进入容器进行开启:

dockerexec-it  mq容器id bash
rabbitmq-pluginsenablerabbitmq_management

出现下图,说明开启成功:

现在的问题是如果 RabbitMQ 的配置升级重新构建后,需要重新进入容器进行开启。

NAT 网关

一开始,将弹性公网 IP 直接绑定在 ECS 服务器上,可以满足 CCE 中对外发布应用,本地 SSH 也能连接到服务器,但是公网 IP 只能绑定到一个地方,华为云的 GaussDB(for MySQL) 想要在本地用客户端工具连接,一种方式就是绑定公网 IP 。但公网 IP 已经被 ECS 服务器占用了,所以如果想要多个不同的应用同时提供服务,就需要使用 NAT 网关了。

1、首先在弹性公网 IP 的列表界面中进行解绑;

2、在 NAT 网关中添加 SNAT 规则,规则中绑定公网 IP:

3、添加 DNAT 规则,将数据库映射到外网访问:

4、这样数据库就既能内网访问也能外网访问了,如果想要远程连接服务器,也是同样的设置,添加 DNAT 规则,将自定义的端口映射到某台 ECS 服务器的 22 端口即可;

5、将公网 IP 和 ECS 服务器解绑后,CCE 中的工作负载便不能进行访问了,外部访问地址一列也被清空,需要重新在访问方式中添加 Service,访问类型选择 DNAT 网关:

dotNET Core 程序的构建

因为购买的是鲲鹏服务器,需要在鲲鹏服务器上进行基础镜像的构建,然后程序构建时依赖构建好的基础镜像,具体步骤如下:

1、在任意的 ECS 服务器的根目录创建目录 core3.1_images_build ,里面添加 Dockerfile 文件和常用字体文件,Dockerfile 内容如下:

FROMmcr.microsoft.com/dotnet/core/aspnet:3.1RUNapt-get update;RUNapt-get install libfontconfig1 -yCOPY. /appCOPYsimhei.ttf /usr/share/fonts/COPYsimsunb.ttf /usr/share/fonts/COPYsimsun.ttc /usr/share/fonts/COPYBSONGSJ.TTF /usr/share/fonts/COPYcybsongsj.ttf /usr/share/fonts/COPYhyktjn.ttf /usr/share/fonts/COPY./font/WINGDNG3.TTF /usr/share/fonts/COPY./font/WINGDNG2.TTF /usr/share/fonts/COPY./font/BSSYM7.TTF /usr/share/fonts/COPY./font/symbol.ttf /usr/share/fonts/COPY./font/wingding.ttf /usr/share/fonts/COPY./font/webdings.ttf /usr/share/fonts/COPY./font/segmdl2.ttf /usr/share/fonts/WORKDIR/appEXPOSE80/tcp

2、构建镜像并推送到华为云的私有镜像仓库;

3、创建名为 test 的 dotNET Core 示例程序,程序根目录中添加 Dockerfile 文件,内容如下:

FROMswr.cn-north-4.myhuaweicloud.com/xxxx/s2netcore3.1-runtime:latestCOPY. /appWORKDIR/appEXPOSE5000/tcpENTRYPOINT["dotnet", "test.dll"]

4、华为云的编译构建中创建 netcore-test 的构建任务,基本信息中的主机类型选择鲲鹏:

5、构建步骤中添加两个步骤:mono 和制作镜像并推送到 SWR 仓库:

6、制作镜像并推送到 SWR 仓库的配置如下:

7、创建无状态工作负载,选择构建好的镜像,运行成功如下图:

希望对您有所帮助!