容器服务ACK+容器网络文件系统CNFS快速搭建NGINX网站(体验有礼)

网友投稿 254 2022-11-05

容器服务ACK+容器网络文件系统CNFS快速搭建NGINX网站(体验有礼)

介绍如何在半小时内,通过阿里云容器ACK服务和容器网络文件系统CNFS服务搭建一个简单的弹性、高可用NGINX网站。,11 月 9 日至 11 月 23 日期间,完成部署即可获得“TOMY 多美卡合金车模一辆”。

地址:Compute Service,简称ECS)是阿里云提供的性能卓越、稳定可靠、弹性扩展的IaaS(Infrastructure as a Service)级别云计算服务。云服务器ECS免去了您采购IT硬件的前期准备,让您像使用水、电、天然气等公共资源一样便捷、高效地使用服务器,实现计算资源的即开即用和弹性伸缩。阿里云ECS持续提供创新型服务器,解决多种业务需求,助力您的业务发展。

文件存储NAS

阿里云文件存储(Network Attached Storage,简称 NAS)是面向阿里云 ECS 实例、E-HPC 和容器服务等计算节点的文件存储服务。NAS 提供了简单的可扩展文件存储以供与 ECS 配合使用,多个ECS实例可以同时访问 NAS 文件系统,并且存储容量会随着您添加和删除文件而自动弹性增长和收缩,为在多个实例或服务器上运行的工作负载和应用程序提供通用数据源。

容器服务Kubernetes版

阿里云容器服务Kubernetes版ACK(Alibaba Cloud Container Service for Kubernetes)是全球首批通过Kubernetes一致性认证的服务平台,提供高性能的容器应用管理服务,支持企业级Kubernetes容器化应用的生命周期管理,让您轻松高效地在云端运行Kubernetes容器化应用。

容器网络文件系统CNFS

传统的共享文件系统存在缺少容量配额的精确控制、无法恢复误删文件、缺失存储卷容量性能等监控指标、无安全加密及小文件读写延迟等问题。阿里云容器服务ACK推出了容器网络文件系统CNFS提升NAS文件系统的性能,QoS控制。阿里云容器服务使用容器网络文件系统CNFS(Container Network File System),将阿里云的文件存储抽象为一个K8s对象(CRD)进行独立管理,包括创建、删除、描述、挂载,监控及扩容等运维操作。

本教程七个步骤,完成前六个步骤即可实现弹性高可用的NGINX网站,最后两个步骤验证网站的弹性和高可用属性。

步骤一:创建资源步骤二:挂载文件系统NAS到ECS服务器步骤三:上传文件到NAS步骤四:使用CNFS托管NAS文件系统步骤五:创建NGINX应用步骤六:访问测试网站步骤七:验证服务高可用步骤八:验证弹性扩缩容网站整体架构如下图:

体验准备

体验需使用自己的账户开通以上服务ECS资源地址

挂载文件系统NAS到ECS服务器

阿里云文件存储NAS是一个可共享访问,弹性扩展,高可靠,高性能的分布式文件系统。它可以为容器提供持久化的存储服务。在接下来的操作里,您的网页文件将会被保存在NAS文件系统中,当容器pod被创建后即可直接调用NAS里的文件,并且在pod被销毁后,NAS里的文件也会继续留存。

4.在文件系统列表页面,切换到资源所在地域。说明 :

参考如下图片切换地域到华北2(北京)。

6.在文件系统详情页,单击挂载使用。

8.在挂载到ECS对话框,ECS实例选择云产品资源列表中的ECS实例,挂载路径设置为/mnt,单击挂载。

上传文件到NAS

使用ACK集群搭建NGINX服务后,在您打开网站首页时,容器就会从NAS文件系统中读取这一步上传的网页文件,返回给浏览器。在网站搭建完成后,您可以通过同样的方法更新NAS里的文件。

2、输入以下命令,创建并上传index.html文件至Nas。

echo "test index page for nginx-nas-demo" > /mnt/index.html

3、 输入以下命令,在/mnt目录中查看刚上传的index.html文件。

ls /mnt

cat /mnt/index.html

使用CNFS托管NAS文件系统

传统的共享文件系统存在缺少容量配额的精确控制、无法恢复误删文件、缺失存储卷容量性能等监控指标、无安全加密及小文件读写延迟等问题。容器网络文件系统CNFS提升NAS文件系统的性能,QoS控制。

2)复制容器服务ACK控制台地址,在FireFox浏览器打开新页签,粘贴并访问容器服务ACK控制台。

图标。

返回如下页面,表示你已成功打开Mousepad。

7)复制如下命令,粘贴到Mousepad。在Mousepad中将命令的parameters.server参数替换成您的NAS的挂载点URL地址,然后复制Mousepad中的所有命令。

注意:

parameters.server参数需要替换成您的NAS的挂载点URL地址。NAS的挂载点URL地址可以通过NAS文件系统控制台>文件系统列表>目标NAS>挂载使用>通过命令行挂载到ECS>挂载NFS文件系统中的sudo mount的参数中查到。

当NAS文件系统存在时,加载已创建的NAS文件系统

cat <

8)在CloudShell中,右键粘贴,将Mousepad中的命令粘贴到CloudShell,然后执行。

kubectl get cnfs/cnfs-nas-filesystem -o yaml

cat <

cat <

8.执行如下命令,进入mnt目录。

cd /mnt

9.执行如下命令,查看mnt目录。

ls

mv index.html nas-xxxxx

创建NGINX应用

4在应用基本信息页签,设置应用名称为nginx-nas,单击下一步。

5在容器配置页签,完成以下配置。1)在基本配置区域,单击选择镜像。

3)在镜像选择对话框中,单击nginx镜像,然后单击确定。

说明 :

数据卷配置会将NAS挂载到容器的/usr/share/nginx/html/路径,也就是NGINX默认存放index.html的目录。

6在高级配置页签,完成以下配置。1)在访问设置区域,单击服务(Service)右侧的创建。

2)在创建服务对话框的端口映射配置中,名称设置为:

名称:

如果您没有域名,可以先随意填写一个测试域名即可。

路由创建完成后,您可以看到路由一栏应该显示域名与对应服务的信息。路由功能会将用户请求通过简单扇出的方法,打散到多个容器节点上进行处理。

5)在伸缩配置区域,单击指标伸缩的开启,最小副本数设置为2,最后单击最下方的创建。

7在高级配置页签下方,单击创建。

访问测试网站

等待NAS和容器的配置完成后,您就可以使用本地电脑访问测试网站了。

配置办公电脑的hosts文件。说明:

如果您在NGINX应用配置中,使用的是正式网站域名,并且已经通过备案,您就可以跳过这个步骤,直接通过浏览器打开网站。如果您使用的是测试域名(例如foo.bar.com),那么就需要在本地电脑上配置hosts文件,让浏览器把对域名的请求转到ACK集群的IP地址上。

4)使用管理员权限打开您本地的C:\Windows\System32\drivers\etc\hosts文件,将端点IP和步骤五中设置的域名(例如foo.bar.com)加入hosts文件,然后保存退出,如下图所示。

说明 :

如果您本地机器是Linux和Mac系统,请修改/etc/hosts文件。

使用浏览器打开网站。

说明 :

如果您不能正常访问,您可以尝试清空浏览器缓存,或者使用无痕浏览模式访问。

验证服务高可用

因为部署NGINX应用的时候,选择了容器组最小副本数为2,所以在一台容器宿主节点宕机的情况下,网站仍然可以由另一台容器宿主节点提供服务,保证了服务的高可用特性。

1、模拟节点故障。

1)切换回容器服务ACK控制台页面。在左侧导航栏中,单击节点管理>节点。

此时,可以看到节点状态为不可调度。

4)使用本机浏览器打开网站,发现仍然可以正常访问。

2、 恢复节点。

1)单击下面操作栏节点上线在弹出的对话框单击确定。

2)使用浏览器打开网站,发现仍然可以正常访问。

验证弹性扩容

查看容器组初始状态。

2)在无状态页面,单击应用名称。

3)在应用详情页面,单击容器伸缩。

返回如下页面,您可以查看当前副本数和容器组当前当前CPU使用率。

模拟容器高负载。

1)在容器伸缩页签的左侧导航栏中,单击集群信息

3)复制如下命令,在CloudShell中,右键粘贴并执行,执行以下命令查看节点。

kubectl get pod

4)复制如下命令,在CloudShell中,右键粘贴并执行,进入容器。

kubectl exec -it lalala-***pod-name****-kxjbg bash

5)复制如下命令,在CloudShell中,右键粘贴并执行,模拟容器高负载。

fulload() { dd if=/dev/zero of=/dev/null | dd if=/dev/zero of=/dev/null | dd if=/dev/zero of=/dev/null | dd if=/dev/zero of=/dev/null & }; fulload; read

确认自动扩容。

1)在集群详情页面左侧导航栏中,单击无状态。

4)稍等一点时间,您可以看到当前CPU使用率明显升高。

c. 此时,使用浏览器打开网站,发现仍然可以正常访问。

解除容器高负载。

a. 进入CloudShell命令行。

b. 在命令行中执行以下命令。

# 退出容器 exit # 删除 kubectl delete pod lalala-***pod-name****-kxjbg

确认自动缩容。

单击容器组水平伸缩器查看当前副本数和容器组当前当前CPU使用率。

可以看到CPU使用率和副本数明显下降。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:转换器接口的隔离方法及外围电路介绍
下一篇:射频识别应用系统的运行环境及接口方式简述
相关文章

 发表评论

暂时没有评论,来抢沙发吧~