2024广东省职业技能大赛云计算赛项实战——容器云平台搭建

容器云平台搭建

前言

容器镜像使用的是斗学培训平台提供的镜像包,这东西网上都没有,一堆人要,我是靠自己想的方法获取到了,也不敢给。你们可以通过在这个网站申请环境进行操作https://ncc.douxuedu.com/

虚拟机使用的是自行创建的CentOS7,如果你不会,那虚拟机创建的流程可以参考我这篇文章:职业技能大赛云计算赛项实战——OpenStack搭建-CSDN博客
CentOS7 系统选择 2009 版本:CentOS-7-x86_64-DVD-2009.iso
可从阿里镜像站下载:https://mirrors.aliyun.com/centos/7/isos/x86_64/

容器的搭建部分相较于私有部分而言十分简单

节点规划如下

主机名IP/24节点
Master192.168.200.11master节点
Worker192.168.200.12node节点

操作过程

上传镜像

#上传镜像包到master节点在平台的环境的话,就是直接Curl获取:
#curl -O http://mirrors.douxuedu.com/competition/cchinaskills_cloud_paas_v2.0.2.iso
[root@localhost ~]# ls
anaconda-ks.cfg  chinaskills_cloud_paas_v2.0.2.iso

解压镜像包

#Master:
#先临时挂载到mnt目录
[root@localhost ~]# mount -o loop chinaskills_cloud_paas_v2.0.2.iso /mnt/
mount: /dev/loop0 写保护,将以只读方式挂载
#再复制到opt目录,这样挂载后的内容重启系统不会消失
[root@localhost ~]# cp -rf /mnt/* /opt/
[root@localhost ~]# umount /mnt/
[root@localhost ~]# ls /opt/
dependencies           helm-v3.7.1-linux-amd64.tar.gz  kubernetes.tar.gz
extended-images        istio.tar.gz                    kubevirt.tar.gz
harbor-offline.tar.gz  kubeeasy

安装Kubeeasy

Kubeeasy是一个开源的Kubernetes管理工具,可以简化 Kubernetes 集群的部署、管理和运维,还提供了图形化界面和命令行工具,可以帮助用户更轻松地创建和管理Kubernetes集群,从而提高工作效率和降低Kubernetes的使用门槛。

#Master:
[root@localhost ~]# mv /opt/kubeeasy /usr/bin/kubeeasy
#我为什么说这个搭建简单呢,就是因为后续的部分,都可以通过-h来查看命令
[root@localhost ~]# kubeeasy -h
...
Example:[install dependencies package cluster]#安装依赖包的命令,主要是docker-ce、wget、unzip、vim、git这些kubeeasy install dependencies \--host 10.24.2.31,10.24.2.14,10.24.2.46 \--user root \--password 000000 \--offline-file /opt/dependencies/base-rpms.tar.gz[install k8s cluster offline]#安装k8s集群的命令kubeeasy install kubernetes \--master 10.24.2.31 \--worker 10.24.2.43,10.24.2.34,10.24.2.40 \--user root \--password 000000 \--version 1.22.1 \--offline-file /opt/kubernetes.tar.gz[reset force k8s node]#重置集群的命令,如果搭建过程中出错了可以重新来kubeeasy reset --force \--master 10.24.2.31 \--worker 10.24.2.43 \--user root \--password 000000[add node] ##Only add worker#添加集群节点的命令,只能添加worker节点kubeeasy add \--master 10.24.2.31,10.24.2.32--user root \--password 000000kubeeasy add \--worker 10.24.2.31,10.24.2.32--user root \--password 000000#安装kubevirt的命令[add virt]kubeeasy add --virt kubevirt#安装harbor仓库的命令[add harbor]kubeeasy add --registry harbor
#我们可以先安装依赖包,复制命令改一改IP就行了
[root@localhost ~]# kubeeasy install dependencies \
> --host 192.168.200.11,192.168.200.12 \
> --user root \
> --password 000000 \
> --offline-file /opt/dependencies/base-rpms.tar.gz

配置免密钥登录

在搭建k8s时,需要频繁的通过ssh远程登录,此时配置免密钥就很有必要,kubeeasy也提供了配置的命令,我们直接用。

[root@localhost ~]# kubeeasy create ssh-keygen \
> --master 192.168.200.11 \
> --worker 192.168.200.12 \
> --user root --password 000000

安装K8S

这个就不用我过多介绍了吧?K8S即Kubernetes,一个开源的容器编排平台,用于自动化容器化应用的部署、扩展和管理。

#同样根据-h的命令改一改就行了
[root@localhost ~]# kubeeasy install kubernetes \
> --master 192.168.200.11 \
> --worker 192.168.200.12 \
> --user root \
> --password 000000 \
> --version 1.22.1 \
> --offline-file /opt/kubernetes.tar.gz
#我们可以看一下集群的节点状态
[root@localhost ~]# kubectl get nodes
NAME               STATUS   ROLES                         AGE     VERSION
k8s-master-node1   Ready    control-plane,master,worker   35s     v1.22.1
k8s-worker-node1   Ready    worker                        15s     v1.22.1
#看一下集群的负载情况
[root@localhost ~]# kubectl top nodes --use-protocol-buffers
NAME               CPU(cores)   CPU%   MEMORY(bytes)   MEMORY%   
k8s-master-node1   244m         6%     1329Mi          34%       
k8s-worker-node1   110m         2%     676Mi           17%
#同时,我们重新登录一下终端,就会显示该节点的设备信息和资源使用情况██╗  ██╗ █████╗ ███████╗██║ ██╔╝██╔══██╗██╔════╝█████╔╝ ╚█████╔╝███████╗██╔═██╗ ██╔══██╗╚════██║██║  ██╗╚█████╔╝███████║╚═╝  ╚═╝ ╚════╝ ╚══════╝ Information as of: 2024-06-17 23:15:19Product............: VMware Virtual Platform None#系统在VMware虚拟化平台上运行OS.................: CentOS Linux release 7.9.2009 (Core)#操作系统是CentOS 7.9.2009Kernel.............: Linux 3.10.0-1160.el7.x86_64 x86_64 GNU/Linux#内核版本CPU................: 12th Gen Intel(R) Core(TM) i5-12450H 4P 1C 4L#处理器信息,这里指的是我物理机的Hostname...........: k8s-master-node1IP Addresses.......: 192.168.200.11#主机名和IPUptime.............: 0 days, 01h 26m 31s#系统已运行时间Memory.............: 1.36GiB of 3.84GiB RAM used (35.51%)#共有3.84G的内存,使用了1.36G,占用率是35.51%Load Averages......: 0.43 / 0.45 / 0.46 with 4 core(s) at 2495.998Hz#系统的平均负载(分别为过去1分钟5分钟和15分钟),共4个CPU核心,每个核心的频率是2495.998HzDisk Usage.........: 14G of 37G disk space used (38%)#磁盘总空间为37G,用了14G,占用率为38%Users online.......: 4#有4个在线的用户Running Processes..: 180#有180个正在运行的进程Container Info.....: Exited:2 Running:12 Images:27#容器的信息,有27个容器镜像,12个正在运行,2个已经退出[root@k8s-master-node1 ~]# 

安装KubeVirt

KubeVirt是一个在K8S上运行虚拟化工作负载的开源项目。它让K8S可以在集群里管理和运行虚拟机(VMs),同时与容器化的应用一起使用。KubeVirt 提供了一种将传统虚拟化技术与容器编排平台结合的方法。它允许用户在K8S环境中创建和管理可以运行传统基于虚拟机的应用程序和操作系统的虚拟机实例。有了KubeVirt,我们就可以在同一个K8S集群中同时管理容器和虚拟机,简化了混合云环境中多种工作负载的管理。

#使用-h得到的命令就行了
[root@k8s-master-node1 ~]# kubeeasy add --virt kubevirt
#通过查看KubeVirt CR的资源定义,我们可以看到kubevirt的版本为v0.47.1
[root@k8s-master-node1 ~]# kubectl get kubevirt -n kubevirt -o yaml | grep Version
...
observedKubeVirtVersion: v0.47.1
...
#我们还可以看一下Pod的信息
[root@k8s-master-node1 ~]# kubectl -n kubevirt get pods
NAME                              READY   STATUS    RESTARTS   AGE
virt-api-86f9d6d4f-22khz          1/1     Running   0          85s
virt-api-86f9d6d4f-jgkld          1/1     Running   0          85s
virt-controller-54b79f5db-96xsb   1/1     Running   0          60s
virt-controller-54b79f5db-wmsxs   1/1     Running   0          60s
virt-handler-7hzcr                1/1     Running   0          60s
virt-handler-jpwsd                1/1     Running   0          60s
virt-operator-6fbd74566c-bq4sc    1/1     Running   0          116s
virt-operator-6fbd74566c-sbn8l    1/1     Running   0          116s

安装Istio服务网格

Istio 是一个开源的服务网格,用于连接、安全、控制和观察微服务应用程序的通信。它提供了一种简单的方式来建立服务间的安全连接、流量管理、策略实施以及监控功能,而无需对每个服务进行代码更改,让我们可以更专注于业务逻辑而不必担心通信、安全和可观察性的实施细节。

#同样使用-h得到的命令就行了
[root@k8s-master-node1 ~]# kubeeasy add --istio istio
#我们可以查看istio的版本,为v1.12.0
[root@k8s-master-node1 ~]# istioctl version
client version: 1.12.0
control plane version: 1.12.0
data plane version: 1.12.0 (2 proxies)
#查看Pod
[root@k8s-master-node1 ~]# kubectl -n istio-system get pods
NAME                                   READY   STATUS    RESTARTS   AGE
grafana-6ccd56f4b6-8vbq7               1/1     Running   0          3m14s
istio-egressgateway-7f4864f59c-wrsgm   1/1     Running   0          3m31s
istio-ingressgateway-55d9fb9f-7h2rk    1/1     Running   0          3m30s
istiod-555d47cb65-nrjs6                1/1     Running   0          3m37s
jaeger-5d44bc5c5d-rklp2                1/1     Running   0          3m13s
kiali-9f9596d69-vtdvh                  1/1     Running   0          3m13s
prometheus-64fd8ccd65-4cq2m            2/2     Running   0          3m13s

我们可以通过浏览器输入master节点ip:对应端口访问对应工具的操作界面

33000访问Grafana(用于可视化和展示监控数据,帮助用户创建、浏览和共享仪表板,实时显示来自不同数据源(如Prometheus)的指标数据)
30090访问Prometheus(普罗米修斯,开源监控系统,用于收集、存储和查询监控指标。可以与Grafana结合使用,通过查询语言PromQL 实现对监控数据的分析和可视化)
30686访问Jaeger(分布式追踪系统,用于跟踪服务间的调用链路和性能分析。它可以帮助发现服务调用的延迟和瓶颈问题,从而优化微服务架构的性能)
20001访问Kiali(一个用于可视化服务网格拓扑和管理的工具,提供了对服务依赖关系、健康状态和流量管理的可视化展示,帮助用户更好地理解和管理服务网格)

部署Harbor仓库

Harbor是一个开源的企业级容器镜像仓库,为企业提供了集中式的容器镜像管理平台,同时注重安全性、权限管理和漏洞扫描等方面,为容器化应用的构建和部署提供了便利和可靠性。

#同样使用-h得到的命令就行了
[root@k8s-master-node1 ~]# kubeeasy add --registry harbor
#查看一下仓库的状态
[root@k8s-master-node1 ~]# systemctl status harbor
● harbor.service - HarborLoaded: loaded (/usr/lib/systemd/system/harbor.service; enabled; vendor preset: disabled)Active: active (running) since 一 2024-06-17 23:53:42 CST; 1min 3s agoDocs: http://github.com/vmware/harborMain PID: 103621 (docker-compose)Tasks: 9Memory: 13.2MCGroup: /system.slice/harbor.service└─103621 /usr/local/bin/docker-compose -f /opt/harbor/docker-compose.yml up
...
#我们可以通过在浏览器输入http://master节点ip的方式访问Harbor的Web界面
#账号/密码:admin/Harbor12345

后语

至此,容器云搭建完毕,可以进行后续的运维题目还开发题目

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/856659.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

分类算法和回归算法区别

分类算法和回归算法在机器学习中扮演着不同的角色,它们的主要区别体现在输出类型、应用场景以及算法目标上。以下是对两者区别和使用场景的详细分析: 一、区别 1.输出类型: 分类算法:输出是离散的类别标签,通常表示为…

【网络安全的神秘世界】文件上传、JBOSS、Struct漏洞复现

🌝博客主页:泥菩萨 💖专栏:Linux探索之旅 | 网络安全的神秘世界 | 专接本 | 每天学会一个渗透测试工具 攻防环境搭建及漏洞原理学习 Kali安装docker 安装教程 PHP攻防环境搭建 中间件介绍 介于应用系统和系统软件之间的软件。…

class的流光效果

效果图&#xff1a; 代码示例 <!DOCTYPE html> <html lang"zh"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document</title&g…

链表OJ

GDUFE 在期末前再刷一次链表题 ~ 203. 移除链表元素 - 力扣&#xff08;LeetCode&#xff09; /*** Definition for singly-linked list.* struct ListNode {* int val;* struct ListNode *next;* };*/ struct ListNode* removeElements(struct ListNode* head, int …

学习笔记——网络管理与运维——SNMP(SNMP版本)

二、SNMP版本 1、SNMP版本 SNMP共有三个版本&#xff1a;SNMPv1、SNMPv2c和SNMPv3。 (1)SNMPv1 1990年5月&#xff0c;RFC1157定义了SNMP的第一个版本SNMPv1。RFC1157提供了一种监口控和管理计算机网络的系统方法。SNMPv1基于团体名认证&#xff0c;安全性较差&#xff0c;…

快速编译安装tensorrt_yolo

快速编译安装 安装 tensorrt_yolo 通过 PyPI 安装 tensorrt_yolo 模块&#xff0c;您只需执行以下命令即可&#xff1a; pip install -U tensorrt_yolo 如果您希望获取最新的开发版本或者为项目做出贡献&#xff0c;可以按照以下步骤从 GitHub 克隆代码库并安装&#xff1a; …

手机天线都去哪里了?

在手机的演变历程中&#xff0c;天线的设计和位置一直是工程师们不断探索和创新的领域。你是否好奇&#xff0c;现在的手机为什么看不到那些曾经显眼的天线了呢&#xff1f; 让我们一起揭开这个谜题。 首先&#xff0c;让我们从基础开始&#xff1a;手机是如何发出电磁波的&…

WDF驱动开发-中断处理(三)

使用中断唤醒设备 当设备转换为低功耗状态时&#xff0c;框架会断开连接 (或报告为非活动) 用于 I/O 处理的中断。 从在 Windows 8.1 上运行的 KMDF 1.13 和 UMDF 2.0 开始&#xff0c;WDF 驱动程序可以创建一个框架中断对象&#xff0c;该对象在设备转换为低功耗状态时保持活…

【QT】实现无边框窗口+可拖动+可调整大小

QT无边框 // 在widget构造中添加如下即可实现无边框 setWindowFlags(Qt::FramelessWindowHint); //设置无边框可拖动 当实现无边框之后&#xff0c;你会发现无法拖动了。 或许我们需要了解下窗口是怎么被拖动的 通过标题栏拖动窗口move窗口位置 因此有两种方案可以解决无法…

Redis—String数据类型及其常用命令详解

文章目录 Redis概述1.Redis-String数据类型概述2.常用命令2.1 SET&#xff1a;添加或者修改已经存在的一个String类型的键值对2.2 GET&#xff1a;根据key获取String类型的value2.3 MSET&#xff1a;批量添加多个String类型的键值对2.4 MGET&#xff1a;根据多个key获取多个Str…

CDN缓存命中率较低可能的原因

背景&#xff1a; 网站使用CDN加速以后&#xff0c;大部分静态文件都将会被离用户较近的CDN边缘节点缓存&#xff0c;由此起到访问加速效果。如果用户访问的文件由CDN节点直接响应&#xff0c;无需回源&#xff0c;则称之为缓存命中。CDN缓存命中率越高&#xff0c;也就意味着…

腾讯云开端口

轻量服务器 由于开发者计划&#xff0c;这些腾讯云 阿里云什么的小vps&#xff0c;是非常之便宜&#xff0c;甚至到了白送的地步&#xff08;小阿&#xff09;&#xff0c;但是作为一个web安全学习者必要的vps操作还是要会的 开启端口 腾讯云的轻量服务器是没有安全组的&…

【服务器02】之阿里云平台

百度一下阿里云官网 点击注册直接使用支付宝注册可以跳过认证 成功登录后&#xff0c;点击产品 点击免费试用 点击勾选 选一个距离最近的 点满GB 注意&#xff1a;一般试用的时用的是【阿里云】&#xff0c;真正做项目时用的是【腾讯云】 现在开始学习使用&#xff1a; 首先…

排序方法——《归并排序》

P. S.&#xff1a;以下代码均在VS2019环境下测试&#xff0c;不代表所有编译器均可通过。 P. S.&#xff1a;测试代码均未展示头文件stdio.h的声明&#xff0c;使用时请自行添加。 博主主页&#xff1a;Yan. yan.                        …

如何使用LangChain自定义agent的制作(1) - 自定义一个可以执行 SQL 查询的 Agent

文章目录 前言一、准备工作梳理一、 安装依赖包二、 设置数据库连接三、 自定义 Agent四、 运行示例五、 完整代码六、使用agent的好处1. **模块化和可重用性**2. **扩展性**3. **简化复杂性**4. **增强可维护性**5. **集成大语言模型的能力**6. **易于扩展到其他任务** 继续思…

Web前端期末项目报告:探索、实践与反思

Web前端期末项目报告&#xff1a;探索、实践与反思 随着Web技术的不断发展&#xff0c;前端开发在软件开发中扮演着越来越重要的角色。本次期末项目&#xff0c;我们致力于构建一个功能完善、用户体验优良的Web应用&#xff0c;以实践所学知识&#xff0c;提升技能水平。接下来…

算法体系-23 第二十三节:暴力递归到动态规划(五)

一 求K次打击之后&#xff0c;英雄把怪兽砍死的概率 1.1 描述 给定3个参数&#xff0c;N&#xff0c;M&#xff0c;K 怪兽有N滴血&#xff0c;等着英雄来砍自己 英雄每一次打击&#xff0c;都会让怪兽流失[0~M]的血量 到底流失多少&#xff1f;每一次在[0~M]上等概率的获得一个…

搭建预约咨询小程序,高效便捷新选择

一、预约咨询小程序是什么&#xff1f; 预约咨询小程序是一款适用于各种生活场景包括医疗、保洁、宠物护理、法律等方面的预约咨询类小程序。 二、这款小程序有什么亮点优势&#xff1f; 预约咨询小程序适用场景广泛&#xff0c;无论是心理咨询、法律咨询&#xff0c;还是宠物…

让图片开口说话的模型Hallo: 基于音频驱动的肖像图像动画,精准唇形同步,支持多种语言和风格

前言 让静态的图片“开口说话”&#xff0c;一直是人们对人工智能的期待。近年来&#xff0c;随着深度学习技术的发展&#xff0c;音频驱动的肖像图像动画技术取得了长足的进步。各种模型涌现&#xff0c;但如何实现精准的唇形同步、保持视频的真实感和流畅性&#xff0c;以及…

变长的时间戳设计

以前的时间戳有32位&#xff0c;以秒为单位&#xff0c;231秒≈68年&#xff0c;从1970年开始&#xff0c;到2038年会出问题。 后来出现的时间戳有64位&#xff0c;以纳秒为单位&#xff0c;263纳秒≈292年。 本次设计的变长时间戳&#xff0c;以32比特为单位&#xff0c;总共…