本实验分为以下两部分:
1.设计通过弹性云服务器ECS部署Docker引擎并部署容器提供Web服务,通过Dockerfile构建当前镜像并上传容器镜像服务(SoftWare Repository for Container,简称SWR)。考虑需要测试已上传的镜像是否可用,设计通过云容器引擎(Cloud Container Engine,简称CCE)拉取刚上传的镜像并部署,使用本地浏览器登录云容器引擎节点EIP验证Web页面是否正常。
2.设计通过函数工作流刷新对象存储桶内对象版本,做到在桶内始终只保留最新的3个版本数据。
说明:本实验以“北京一”和“上海一”区域为例,学员可以根据实际情况选择相应区域进行实验。
实验目的
掌握Docker引擎的使用原理和配置方法。
掌握容器镜像服务SWR的使用原理和配置方法。
掌握云容器引擎CCE的使用原理和配置方法。
掌握函数工作流FunctionGraph的配置方式和使用原理。
安装部署docker 使用如下命令安装yum单元。 yum install -y yum-utils 使用如下命令增加yum源赖 yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo 使用如下命令安装Docker。 yum install docker-ce docker-ce-cli containerd.io 使用如下命令启动Docker。 systemctl start docker 使用如下命令测试Docker引擎工作是否正常。如下图所示,可以看到“Hello from Docker”字样,证明当前Docker引擎工作正常。 docker run hello-world 使用如下命令配置镜像加速。 vi /etc/docker/daemon.json 使用“ i ”键进入编辑模式 在该文件中输入: { "registry-mirrors":["https://registry.docker-cn.com"] } 使用以下命令重启docker进程。 systemctl restart docker 使用如下命令验证是否配置成功。如下图所示,证明镜像加速配置成功。 docker info 使用以下命令拉取Nginx镜像。 docker pull nginx 查看镜像 docker images 使用如下命令拉取httpd镜像到本地。 docker pull httpd 使用如下命令后台运行该镜像为容器,同时映射容器80端口到主机80端口。 docker run -d -p 80:80 httpd 访问EIP。是否成功 Dockerfile构建镜像 docker container ls docker exec -it 容器id bash 通过“cat”命令在htdocs目录下查看index.html文件,发现网页内容“It works”。记录文件目录:/usr/local/apache2/htdocs。 cd htdocs/ cat index.html 使用“exit”命令退出容器后 mkdir -p /root/httpd cd /root/httpd 编辑html文件,写入内容为“HCIP-Cloud Service” vi index.html 使用如下命令创建并编辑Dockerfile文件。 cd /root/httpd vi Dockerfile ########Dockerfile##### FROM httpd MAINTAINER huawei COPY index.html /usr/local/apache2/htdocs #将当前目录下html文件覆盖至目标目录 ################# 使用如下命令使用当前Dockerfile文件构建新镜像httpd2。 docker build -t httpd2:v1 . docker images 使用如下命令关闭之前开启的httpd容器。 docker ps -a #查看容器列表,找到httpd容器ID docker stop e1 #关闭httpd容器,”e1”是当前httpd容器ID简写 使用如下命令运行该镜像为容器。 docker run -d -p 80:80 httpd2:v1 登录SWR。 查看容器id docker container ls 打标签 docker commit 容器id swr.cn-north-4.myhuaweicloud.com/hcie-sooele/hcip-cloudservice:v1 上传SWR docker push swr.cn-north-4.myhuaweicloud.com/hcie-sooele/hcip-cloudservice:v1 购买CCE部署镜像 函数工作流FunctionGraph 点击右上角“创建桶 在用户名下拉菜单中选择“统一身份认证”。 按照以下内容配置委托名称、委托类型和云服务。 委托名称 fgh commission 委托类型 云服务 云服务 函数工作流 F unction G raph 持续时间 永久 授权策略按照下图内容选择“ O BS Administrator ”和 L TS FullAccess 说明:后续函数工作流需要调用OBS服务和云日志服务。 创建函数工作流 根据以下配置完成函数创建。 F unction Graph 版本 FunctionGraph v2 函数类型 事件函数 函数名称 obs flash 委托名称 fgh commission 运行时 Python 3.9 配置消息通知服务SMN 创建名为“obs-flash”的主题,点击“确定 点击obs-flash主题对应的“添加订阅”按钮,按照以下配置添加订阅。 协议选择“ Function Graph 函数 )”,订阅终端选择之前创建的函数 obs flash ”。 说明:订阅终端选择刚才创建的FunctionGraph函数,当相关服务触发SMN消息时,将会通知FunctionGraph。 点击obs-flash主题对应操作栏的“更多”,选择“设置主题策略”。 勾选可发布消息的服务“ O BS ”,点击“确定”。 在服务列表中选择“对象存储服务OBS”。 在左侧页签中选择“基础配置”中的“事件通知”,点击右侧“创建按钮”。 按照以下配置创建事件通知。 说明:后续在桶内创建对象时,会通过该事件通知触发SMN消息,转发给FunctionGraph。 事件通知名称 event 事件 Object Created 通知类型 S MN 主题 华东 上海一 obs flash 在左侧“概览”页签中,选择“多版本控制”后面的“编辑”选项。 说明:需要将同一个对象上传多个版本,来测试FunctionGraph函数的执行。