#需要資源或有問題的,可私博主!!!
#需要資源或有問題的,可私博主!!!
#需要資源或有問題的,可私博主!!!
某企業根據自身業務需求,實施數字化轉型,規劃和建設數字化平臺,平臺聚焦“DevOps 開發運維一體化”和“數據驅動產品開發”,擬采用開源 OpenStack 搭建企業內部私有云平臺,開源 Kubernetes 搭建云原生服務平臺,選擇國內主流公有云平臺服務,基于數字化平臺底座,面向業務開發邊緣計算云應用產品。
擬將該任務交給工程師 A 與 B,分工協助完成云平臺服務部署、云應用開發、云系統運維等任務,系統架構如圖 1 所示,IP 地址規劃如表 1 所示。
|
? 圖 1 系統架構圖
表 1IP 地址規劃
說明
- 競賽使用集群模式進行,比賽時給每個參賽隊提供獨立的租戶與用戶,各用戶的資源配額相同,參賽選手通過用戶名與密碼登錄競賽用私有云平臺,創建云主機進行相應答題,2 名參賽選手的賬號密碼相同;
- 表中的x 為賽位號,在進行 OpenStack 搭建時的第二塊網卡地址根據題意自行創建;
- 根據圖表給出的信息,檢查硬件連線及網絡設備配置,確保網絡連接正常;
- 考試所需要的賬號資源、競賽資源包與附件均會在考位信息表與設備確認單中給出;
- 競賽過程中,為確保服務器的安全,請自行修改服務器密碼;在考試系統提交信息時,請確認自己的IP 地址,用戶名和密碼。
模塊一 私有云(50 分)
企業首先完成私有云平臺搭建和運維,私有云平臺提供云主機、云網絡、云存儲等基礎架構云服務,并開發自動化運維程序。
任務 1 私有云服務搭建(10 分)
1.1.1 基礎環境配置
1.控制節點主機名為 controller,設置計算節點主機名為 compute; 2.hosts 文件將 IP 地址映射為主機名。
1.1.2 yum 源配置
使用提供的 http 服務地址,分別設置 controller 節點和 compute 節點的 yum
源文件 http.repo。
1.1.3 配置無秘鑰 ssh
配置 controller 節點可以無秘鑰訪問 compute 節點。
1.1.4 基礎安裝
在控制節點和計算節點上分別安裝 openstack-iaas 軟件包。
1.1.5 數據庫安裝與調優
在控制節點上使用安裝 Mariadb、RabbitMQ 等服務。并進行相關操作。
1.1.6 Keystone 服務安裝與使用在控制節點上安裝 Keystone 服務并創建用戶。
1.1.7 Glance 安裝與使用
在控制節點上安裝 Glance 服務。上傳鏡像至平臺,并設置鏡像啟動的要求參數。
1.1.8 Nova 安裝
在控制節點和計算節點上分別安裝 Nova 服務。安裝完成后,完成 Nova 相關配置。
1.1.9 Neutron 安裝
在控制和計算節點上正確安裝 Neutron 服務。
1.1.10 Dashboard 安裝
在控制節點上安裝 Dashboard 服務。安裝完成后,將 Dashboard 中的 Django
數據修改為存儲在文件中。
1.1.11 Swift 安裝
在控制節點和計算節點上分別安裝 Swift 服務。安裝完成后,將 cirros 鏡像進行分片存儲。
1.1.12 Cinder 創建硬盤
在控制節點和計算節點分別安裝 Cinder 服務,請在計算節點,對塊存儲進行擴容操作。
1.1.13 Manila 服務安裝與使用
在控制和計算節點上分別在控制節點和計算節點安裝 Manila 服務。
任務 2 私有云服務運維(**25** 分)
1.2.1 OpenStack 開放鏡像權限
在 admin 項目中存在 glance-cirros 鏡像文件,將 glance-cirros 鏡像指定 demo項目進行共享使用。
1.2.2 SkyWalking 應用部署
申請一臺云主機,使用提供的軟件包安裝 Elasticsearch 服務和SkyWalking 服務。再申請一臺云主機,用于搭建 gpmall 商城應用,并配置 SkyWalking 監控gpmall 主機。
1.2.3 OpenStack 鏡像壓縮
在 HTTP 文件服務器中存在一個鏡像為 CentOS7.5-compress.qcow2 的鏡像, 請對該鏡像進行壓縮操作。
1.2.4 Glance 對接 Cinder 存儲
在自行搭建的 OpenStack 平臺中修改相關參數,使 Glance 可以使用 Cinder作為后端存儲。
1.2.5 使用 Heat 模板創建容器
在自行搭建的OpenStack 私有云平臺上,在/root 目錄下編寫Heat 模板文件, 要求執行 yaml 文件可以創建名為 heat-swift 的容器。
1.2.6 Nova 清除緩存
在 OpenStack 平臺上,修改相關配置,讓長時間不用的鏡像緩存在過一定的時間后會被自動刪除。
1.2.7 Redis 集群部署。
部署 Redis 集群,Redis 的一主二從三哨兵架構。
1.2.8 Redis AOF 調優
修改在 Redis 相關配置,避免 AOF 文件過大,Redis 會進行 AOF 重寫。
1.2.9 JumpServer 堡壘機部署
使用提供的軟件包安裝 JumpServer 堡壘機服務,并配置使用該堡壘機對接自己安裝的控制和計算節點。
1.2.10 完成私有云平臺的調優或排錯工作。(本任務只公布考試范圍,不公布賽題)
任務 3 私有云運維開發(15 分)
1.3.1 編寫 Shell 一鍵部署腳本
編寫一鍵部署腳本,要求可以一鍵部署 gpmall 商城應用系統。
1.3.2 Ansible 部署 FTP 服務
編寫 Ansible 腳本,部署 FTP 服務。
1.3.3 Ansible 部署 Kafka 服務
編寫 Playbook,部署的 ZooKeeper 和 Kafka。
1.3.4 編寫 OpenStack 容器云平臺自動化運維工具。(本任務只公布考試范圍, 不公布賽題)
模塊二 容器云(50 分)
企業構建 Kubernetes 容器云集群,引入 KubeVirt 實現 OpenStack 到Kubernetes 的全面轉型,用 Kubernetes 來管一切虛擬化運行時,包含裸金屬、VM、容器。同時研發團隊決定搭建基于 Kubernetes 的 CI/CD 環境,基于這個平臺來實現 DevOps 流程。引入服務網格 Istio,實現業務系統的灰度發布,治理和優化公司各種微服務,并開發自動化運維程序。
任務 1 容器云服務搭建(10 分)
2.1.1 部署容器云平臺
使用 OpenStack 私有云平臺創建兩臺云主機,分別作為 Kubernetes 集群的master 節點和 node 節點,然后完成 Kubernetes 集群的部署,并完成 Istio 服務網格、KubeVirt 虛擬化和 Harbor 鏡像倉庫的部署。
任務 2 容器云服務運維(25 分)
2.2.1 容器化部署 Node-Exporter
編寫 Dockerfile 文件構建 exporter 鏡像,要求基于 centos 完成 Node-Exporter服務的安裝與配置,并設置服務開機自啟。
2.2.2 容器化部署 Alertmanager
編寫Dockerfile 文件構建alert 鏡像,要求基于 centos:latest 完成Alertmanager服務的安裝與配置,并設置服務開機自啟。
2.2.3 容器化部署 Grafana
編寫 Dockerfile 文件構建 grafana 鏡像,要求基于 centos 完成 Grafana 服務的安裝與配置,并設置服務開機自啟。
2.2.4 容器化部署 Prometheus
編寫 Dockerfile 文件構建 prometheus 鏡像,要求基于 centos 完成 Promethues服務的安裝與配置,并設置服務開機自啟。
2.2.5 編排部署監控系統
編寫 docker-compose.yaml 文件, 使用鏡像 exporter、alert、grafana 和prometheus 完成監控系統的編排部署。
2.2.6 安裝 Jenkins
將Jenkins 部署到default 命名空間下。要求完成離線插件的安裝,設置Jenkins的登錄信息和授權策略。
2.2.7 安裝 GitLab
將 GitLab 部署到 default 命名空間下,要求設置 root 用戶密碼,新建公開項目,并將提供的代碼上傳到該項目。
2.2.8 配置 Jenkins 連接 GitLab
在 Jenkins 中新建流水線任務,配置 GitLab 連接 Jenkins,并完成 WebHook的配置。
2.2.9 構建 CI/CD
在流水線任務中編寫流水線腳本,完成后觸發構建,要求基于 GitLab 中的項目自動完成代碼編譯、鏡像構建與推送、并自動發布服務到 Kubernetes 集群中。
2.2.10 服務網格:創建 Ingress Gateway
將 Bookinfo 應用部署到 default 命名空間下,請為 Bookinfo 應用創建一個網關,使外部可以訪問 Bookinfo 應用。
2.2.11 KubeVirt 運維:創建 VM
使用提供的鏡像在 default 命名空間下創建一臺 VM,名稱為 exam,指定 VM的內存、CPU、網卡和磁盤等配置。
2.2.12 完成容器云平臺的調優或排錯工作。(本任務只公布考試范圍,不公布賽題)
任務 3 容器云運維開發(15 分)
2.3.1 管理 job 服務
Kubernetes Python 運維腳本開發-使用 SDK 方式管理 job 服務。
2.3.2 自定義調度器
Kubernetes Python 運維腳本開發-使用 Restful API 方式管理調度器。
2.3.3 編寫 Kubernetes 容器云平臺自動化運維工具。(本任務只公布考試范圍,不公布賽題)