考试概览与通用注意事项

重要考试提示

  • 所有实验考试都涉及Docker和Kubernetes(kubectl)操作
  • 考试过程中可使用Gemini 2.5 Pro等AI工具帮助生成命令
  • 建议使用虚拟机/远程桌面/云电脑/scrcpy连接手机防切屏检测
  • 可以使用Chrome扩展"超级复制"或OCR工具辅助复制题目
  • 前5个认证都有实验考试,38元微认证没有实验考试
  • 理论考试可通过向Gemini 2.5 Pro提问完成
实验考试常见问题
  • 云服务器安全组默认未开22端口,需手动放行
  • 容器拉取可能失败,需配置镜像加速器
  • 官方镜像niginx可能是nginx的笔误,按题目要求操作即可
  • 云数据库RDS安全组也要放行端口,否则无法访问
  • 实验考试的关键操作必须在云服务器(ESC)上执行
# 使用1panel镜像源配置 sudo vim /etc/docker/daemon.json { "registry-mirrors": ["https://docker.1panel.live"] } sudo systemctl daemon-reload sudo systemctl restart docker docker info

配置文件上传方法:

# 在下载文件夹操作 user@sandbox:~/Downloads$ ls cce-k8s-kubeconfig.yaml user@sandbox:~/Downloads$ realpath cce-k8s-kubeconfig.yaml /home/user/Downloads/cce-k8s-kubeconfig.yaml user@sandbox:~/Downloads$ scp /home/user/Downloads/cce-k8s-kubeconfig.yaml root@xxx.xxx.xxx.xx:/home

云原生基础设施之容器入门

任务1:Dockerfile构建容器镜像

得分点

正确创建名为httpd:v1的镜像,并正常运行。

步骤

1. 创建Dockerfile文件(无后缀)

# Dockerfile内容 FROM httpd MAINTAINER 123@huawei.com EXPOSE 80 RUN echo "dockerfile test" > /usr/local/apache2/htdocs/index.html

2. 构建镜像并运行容器

# 在Dockerfile所在目录执行 docker build -t httpd:v1 . docker run -d -p 80:80 httpd:v1

3. 浏览器访问http://宿主机EIP:80验证显示"dockerfile test"

注意

必须使用指定命名httpd:v1,多或少开放端口不得分

任务2:搭建私有镜像仓库

得分点

成功创建私有镜像仓库并上传httpd:v1镜像。

步骤

1. 搭建私有镜像仓库(端口5000)

docker run -d -p 5000:5000 --restart=always --name registry registry:2

2. 修改镜像名称并上传

docker tag httpd:v1 localhost:5000/httpd:v1 docker push localhost:5000/httpd:v1

3. 验证仓库镜像信息

curl -X GET http://localhost:5000/v2/httpd/tags/list
注意

需配置insecure-registries:

# /etc/docker/daemon.json添加 { "insecure-registries": ["localhost:5000"] }

任务3:容器生命周期管理

得分点

完成容器及镜像的完整生命周期管理操作。

步骤

1. 运行容器

docker run -d --name my_httpd_v1 httpd:v1

2. 执行生命周期操作

docker pause my_httpd_v1 # 暂停容器 docker unpause my_httpd_v1 # 恢复容器 docker stop my_httpd_v1 # 停止容器 docker restart my_httpd_v1 # 重启容器 docker rm my_httpd_v1 # 删除容器 docker rmi httpd:v1 # 删除镜像

3. 验证docker rmi httpd:v1返回"Untagged: httpd:v1"

注意

必须在删除容器后才能删除镜像

云原生基础设施之容器进阶

任务1:使用cgroup实现资源限制

得分点

对容器实现正确的CPU使用率限制。

步骤

1. 拉取并运行压力测试容器

docker pull progrium/stress docker run -d --name my_stress --cpu-period=100000 --cpu-quota=70000 progrium/stress --cpu 1

2. 查找容器ID并验证CPU限制

# 获取容器完整ID docker inspect --format='{{.Id}}' my_stress # 进入cgroup目录 cd /sys/fs/cgroup/cpu/docker/[容器完整ID] cat cpu.cfs_quota_us # 应显示70000
注意

部分考试可能改为要求拉取ubuntu,请按实际情况调整

任务2:搭建容器bridge网络

得分点

正确配置bridge网络并使容器网络互通。

步骤

1. 拉取镜像并创建自定义网桥

docker pull ubuntu:latest docker network create --subnet=173.18.0.0/16 --gateway=173.18.0.1 my_bridge_network

2. 运行两个容器并挂载到自定义网桥

docker run -dit --name ubuntu1 --network my_bridge_network --ip 173.18.0.2 ubuntu:latest /bin/bash docker run -dit --name ubuntu2 --network my_bridge_network --ip 173.18.0.3 ubuntu:latest /bin/bash

3. 进入容器并验证网络互通

# 进入ubuntu2容器 docker exec -it ubuntu2 /bin/bash # 在容器内安装ping工具 apt update && apt install -y iputils-ping # ping另一个容器 ping 173.18.0.2

任务3:容器挂载存储卷

得分点

成功挂载volume并实现持久化存储。

步骤

1. 创建卷并挂载到容器

docker volume create my_volume docker run -d --name volume_test_container -v my_volume:/app ubuntu:latest tail -f /dev/null

2. 在容器内创建测试文件

docker exec volume_test_container bash -c 'echo "this is page from docker managed volume." > /app/index.html'

3. 删除容器并在宿主机验证文件

docker stop volume_test_container docker rm volume_test_container docker volume inspect my_volume # 查看挂载点 cd /var/lib/docker/volumes/my_volume/_data cat index.html # 应显示文件内容

云容器快速搭建网站

注意

此实验全程不需要使用终端,而是在华为云控制台操作。

参考官方教程:在CCE集群中部署NGINX无状态工作负载

任务1:创建RDS数据库

得分点

能正确创建RDS for MySQL数据库服务。

参数参考
  • 计费模式: 按需计费
  • 区域: 华北-北京四
  • 实例名称: rds-web
  • 数据库引擎: MySQL
  • 数据库版本: 5.7
  • 实例类型: 单机
  • 性能规格: 通用型 | 2核 | 4GB
  • 存储空间: 40GB
  • 虚拟私有云: 选择已预置的虚拟私有云
注意
  • 创建了错误的规格不得分
  • RDS创建成功后需创建新的数据库、账号、密码,并完成授权
  • 建议任务1与任务2同时进行以节省时间
  • 云数据库RDS安全组也要放行端口

任务2:完成CCE集群的创建,并添加Node节点

得分点

成功添加指定规格的Node节点。

集群配置参数
  • 计费模式: 按需付费
  • 区域: 华北-北京四
  • 集群名称: test
  • 版本: 选择最新版
  • 集群管理规模: 50节点
  • 高可用: 否
  • 虚拟私有云: 选择已创建的虚拟私有云
  • 网络模型: 容器隧道网络
节点配置参数
  • 节点规格: 通用型 | s6.xlarge.2 | 4核 | 8GB
  • 操作系统: EulerOS 2.9
  • 节点名称: test-node
  • 登录方式: 密码
  • 存储配置: 高IO
  • 弹性公网IP: 自动创建
  • 带宽: 5M
  • 节点购买数量: 1台
注意
  • 在新版CCE界面下执行操作任务
  • 错误的节点规格不得分
  • 集群创建可能需要10分钟左右

任务3:部署WordPress并通过外网访问

得分点

能通过http://ip:端口号成功访问网站登录页面。

创建参数
  • 负载名称: wordpress
  • 实例数量: 1
  • 镜像版本: php7.3
  • 访问类型: LoadBalancer
  • 访问端口: 80
  • 容器端口: 80
环境变量设置
WORDPRESS_DB_HOST: 数据库内网IP地址:端口号 WORDPRESS_DB_USER: (与mysql创建的账号一致) WORDPRESS_DB_PASSWORD: (账号密码) WORDPRESS_DB_NAME: (数据库名称)
步骤
  1. 确保CCE集群和RDS数据库已创建
  2. 在CCE控制台创建工作负载
  3. 配置负载名称为wordpress
  4. 设置环境变量(确保安全组放行3306)
  5. 访问类型选择LoadBalancer
  6. 协议选择TCP
  7. 容器端口和访问端口都设置为80
  8. 获取服务的外部IP地址
  9. 在浏览器输入http://[外部IP地址]:80访问

CCE网络与存储实战

任务1:创建CCE集群

集群配置参数
  • 计费模式: 按需付费
  • 区域: 华为-北京四
  • 集群名称: cce-k8s
  • 版本: V1.21
  • 集群管理规模: 50节点
  • 网络模型: 容器隧道网络
  • 虚拟私有云: vpc-cce
  • 控制节点子网: subnet-cce
节点配置参数
  • 节点规格: c6s.xlarge.2 4核|8GB
  • 操作系统: EulerOS 2.5
  • 节点名称: cce-k8s-node-01
  • 登录密码: Huawei@1234
  • 系统盘: 高IO,40G
  • 弹性公网IP: 自动创建
  • 带宽: 5M
注意
  • 按需购买资源并按指导参数配置
  • 若规定节点规格售罄,请选择相近规格
  • 集群创建预计需要10分钟左右

任务2:安装并配置kubectl

得分点

能在ecs-terminal中正确安装kubectl客户端。

安装步骤

kubectl客户端下载链接:

https://dl.k8s.io/v1.19.10/kubernetes-client-linux-amd64.tar.gz

# 登录ecs-terminal wget https://dl.k8s.io/v1.19.10/kubernetes-client-linux-amd64.tar.gz tar -zxvf kubernetes-client-linux-amd64.tar.gz sudo mv kubernetes/client/bin/kubectl /usr/local/bin/ sudo chmod +x /usr/local/bin/kubectl kubectl version --client # 验证版本
配置方法

在CCE控制台下载kubeconfig.json文件

# 上传配置文件 scp /home/user/Downloads/cce-k8s-kubeconfig.yaml root@xx.xx.xx.xx:/home # 配置kubectl cd /home mkdir -p $HOME/.kube mv -f cce-k8s-kubeconfig.yaml $HOME/.kube/config kubectl config use-context internal kubectl cluster-info kubectl get node
注意
  • kubectl必须配置于ecs-terminal
  • kubectl get node必须返回node节点信息
  • 配置文件上传方法见概览部分

任务3:创建Deployment和Service

创建Deployment
# 创建目录并进入 mkdir -p labfile/servicefile cd labfile/servicefile # 创建nginx-deploy.yaml文件 vim nginx-deploy.yaml

nginx-deploy.yaml内容:

apiVersion: apps/v1 kind: Deployment metadata: name: nginx spec: replicas: 3 selector: matchLabels: app: nginx template: metadata: labels: app: nginx spec: containers: - name: nginx image: nginx ports: - containerPort: 80

应用Deployment配置:

kubectl apply -f nginx-deploy.yaml kubectl get deployment nginx
创建Service服务
# 创建nginx-service.yaml文件 vim nginx-service.yaml

nginx-service.yaml内容:

apiVersion: v1 kind: Service metadata: name: nginx-svc spec: selector: app: nginx ports: - protocol: TCP port: 8080 targetPort: 80

应用Service配置:

kubectl apply -f nginx-service.yaml kubectl get service nginx-svc kubectl get endpoints nginx-svc

在CCE控制台的服务中查看nginx-svc

基于CCE Kubernetes编排实战

任务1:创建CCE集群及节点

集群配置参数
  • 集群名称: cce-k8s
  • 版本: 推荐版本
  • 集群管理规模: 50节点
  • 集群Master数: 单节点
  • 网络模型: 容器隧道网络
  • 插件选择: 关闭云原生监控插件
节点配置参数
  • 节点规格: c6s.xlarge.2 4核|8GB
  • 操作系统: EulerOS 2.9
  • 节点名称: cce-k8s-node-01
  • 系统盘: 高IO,40GiB
  • 数据盘: 高IO,100GiB
  • 弹性公网IP: 自动创建
  • 登录方式: 密码

任务2:使用kubectl操作集群

安装kubectl

下载链接:

https://sandbox-experiment-files.obs.cn-north-4.myhuaweicloud.com/1993/kubernetes-client-linux-amd64.tar.gz

安装方法同前,确保配置正确

创建Namespace
# 创建production namespace kubectl create namespace production # 创建testing namespace kubectl create namespace testing

验证创建:

kubectl get namespace production kubectl get namespace testing

任务3:部署并更新Nginx

部署Nginx
# 创建Deployment kubectl create deployment nginx --image=nginx:1.7.9 --replicas=2 --namespace=production # 验证部署 kubectl get deployment nginx --namespace=production kubectl get pods --namespace=production -l app=nginx
注意

官方写的镜像niginx:1.7.9可能是笔误,按实际要求操作

更新Deployment
# 扩展副本数 kubectl scale deployment nginx --replicas=3 --namespace=production # 更新镜像版本 kubectl set image deployment/nginx nginx=nginx:1.9.1 --namespace=production # 验证更新 kubectl get deployment nginx --namespace=production kubectl describe pod [pod名称] --namespace=production | grep Image:
注意

即使镜像拉取失败也可能通过考试

支持本项目

如果这个指南对您有帮助,请考虑通过我的AFF链接支持:

云原生认证集证有礼活动-含AFF

您的支持将帮助我继续完善和更新本指南!