2022 National Vocational College Skills Competition Higher Vocational Group Cloud Computing Competition Test Paper [Name des Wettbewerbs] Cloud Computing Competition Zweite Sitzung – Container Cloud

2022 National Vocational College Skills CompetitionPrüfungspapier zum Cloud Computing-Wettbewerb

[Name des Zeitplans] Cloud Computing-Wettbewerbsspiel 2 Container Cloud

Inhaltsverzeichnis

2022 National Vocational College Skills Competition Prüfungspapier zum Cloud Computing-Wettbewerb der Higher Vocational Group

[Name des Zeitplans] Cloud Computing-Wettbewerbsspiel 2 – Container Cloud

[Aufgabe 1] Aufbau einer Container-Cloud-Plattform [5 Punkte]

[Aufgabe 2] Bereitstellung von Container-Cloud-Anwendungen: Bereitstellung der Docker Compose-Orchestrierung [7,0 Punkte]

[Aufgabe 3] Bereitstellung von Container-Cloud-Anwendungen: Erstellen Sie CICD basierend auf Kubernetes [8,0 Punkte]

[Aufgabe 4] Betrieb und Wartung von Container-Cloud-Diensten: Betrieb und Wartung von Kubernetes-Containern [6 Punkte]

[Aufgabe 5] Betrieb und Wartung von Container-Cloud-Diensten: Betrieb und Wartung auf Basis virtueller Kubernetes-Maschinen [4,0 Punkte]

[Aufgabe 6] Entwicklung von Betrieb und Wartung der Container-Cloud: Entwicklung von Betrieb und Wartung von Kubernetes-APIs [10 Punkte]

Wenn Sie die Umgebung des Wettbewerbssoftwarepakets benötigen, können Sie dem Blogger eine private Nachricht senden!

Hinweis: Zum Ausführen dieser Aufgabe sind zwei  Cloud-Hosts mit installiertem Betriebssystem CentOS 7.9   erforderlich : Master und Knoten .    

Das Chinaskill_Cloud_PaaS.iso -Image- Paket enthält alle für diese Container-Cloud-Bereitstellung erforderlichen Dateien. Die für Betrieb und Wartung erforderlichen Dateien finden Sie im Anhang .  

Der Produktentwicklungs- und Einführungszyklus der Technologieabteilung eines bestimmten Unternehmens ist lang und  auf Kundenbedürfnisse kann oft nicht zeitnah reagiert werden. Einführung von  CICD

(Continuous Integration , Continuous Delivery )   hat für das Unternehmen höchste Priorität. Das Forschungs- und Entwicklungsteam beschloss, eine CICD- Umgebung auf Basis von Kubernetes aufzubauen , in der Hoffnung, einen Teil des DevOps- Flows auf Basis dieser Plattform        

Prozess, um den Aufwand für Entwicklung, Bereitstellung sowie Betrieb und Wartung zu reduzieren.

 Damit die vom Unternehmen entwickelten Webanwendungssystemprodukte auf Serverleistung, Zuverlässigkeit und Hochverfügbarkeit basieren können

Um die Wartung zu erleichtern, entschied sich die Forschungs- und Entwicklungsabteilung für die Verwendung einer Microservice-Architektur zur Implementierung einer containerisierten Bereitstellung auf Basis  von Kubernetes . 

Die Knotenplanung ist in Tabelle  1 dargestellt .

Tabelle  1 Knotenplanung für die Container-Cloud-Plattform

Knotenrolle

CPU-Name

VCPUS

Erinnerung

Festplatte

Master  , Hafen  , CICD

Meister

8

12G

100G

Worker-Knoten

Knoten

8

8G

100G

[Aufgabe  1 ] Aufbau einer Container-Cloud-Plattform [5 Punkte ]

[Anwendbare Plattform] Private Cloud

[Thema  1 ] Plattformbereitstellung Bereitstellung der Container-Cloud-Plattform [1,5 Punkte ]

Melden Sie sich bei der  privaten Cloud-Plattform OpenStack an, erstellen Sie mit dem CentOS7.9- Image zwei Cloud-Hosts und schließen Sie mit dem Kubeeasy- Tool den Aufbau des Kubernetes 1.22.1- Clusters ab. Verwenden Sie dann das Nginx- Image , um eine Datei mit dem Namen zu erstellen       

exam  Pod und legen Sie die Umgebungsvariable exam für diesen  Pod auf den Wert 2022 fest .   

Geben Sie nach Abschluss  den Benutzernamen, das Passwort und die IP des Masterknotens in das Antwortfeld ein.  

1. Für die erfolgreiche Bereitstellung eines Kubernetes- Clusters wird  1 Punkt vergeben .  

2. 0,5 Punkte werden vergeben, wenn der Pod  erfolgreich erstellt wurde und die Umgebungsvariablen korrekt gesetzt sind  .

[Thema  2 ] Plattformbereitstellung Bereitstellung  des Istio- Service-Grids [ 0,5 Punkte ]

 Schließen Sie die Installation der Istio- Service-Grid- Umgebung auf dem Kubernetes- Cluster ab und erstellen Sie dann mit dem Befehl eine neue Namespace- Prüfung  

Der Namespace ermöglicht die automatische Injektion  von Sidecar .

Geben Sie nach Abschluss  den Benutzernamen, das Passwort und die IP des Masterknotens in das Antwortfeld ein.  

1. Für den erfolgreichen Betrieb aller Istio- Komponenten werden  0,3 Punkte vergeben ;

2. Die erfolgreiche automatische Injektion der Namespace-  Prüfung wird mit  0,2 Punkten bewertet. 

[Thema  3 ] Plattformbereitstellung Bereitstellung  der KubeVirt- Virtualisierung [1 Punkt ]

 Schließen Sie die Installation der KubeVirt- Virtualisierungsumgebung auf dem Kubernetes- Cluster ab  .

Geben Sie nach Abschluss  den Benutzernamen, das Passwort und die IP des Masterknotens in das Antwortfeld ein.  

1. 1 Punkt wird vergeben, wenn alle Komponenten  von KubeVirt erfolgreich ausgeführt werden .

[Frage  4 ] Plattformbereitstellung Bereitstellung von  Harbor Warehouse- und  Helm- Paketverwaltungstools [1  Punkt ]

 Schließen Sie die Bereitstellung des Harbor- Image-Warehouses und des Helm- Paketverwaltungstools auf dem Masterknoten ab .  Verwenden Sie dann den Nginx- Spiegel , um ein Diagramm anzupassen . Der Bereitstellungsname lautet nginx , die Anzahl der Kopien beträgt 1 , und stellen Sie das Diagramm dann standardmäßig bereit         

Unter dem Namespace lautet der Release -Name web . 

Geben Sie nach Abschluss  den Benutzernamen, das Passwort und die IP des Masterknotens in das Antwortfeld ein.  

1. Für den erfolgreichen Einsatz des Hafenlagers werden  0,5 Punkte vergeben;

2. Die erfolgreiche Installation des  Helm- Tools wird mit 0,2 Punkten bewertet.

3. Das Chart- Paket wurde erfolgreich bereitgestellt und erhält  0,3 Punkte.

[Thema  5 ] Clusterverwaltung ETCD- Daten sichern  [1 Punkt ]

Kubernetes verwendet  ETCD , um Echtzeit-Betriebsdaten des Clusters zu speichern. Um zu verhindern, dass  Kubernetes Serverausfallzeiten verursacht,

Wenn die Clusterdaten verloren gehen, sichern Sie  bitte  die Kubernetes- Clusterdaten in /root/etcd.db  .

Geben Sie nach Abschluss  die IP- Adresse, den Benutzernamen und das Passwort des Masterknotens in das Antwortfeld ein. 

1. Die erfolgreiche Installation des Tools  etcdctl wird mit 0,2 Punkten bewertet.

2. Eine erfolgreiche ETCD- Datensicherung wird mit  0,8 Punkten bewertet.

[Aufgabe  2 ] Bereitstellung von Container-Cloud-Anwendungen:  Bereitstellung der Docker Compose- Orchestrierung [7,0 Punkte ]

[Anwendbare Plattform] Private Cloud

Hyperf ist ein leistungsstarkes, hochflexibles progressives  PHP-  Coroutine-Framework mit  einem integrierten Coroutine- Server und einer großen Anzahl häufig verwendeter Komponenten. Seine Leistung  ist im Vergleich zu herkömmlichen  PHP-FPM -basierten Frameworks qualitativ verbessert.  Es bietet eine extrem hohe Leistung Bei gleichzeitiger Beibehaltung einer  äußerst flexiblen Skalierbarkeit. Bitte vervollständigen Sie den Datenbankdienst MariaDB , den Cache-Dienst Redis und den Microservice Hyperf nach Bedarf .    

Und der Frontend-Dienst  Nginx wird nach Bedarf containerisiert.

[Thema  1 ] Containerisierter  MariaDB -Dienst [1 Punkt ]

Schreiben Sie eine Dockerfile- Datei, um  das Image hyperf-mariadb:v1.0 zu erstellen . Die spezifischen Anforderungen sind wie folgt : ( Erforderliche Softwarepakete: 

Hyperf.tar.gz

( 1 )Grundbild: Centos:7.9.2009 ;

( 2 ) Schließen Sie die Installation des  MariaDB- Dienstes ab.

( 3 ) Port deklarieren: 3306 ;

( 4 ) Setzen Sie das Passwort des Datenbank-  Root- Benutzers auf  root ;

( 5 ) Importieren Sie die bereitgestellte Datenbankdatei  hyperf_admin.sql in die Datenbank.

( 6 ) Stellen Sie den Dienst so ein, dass er beim Booten automatisch startet.

Erstellen Sie nach Abschluss das Image und übermitteln Sie  den Benutzernamen, das Passwort und die IP- Adresse des Masterknotens an das Antwortfeld. 

1. Für einen gelungenen Bildaufbau werden  0,5 Punkte vergeben;

2. Die erfolgreiche Installation der Datenbank und der Datenimport werden mit  0,5 Punkten bewertet.

[Thema  2 ] Containerisierter  Redis- Dienst [1 Punkt ]

Schreiben Sie eine  Docker-Datei , um  das Image hyperf-redis:v1.0 zu erstellen  . Die spezifischen Anforderungen sind wie folgt : ( Erforderliche Softwarepakete: 

Hyperf.tar.gz

( 1 )Grundbild: Centos:7.9.2009 ;

( 2 ) Installieren Sie  den Redis- Dienst.

( 3 ) Schutzmodus ausschalten;

( 4 ) Port deklarieren: 6379 ;

( 5 ) Stellen Sie den Dienst so ein, dass er beim Booten automatisch startet.

Erstellen Sie nach Abschluss das Image und übermitteln Sie  den Benutzernamen, das Passwort und die IP- Adresse des Masterknotens an das Antwortfeld. 

1. 0,5 Punkte für erfolgreichen Bildaufbau  ;

2. Der Redis- Dienst wurde erfolgreich installiert und korrekt konfiguriert und erhält  0,5 Punkte.

[Thema  3 ] Containerisierter  Nginx -Dienst [0,5 Punkte ]

Schreiben Sie eine  Dockerfile- Datei, um das hyperf-nginx:v1.0 -Image zu erstellen  . Die spezifischen Anforderungen sind wie folgt : ( Erforderliche Softwarepakete: 

Hyperf.tar.gz

( 1 )Grundbild: Centos:7.9.2009 ;

( 2 ) Nginx- Dienst installieren  ;

( 3 ) Port deklarieren: 80 ;

( 4 ) Stellen Sie den Dienst so ein, dass er beim Booten automatisch startet.

Erstellen Sie nach Abschluss das Image und übermitteln Sie  den Benutzernamen, das Passwort und die IP- Adresse des Masterknotens an das Antwortfeld. 

1. Eine erfolgreiche Image-Erstellung wird mit 0,3 Punkten bewertet ; 

2. Nginx  wurde erfolgreich installiert und korrekt konfiguriert und erhält  0,2 Punkte.

[Thema  4 ] Containerisierter  Hyperf  -Dienst [1 Punkt ]

Schreiben Sie eine  Dockerfile- Datei, um das Hyperf-Service :v1.0- Image zu erstellen  . Die spezifischen Anforderungen sind wie folgt : ( Erforderliche Softwarepakete:

Hyperf.tar.gz

( 1 )Grundbild: Centos:7.9.2009 ;

( 2 ) PHP und Erweiterungen installieren ; 

( 3 ) Kompilieren und installieren Sie Swoole mithilfe des Quellcodes  .

Erstellen Sie nach Abschluss das Image und übermitteln Sie  den Benutzernamen, das Passwort und die IP- Adresse des Masterknotens an das Antwortfeld. 

1. Für einen gelungenen Bildaufbau werden  0,5 Punkte vergeben;

2. Eine erfolgreiche PHP- Installation wird mit  0,2 Punkten bewertet ; 

 3. Die erfolgreiche Installation von  Swoole wird mit 0,3 Punkten bewertet.

[Thema  5 ] Orchestrierung und Bereitstellung des  Hyperf-  Frameworks [3,5 Punkte ]

Schreiben Sie die Datei /root/hyperf/project/docker-compose.yaml . Die spezifischen Anforderungen sind wie folgt:

( 1 ) Container  1 Name:  hyperf-mysql ; Spiegel: hyp erf-mariadb:v1.0 ; Portzuordnung: 3306:3306 ;

( 2 ) Container  2 Name:  hyperf-redis ; Bild: hyperf-redi s:v1.0 ;

( 3 ) Container  3 Name:  hyperf-ui ; Bild: hyperf-nginx:v1.0 ; Portzuordnung: 80:8081 ;

( 4 ) Container  4 Name:  hyperf- service ; Bild:  hyperf-service:v1.0 .

Ordnen Sie nach Abschluss  das Hyperf-  Framework an, stellen Sie es bereit und übermitteln Sie  den Benutzernamen, das Kennwort und die IP- Adresse des Masterknotens an das Antwortfeld. 

1. Die erfolgreiche Orchestrierung der Datei  docker-compose.yaml wird mit 1,5 Punkten bewertet;

2. Der erfolgreiche Zugriff auf den Dienst über Port  8081 wird mit 1 Punkt bewertet;

3.Hyperf-service stellt erfolgreich eine Verbindung zur Datenbank und  Redis her und erhält  1 Punkt. 

[Aufgabe  3 ] Bereitstellung von Container-Cloud-Anwendungen:  Erstellen Sie CICD basierend auf  Kubernetes [8,0 Punkte ]  

Das Unternehmen entschied sich für die Verwendung von  Kubernetes  +  GitLab  CI zum Aufbau einer  CICD- Umgebung, um den Entwicklungs- und  Einführungszyklus ,  Kundenanforderungen zeitnah zu erfüllen, einen Teil  des DevOps-  Prozesses zu implementieren,  die Belastung durch Bereitstellung und Betrieb zu reduzieren und zu erreichen Visuelles Container-Lebenszyklusmanagement. Um Release- und Versionsiterationsaktualisierungen anzuwenden, schließen Sie bitte die CI- CD- Umgebungsbereitstellung von GitLab CI + Kubernetes ab ( alle Softwarepakete, die zum Aufbau einer kontinuierlichen Integration erforderlich sind, befinden sich im Softwarepaket CICD-Runner.tar.gz ). CICD- Anwendungsabteilung           

Der Systemaufbau ist wie folgt:

[Anwendbare Plattform] Private Cloud

[Frage  1 ]  GitLab- Umgebung installieren [1 Punkt ]

Erstellen Sie einen neuen Namespace gitlab-ci im Kubernetes- Cluster , stellen Sie GitLab in diesem Namespace bereit, die Bereitstellungs- und Dienstnamen lauten beide gitlab , stellen Sie Port 80 im NodePort- Modus als 30880 für die Außenwelt bereit und legen Sie das Kennwort des Root- Benutzers des GitLab -Dienstes fest an admin @123 , importieren Sie das Projektpaket demo -2048. tar . gz in GitLab und nennen Sie es                  demo-2048.

Geben Sie nach Abschluss  den Benutzernamen, das Passwort und die IP- Adresse des Masterknotens  in das Antwortfeld ein. (Der erforderliche Softwarepaketpfad  

CICD-Runner.tar.gz

1. GitLab ist korrekt bereitgestellt und kann normal aufgerufen werden und erhält  0,5 Punkte;

2. Für den erfolgreichen Projektimport werden  0,5 Punkte vergeben.

[Thema  2 ] GitLab Runner bereitstellen  [2 Punkte ]

 Stellen Sie GitLab Runner im  Gitlab-ci- Namespace bereit . Der Release- Name lautet gitlab-runner . Erstellen Sie ein persistentes Build-Cache-Verzeichnis /home/gitlab-runner/ci-build- cache für GitLab Runner , um den Build zu beschleunigen, und fügen Sie es      hinzu  GitLab  . Geben Sie nach Abschluss  den Benutzernamen, das Passwort und die IP- Adresse des Masterknotens  in das Antwortfeld ein. (Der erforderliche Softwarepaketpfad   ist CICD-Runner.tar.gz)

1. Die erfolgreiche Bereitstellung von GitLab  Runner wird mit  0,5 Punkten bewertet.  

2. Für die erfolgreiche Registrierung von GitLab  Runner werden  0,5 Punkte vergeben;  

3.GitLab Runner 持久化配置成功得 1 分。

【题目 3】配置 GitLab[1.5 ]

 Kubernetes 集群添加到 demo-2048 项目中, 并命名为 kubernetes-agent,项目命名空

间选择 gitlab-ci

完成后提交 master 节点的用户名、密码和 IP 地址到答题框。(需要用到的软件包路径

CICD-Runner.tar.gz

1.GitLab Agent 安装成功得 1 分;

2.Kubernetes 连接成功得 0.5 分。

【题目 4】构建 CICD[3.5 ]

编写流水线脚本.gitlab-ci.yml 触发自动构建, 具体要求如下:

1)基于镜像 maven:3.6-jdk-8 构建项目的 drone 分支;

2)构建镜像的名称: demo:latest

3)将镜像推送到 Harbor 仓库 demo 项目中;

4)将 demo-2048 应用自动发布到 Kubernetes 集群 gitlab-ci 命名空间下。

完成后提交 master 节点的用户名、密码和 IP 地址到答题框。(需要用到的软件包路径

CICD-Runner.tar.gz

1.项目变异成功得 0.5 分;

2.镜像构建成功得 1 分;

3.服务发布成功得 1 分;

4.服务能正常访问得 1 分。

【任务 4】容器云服务运维: Kubernetes 基于容器的运维[6 ]

【适用平台】私有云

【题目 1Pod 管理--创建 Pod[0.5 ]

 default 命名空间下使用 nginx:latest 镜像创建一个 QoS 类为 Guaranteed  Pod,名称

 qos-demo

完成后提交 master 节点的 IP 地址、用户名和密码到答题框。

1.Pod 创建成功得 0.2 分;

2.Pod QoS 类型为 Guaranteed  0.3 分。

【题目 2】安全管理--配置 Pod 安全上下文[0.5 ]

使用 busybox 镜像启动一个名为 context-demo  Pod,为该 Pod 配置安全上下文, 要求

容器内以用户 1000 和用户组 3000 来运行所有进程,并在启动时执行“sleep 1h”命令。

完成后提交 master 节点的 IP 地址、用户名和密码到答题框。

1.Pod 安全上下午配置正确得 0.5 分。

【题目 3CRD 管理--创建自定义资源类型[0.5 ]

 Kubernetes 集群中自定义一种资源类型 StudentAPI  stable.example.com/v1,单数 形式为 student,复数形式为 students,简写为 stu,作用域为命名空间级,然后在 default 

名空间下创建一个名为 exam  Student 对象。

完成后提交 master 节点的 IP 地址、用户名和密码到答题框。

1.资源类型 Student 定义成功的 0.3 分;

2.exam 创建成功得 0.2 分。

【题目 4】解析管理--添加主机别名到 Pod[0.5 ]

使用 nginx 镜像在 default 命名空间下创建一个名为 nginx  Pod,并 Pod /etc/hosts

中添加 IP 地址 127.0.0.1  chinaskills 的解析。

完成后提交 master 节点的 IP 地址、用户名和密码到答题框。

1.自定义解析配置正确得 0.5 分。

【题目 5HPA 管理--创建 HPA 规则[1 ]

默认情况下 HPA 是无法调整伸缩灵敏度的,但不同的业务场景对伸缩灵敏度的要求不 一样。要求在 default 命名空间下使用 nginx 镜像创建一个名为 web  deployment,自定义 HPA 的伸缩灵敏度, 为该 deployment 创建一个名为 web  HPA,扩容时立即新增当前 9  数量的副本数, 时间窗口为 5s,伸缩范围为 1-- 1000。例如一开始只有 1  Pod,当 CPU 使

用率超过 80%时, Pod 数量变化趋势为: 1   10   100   1000

完成后提交 master 节点的 IP 地址、用户名和密码到答题框。

1.HPA 创建成功得 0.2 分;

2.HPA 伸缩策略配置正确得 0.8 分。

【题目 6】节点亲和性管理--创建硬限制规则的 Pod[0.5 ]

default  命名空间下使用 nginx  镜像运行一个 Pod ,名称为 nginx ,要求使用 requiredDuringSchedulingIgnoredDuringExecution 策略将 Pod 调度到具有“disktype=ssd”标

签的节点。

完成后提交 master 节点的用户名、密码和 IP 到答题框。

1.Pod 调度策略配置正确得 0.5 分。

【题目 7】网络策略管理--创建 Pod 网络策略[0.5 ]

创建一个网络策略 network-exam,要求只有 internal 命名空间下的 Pod 可以通过 TCP

协议的 8080 端口访问到 mysql 命名空间下的 Pod

完成后提交 master 节点的 IP、用户名和密码到答题框。

1.网络策略创建成功得 0.2 分;

2.规则配置正确得 0.3 分。

【题目 8】驱逐机制管理--配置节点压力驱逐[0.5 ]

设置kubelet 数据存储在/apps/data/kubelet 目录下,并设置当kubelet 的存储空间不足 5%

或者当容器运行时文件系统可用存储空间不足 5%时开始驱逐 Pod

完成后提交 master 节点的 IP 地址、用户名和密码到答题框。

1.节点压力驱逐配置正确得 0.5 分。

【题目 9】流量管理--创建 Ingress Gateway[0.5 ]

使用提供的软件包 ServiceMesh.tar.gz  Bookinfo 应用部署到 default 命名空间下, 使用 Istio  Gateway     现应 用程     访     Bookinfo   用创      bookinfo-gateway 的网关,指定所 HTTP 流量通过 80 端口流入网格,然后将网关绑定到虚

拟服务 bookinfo 上。

完成后提交 master 节点的 IP 地址、用户名和密码到答题框。

1.Bookinfo 应用部署成功得 0.2 分;

2.Bookinfo 能通过网关访问得 0.3 分。

【题目 10】服务网格--创建基于用户身份的路由[0.5 ]

创建一个名为 reviews  路由,要求来自名为 Jason  的用户的所有流量将被路由到服务

reviews:v2

完成后提交 master 节点的用户名、密码和 IP 到答题框。

1.路由创建成功得 0.2 分;

2.用户限制正确得 0.3 分。

【题目 11】服务网格--创建请求路由[0.5 ]

default 命名空间下创建一个名为reviews-route 的虚拟服务,默认情况下,所有的HTTP 流量都会被路由到标签为 version:v1  reviews 服务的 Pod 上。此外, 路径以/wpcatalog/ /consumercatalog/开头的 HTTP 请求将被重写/newcatalog,并被发送到标签为 version:v2 

Pod 上。

完成后提交 master 节点的 IP 地址、用户名和密码到答题框。

1.请求路由创建成功得 0.2 分;

2.路由策略配置正确得 0.3 分。

【任务 5】容器云服务运维: Kubernetes  基于虚拟机的运维[4.0 ]

【适用平台】私有云

【题目 1VM 管理--创建 VM[0.5 ]

使用镜像 fedora-virt:v1.0  default 命名空间下创建一台 vm,名称为 vm-fedora,内存为

1G

完成后提交 master 节点的 IP 地址、用户名和密码到答题框。

1.VM 创建成功得 0.3 分;

2.VM 配置正确得 0.2 分。

【题目 2】存储与卷--创建 emptyDisk [1 ]

使用镜像 fedora-virt:v1.0  default 命名空间下创建一台 vmi,名称为 vmi-fedora ,并使

 emptyDisk 卷为 vmi 挂载一块 2G 的磁盘。

完成后提交 master 节点的 IP 地址、用户名和密码到答题框。

1.VMI 创建成功得 0.4 分;

2.卷挂载成功得 0.6 分。

【题目 3KubeVirt 运维--创建 VMI[1.5 ]

将提供的镜像 exam.qcow2 转换为 docker 镜像 exam:v1.0,然后使用镜像 exam:v1.0 镜像  default 命名空间下创建一台 vmi,名称为 exam,将虚拟机的 80 端口以 NodePort 的方式

对外暴露为 30082,并使用数据源在启动时将 VM 的主机名初始化为 exam

完成后提交 master 节点的 IP 地址、用户名和密码到答题框。

1.qcow2 镜像转化成功得 0.3 分;

2.VMI 创建成功得 0.3 分;

3.端口暴露成功得 0.3 分;

4.服务能正常访问得 0.4 分;

5.主机名初始化成功得 0.2 分。

【题目 4KubeVirt 运维--启用快照[1 ]

KubeVirt 支持对 VM 进行快照, 请启用 KubeVirt 快照管理功能:

完成后提交 master 节点的 IP 地址、用户名和密码到答题框。

1.快照功能启用成功得 1 分。

【任务 6】容器云运维开发:Kubernetes APIs 运维开发[10 ]

【适用平台】私有云

【题目 1Python 运维开发:基 Kubernetes Restful API 实现 Deployment 创建[2 ]

在提供的 OpenStack 私有云平台上,使用 k8s-python-dev 镜像创建 1 台云主机,云主机 类型使用 4vCPU/12G 内存/100G 硬盘。该主机中已经默认安装了所需的开发环境, 登录默

认账号密码为“root/1DaoYun@2022”

使用 Kubernetes Restful API 库,在/root  录下,创建 api_deployment_manager.py 文件,

要求编写 python 代码,代码实现以下任务:

1)编写 Python 程序实现 Deployment 资源的创建。Deployment 配置信息如下。如果

同名 Deployment 存在, 先删除再创建。

2)创建完成后, 查询该 Deployment 的详细信息, 执行结果控制台输出,以 yaml

式展示。

创建 Deployment   yaml 的配置如下:

apiVersion: apps/v1

kind: Deployment

metadata:

name: nginx-deployment

labels:

app: nginx

spec:

replicas: 3

selector:

matchLabels:

app: nginx

template:

metadata:

labels:

app: nginx

spec:

containers:

- name: nginx

image: nginx:1.15.4

ports:

- containerPort: 80

1.执行 api_deployment_manager.py 脚本,成功创建 deployment 资源,计 1 分;

2.检查创建的 deployment 资源, 配置信息无误计 1 分。

【题目 2Python 运维开发:基于 Kubernetes Python SDK 实现 Job 创建[1 ]

在前面已建好的 Kubernetes 开发环境云平台上。使用 Kubernetes python SDK 

“kubernetes”Python 库, /root  目录下, 创建 sdk_job_manager.py 文件, 要求编写 python

码,代码实现以下任务:

1)编写 Python 程序实现 Job 资源的创建。 Job 配置信息如下。如果同名 Job 存在,

先删除再创建。

2)创建完成后, 查询该 Job 的详细信息, 执行结果控制台输出,以json 格式展示。

Job 创建 yaml 的信息如下:

apiVersion: batch/v1

kind: Job

metadata:

name: pi

spec:

template:

spec:

containers:

- name: pi

image: perl

command: ["perl",    "-Mbignum=bpi", "-wle", "print bpi(2000)"]

restartPolicy: Never

backoffLimit: 4

1.执行 sdk_job_manager.py 脚本, 成功创建job 资源,计 0.5 分;

2.查询job 资源, 配置信息无误,计 0.5 分。

【题目 3Python 运维开发: Pod 资源的 Restful APIs HTTP 服务封装[3 ]

编写 Python 程序实现 Pod 资源管理程序,  Pod 资源管理的封装成 Web 服务。

/root 目录下创建pod_server.py 程序,实现Pod 的增删查改等Web 访问操作。http.server

 host  localhost,端口 8889;程序内部实现 Kubernetes 认证。

提示说明: Python 标准库 http.server 模块,提供了 HTTP Server 请求封装。

需要实现的 Restful API 接口如下:

GET /pod/{name}  ,查询指定名称{name} PodResponse  Body json 格式输出。

POST /pod/{yamlfilename}  创建 yaml 文件名称为{yamlfilename} PodResponse 

Body json 格式。

编码完成后,“手工下载”文件服务器主目录所有*.yaml 文件到 root  目录下,“手动执

行”所编写 pod_server.py 程序, 提交答案进行检测。

1.HTTP 服务成功启动, 计 1 分;

2.发起指定参数的 GET 查询 Pod 请求, 成功查询指定名称的 pod 服务,  1 分;

3.发起指定参数的 POST 创建 Pod 请求, 成功创建 Pod 服务,计 1 分。

【题目 4Python 运维开发: Service 资源 Restful APIs HTTP 服务封装[4 ]

编写 Python 程序实现 Service 资源管理程序,将 Service 资源管理的封装成 Web 服务。

/root 目录下创建 service_server.py 程序, 实现 Service 的增删查改等 Web 访问操作。

http.server  host  localhost,端口 8888;程序内部实现 Kubernetes 认证。

提示说明: Python 标准库 http.server 模块,提供了 HTTP Server 请求封装。

需要实现的 Restful API 接口如下:

GET /services/{name} ,查询指定名称{name} ServiceResponse  Body json 格式

输出。

POST /services/{yamlfilename}  创建 yaml 文件名称为{yamlfilename} Service

Response  Body json 格式,(手工将文件服务器主目录所有*.yaml 件下载到 root  目录

下)。

DELETE /services/{name};删除指定名称的 ServiceResponse  Body json 格式。

编码完成后,自己手动执行提供 Web HTTP 服务的 service_server.py 程序,提交答案进

行检测。

1.HTTP 服务成功启动, 计 1 分;

2.发起指定参数的 POST 创建 service 请求,成功创建 service 资源,计 1 分;

3.发起指定参数的 GET 查询 service 请求 成功查询指定名称的 Service,计 1 分;

4.发起指定参数的 DELETE 删除 service 请求,成功删除指定名称的 Service,计 1 分。

需要竞赛软件包环境可私信博主!

Supongo que te gusta

Origin blog.csdn.net/qq_50377269/article/details/135247989
Recomendado
Clasificación