HCIP3.0-容器应用部署实验

本实验分为以下两部分:
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函数的执行。