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 | 节点 |
---|---|---|
Master | 192.168.200.11 | master节点 |
Worker | 192.168.200.12 | node节点 |
操作过程
上传镜像
#上传镜像包到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
后语
至此,容器云搭建完毕,可以进行后续的运维题目还开发题目
相关文章:

2024广东省职业技能大赛云计算赛项实战——容器云平台搭建
容器云平台搭建 前言 容器镜像使用的是斗学培训平台提供的镜像包,这东西网上都没有,一堆人要,我是靠自己想的方法获取到了,也不敢给。你们可以通过在这个网站申请环境进行操作https://ncc.douxuedu.com/ 虚拟机使用的是自行创建…...

手持弹幕LED滚动字幕屏夜店表白手灯接机微信抖音小程序开源版开发
手持弹幕LED滚动字幕屏夜店表白手灯接机微信抖音小程序开源版开发 专业版 插件版 手持弹幕小程序通常提供多种功能,以便用户在不同的场合如夜店、表白、接机等使用。以下是一些常见的功能列表: 文本输入: 输入要显示的文字内容,…...

红队内网攻防渗透:内网渗透之内网对抗:代理通讯篇无外网或不可达SockS全协议规则配置C2正反向上线解决方案
红队内网攻防渗透 1. 内网代理通讯1.1 网络不可达实战环境模拟1.1.1 CS代理技术-SockS配置-网络不可达-通讯解决1.1.1.1 反向shell上线入口点主机1.1.1.2 入口点CS搭建sokcs4代理1.1.1.3 本地使用Proxifier访问代理1.1.1 CS代理技术-正反向监听-网络不可达-C2上线1.1.1.4 正向s…...

PHP学习总结-入门篇
PHP简介 PHP (Hypertext Preprocessor),即“超文本预处理器”。PHP 是一种创建动态交互性站点的强有力的服务器端脚本语言。PHP语法吸收了C语言、Java和Perl的特点,便于学习。PHP 是开源免费的,主要适用于Web开发领域,使用广泛。…...

IDEA Plugins中搜索不到插件解决办法
IDEA中搜不到插件有三种解决方案: 设置HTTP选项,可以通过File->Settings->Plugins->⚙->HTTP Proxy Settings进行设置 具体可参考这篇博文:IDEA Plugins中搜索不到插件解决办法本地安装,ile->Settings->Plugin…...

SpringBootWeb 篇-入门了解 Vue 前端工程的创建与基本使用
🔥博客主页: 【小扳_-CSDN博客】 ❤感谢大家点赞👍收藏⭐评论✍ 文章目录 1.0 基于脚手架创建前端工程 1.1 基于 Vue 开发前端项目的环境要求 1.2 前端工程创建的方式 1.2.1 基于命令的方式来创建前端工程 1.2.2 使用图形化来创建前端工程 1.…...

折线统计图 初级
此为折线统计图的初级题目。 本次的题目较难,菜鸡请退出。 4. 下图显示了甲、乙两台电脑的价格以及它们已使用的年数,从图中可以知道( )。 15. 妈妈去菜市场买菜,走到半路遇到一位熟人聊了一会儿,突然发现忘了带钱。于是马上回…...

最新下载:XmanagerXShell【软件附加安装教程】
相信大家都认同支持IPv6:最近越来越多的公司和国家都采用了IPv6,Xmanager的最新版本v5也加入支持这个功能,无论你是同时使用IPv4和IPv6网络或者完全的IPv6网络,Xmanager 5都可完全满足你的要求,使用MIT Kerberos认证…...

Coursera耶鲁大学金融课程:Financial Markets 笔记Week 02
Financial Markets 本文是学习 https://www.coursera.org/learn/financial-markets-global这门课的学习笔记 这门课的老师是耶鲁大学的Robert Shiller https://en.wikipedia.org/wiki/Robert_J._Shiller Robert James Shiller (born March 29, 1946)[4] is an American econom…...

读书笔记:《生死疲劳》
《生死疲劳》. 莫言 生死疲劳》是莫言最重要的代表作之一。他用动物的视角、俏皮的语言和鬼才的叙事手法,使这本讲述沉重故事的书中处处充满惊喜;用幽默、戏谑的方式化解现实的痛苦,让人在痛苦时依旧能笑出声来,给人以力量。…...

C++面向对象三大特性--多态
C面向对象三大特性–多态 文章目录 C面向对象三大特性--多态1.虚函数(Virtual Function)2.纯虚函数(Pure Virtual Function)和抽象类(Abstract Class)3.重写(Override)4.动态绑定&am…...

啥移动硬盘格式能更好兼容Windows和Mac系统 NTFS格式苹果电脑不能修改 paragon ntfs for mac激活码
对于同时使用Windows和Mac操作系统的用户而言,选择一个既能确保数据互通又能满足大容量存储需求的移动硬盘格式尤为重要。下面我们来看看啥移动硬盘格式能更好兼容Windows和Mac系统,NTFS格式苹果电脑不能修改的相关内容。 一、啥移动硬盘格式能更好兼容…...

【面试】i++与++i的区别
目录 1. 情况11.1 i1.2 i 2. 情况23. 情况34. 情况4 1. 情况1 1.1 i 1.代码块 public void test(){int i 10;i;System.out.println(i);}2.字节码 0 bipush 102 istore_13 iinc 1 by 16 getstatic #2 <java/lang/System.out : Ljava/io/PrintStream;>9 iload_1 10 inv…...

使用 devtool 本地调试 nodejs
安装 # 全局安装 $ npm install devtool -g # 或临时安装 $ npx devtool [file] [opts]用法 Usage:devtool [入口文件] [opts]Options:--watch, -w enable file watching (for development) # 动态检测文件变更,不用每次手动重启--quit, -q …...

element-plus 表单组件 之element-form
elment-plus的表单组件的标签有el-form,el-form-item。 单个el-form标签内包裹若干个el-form-item,el-form-item包裹具体的表单组件,如输入框组件,多选组件,日期组件等。 el-form组件的主要作用是:提供统一的布局给其他表单组件&…...

redis持久化主从哨兵分片集群
文章目录 1. 单点Redis的问题数据丢失问题并发能力问题故障恢复问题存储能力问题 2. Redis持久化 -> 数据丢失问题RDB持久化linux单机安装Redis步骤RDB持久化与恢复示例(详细)RDB机制RDB配置示例RDB的fork原理总结 AOF持久化AOF配置示例(详…...

IOS Swift 从入门到精通: 结构体的访问控制、静态属性和惰性
文章目录 初始化器引用当前实例惰性属性静态属性和方法访问控制总结初始化器 初始化器是一种特殊方法,可提供创建结构体的不同方式。所有结构体都默认带有一个初始化器,称为成员初始化器- 它会要求您在创建结构体时为每个属性提供一个值。 User如果我们创建一个具有一个属性…...

SQL题:未完成率较高的50%用户近三个月答卷情况
SQL题:未完成率较高的50%用户近三个月答卷情况 这是一道牛客网上SQL进阶图库中的一道困难题目,个人花了近两个小时才通过所有用例。之所以想记录下来是因为这道题算是一个很考验基本功的题目,也不乏一些SQL中的技巧。下面我们逐步分析&#…...

挑战与机遇的交织
AI与音乐创作:挑战与机遇的交织 引言 近年来,人工智能技术的迅猛发展使得其在各个领域都展现出了巨大的潜力和影响力,音乐创作领域也不例外。最近上线的音乐大模型,无疑是这一趋势的一个重要节点,它极大地降低了素人…...

Java项目:基于SSM框架实现的精品酒销售管理系统分前后台【ssm+B/S架构+源码+数据库+毕业论文】
一、项目简介 本项目是一套基于SSM框架实现的精品酒销售管理系统 包含:项目源码、数据库脚本等,该项目附带全部源码可作为毕设使用。 项目都经过严格调试,eclipse或者idea 确保可以运行! 该系统功能完善、界面美观、操作简单、功…...

[论文笔记]Are Large Language Models All You Need for Task-Oriented Dialogue?
引言 今天带来论文Are Large Language Models All You Need for Task-Oriented Dialogue?的笔记。 主要评估了LLM在完成多轮对话任务以及同外部数据库进行交互的能力。在明确的信念状态跟踪方面,LLMs的表现不及专门的任务特定模型。然而,如果为它们提…...

Django 模版过滤器
Django模版过滤器是一个非常有用的功能,它允许我们在模版中处理数据。过滤器看起来像这样:{{ name|lower }},这将把变量name的值转换为小写。 1,创建应用 python manage.py startapp app5 2,注册应用 Test/Test/sett…...

计算机组成原理 —— 存储系统(DRAM和SRAM,ROM)
计算机组成原理 —— 存储系统(DRAM和SRAM) DRAM和SRAMDRAM的刷新DRAM地址复用ROM(Read-Only Memory(只读存储器)) 我们今天来看DRAM和SRAM: DRAM和SRAM DRAM(动态随机存取存储器&…...

第22篇 Intel FPGA Monitor Program的使用<五>
Q:如何用Intel FPGA Monitor Program创建C语言工程并运行呢? A:总体过程与创建汇编语言工程类似,不同的是在指定程序类型时选择C Program。 后续用到DE2-115开发板的硬件如LED、SW和HEX等外设时,还需要将描述定义这些…...

网信办公布第六批深度合成服务算法备案清单,深兰科技大模型入选
6月12日,国家互联网信息办公室发布了第六批深度合成服务算法备案信息,深兰科技硅基知识智能对话多模态大模型算法通过相关审核,成功入选该批次《境内深度合成服务算法备案清单》。同时入选的还有腾讯混元大模型多模态算法、支付宝图像生成算法…...

ES 8.14 向量搜索优化
参考:https://blog.csdn.net/UbuntuTouch/article/details/139502650 检索器(standard、kNN 和 RRF) 检索器(retrievers)是搜索 API 中的一种新抽象概念,用于描述如何检索一组顶级文档。检索器被设计为可以…...

查看 MAC 的 shell 配置文件
在Mac上,shell的配置文件主要取决于您当前使用的shell。从macOS Catalina开始,Mac使用zsh作为默认登录Shell和交互式Shell。以下是关于Mac上zsh shell配置文件的一些详细信息: 查看当前使用的shell: 要查看当前正在使用的shell&am…...

前端下载文件流,axios设置responseType: arraybuffer/blob无效
项目中调用后端下载文件接口,设置responseType: arraybuffer,实际拿到的数据data是字符串 axios({method: post,url: /api/v1/records/recording-file/play,// 如果有需要发送的数据,可以放在这里data: { uuid: 06e7075d-4ce0-476f-88cb-87fb0a1b4844 }…...

动手学深度学习(Pytorch版)代码实践 -卷积神经网络-14模型构造
14模型构造 import torch from torch import nn from torch.nn import functional as F#通过实例化nn.Sequential来构建我们的模型, 层的执行顺序是作为参数传递的 net1 nn.Sequential(nn.Linear(20, 256), nn.ReLU(), nn.Linear(256,10)) """ nn.…...

Django 模版转义
1,模版转义的作用 Django模版系统默认会自动转义所有变量。这意味着,如果你在模版中输出一个变量,它的内容会被转义,以防止跨站脚本攻击(XSS)。例如,如果你的变量包含HTML标签,这些…...