首页 > 其他分享 >2024广东省职业技能大赛云计算赛项实战——容器云平台搭建

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

时间:2024-06-18 16:29:08浏览次数:32  
标签:-- kubeeasy 赛项 2024 Running master 职业技能 k8s root

容器云平台搭建

前言

容器镜像使用的是斗学培训平台提供的镜像包,这东西网上都没有,一堆人要,我是靠自己想的方法获取到了,也不敢给。你们可以通过在这个网站申请环境进行操作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 000000

  kubeeasy 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:19

 Product............: VMware Virtual Platform None
 #系统在VMware虚拟化平台上运行
 OS.................: CentOS Linux release 7.9.2009 (Core)
 #操作系统是CentOS 7.9.2009
 Kernel.............: 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-node1
 IP Addresses.......: 192.168.200.11
 #主机名和IP

 Uptime.............: 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.998Hz
 Disk 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 - Harbor
   Loaded: loaded (/usr/lib/systemd/system/harbor.service; enabled; vendor preset: disabled)
   Active: active (running) since 一 2024-06-17 23:53:42 CST; 1min 3s ago
     Docs: http://github.com/vmware/harbor
 Main PID: 103621 (docker-compose)
    Tasks: 9
   Memory: 13.2M
   CGroup: /system.slice/harbor.service
           └─103621 /usr/local/bin/docker-compose -f /opt/harbor/docker-compose.yml up
...
#我们可以通过在浏览器输入http://master节点ip的方式访问Harbor的Web界面
#账号/密码:admin/Harbor12345

后语

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

标签:--,kubeeasy,赛项,2024,Running,master,职业技能,k8s,root
From: https://blog.csdn.net/kuuuugua/article/details/139757450

相关文章

  • 2024最新可用Adobe全家桶 Photoshop Mac直装版
    现在网上的Mac版都无法使用了,原因是由于补丁更新的速度,没有跟上软件的发布版本,导致所有版本无法成功使用。 这个是目前最完美版本,而且是直装版,不用任何折腾,点几下鼠标就可以安装完成使用了。 全家桶直装版包含:AdobeIllustrator、AdobeAcrobatProDC、AdobePremiereP......
  • 2024最新多语言UI界面注流钱包盗U授机源码
    环境:Linux系统进入宝塔安装环境:Nginx1.22.1MySQL8.0php7.4phpMyAdmin5.2 按照说明去安装环境,如果没有找到MySQL8.0版本去"软件商店"搜索Mysql切换至8.01.上传开源源码2.上传数据库文件3.上传猴导入数据库文件4.修改数据库文件/application/database.php ,填写数......
  • 2024年性价比蓝牙耳机怎么选?四款好评如潮机型推荐
    2024年,随着无线蓝牙耳机的不断创新升级,无线蓝牙耳机在市场也站稳了脚,也随着耳机扩大发展,还有许多小伙伴不知道都有哪些蓝牙耳机比较实用,更不知道蓝牙耳机怎么选购,同时面对网上许多评价,确实不好判断哪些比较好,面多如此多耳机该如何选择的问题,话不多说,我们一起来看看这四款哪款更......
  • 【专题】2024中国生命科学政策导向及产业园研究报告合集PDF分享(附原数据表)
    原文链接:https://tecdat.cn/?p=36510原文出处:拓端数据部落公众号中国生命科学行业正迎来全新的发展黄金期,政策利好、人口老龄化趋势、消费能力提升以及科研创新等多重因素共同助力该行业迈向前所未有的增长轨道。报告合集深刻剖析了从国家“十四五”规划的医疗政策倾斜,到人口结......
  • 2024.06.18【读书笔记】丨生物信息学与功能基因组学(第十五章 真菌基因组 第一部分)【AI
    读书笔记:《生物信息学与功能基因组学》第十五章-第一部分摘要第十五章聚焦于真核生物中的真菌基因组,探讨了真菌的多样性、与人类和其他生物的密切关系以及它们在生态系统中的重要性。本章首先介绍了真菌的基本概念和分类,随后深入分析了真菌基因组的结构、功能和进化,特别......
  • Windows CSC提权漏洞复现(CVE-2024-26229)
    漏洞信息WindowsCSC服务特权提升漏洞。当程序向缓冲区写入的数据超出其处理能力时,就会发生基于堆的缓冲区溢出,从而导致多余的数据溢出到相邻的内存区域。这种溢出会损坏内存,并可能使攻击者能够执行任意代码或未经授权访问系统。本质上,攻击者可以编写触发溢出的恶意代码或输入,从......
  • 2024hw蓝队面试题--5
    了解哪些中间件我了解的中间件有很多种,其中包括但不限于:Nginx、Apache、Tomcat、Redis、RabbitMQ、Kafka、Zookeeper等。常见漏洞有:未授权的访问、代码执行漏洞、配置错误、解析错误漏洞等漏洞struts2有哪些漏洞,有什么特征?远程代码执行漏洞:如S2-045,在该漏洞中,当开发者使用基......
  • 2024hw蓝队面试题--6
    请说一下内网渗透流程1.信息收集:熟悉内部网络环境,了解目标机制、服务器参数、应用信息等。工具包括方正、nmap、Wireshare等。2.漏洞扫描:利用工具对目标内网进行扫描,发现系统漏洞或者敏感信息泄漏问题。3.漏洞利用:通过已知的漏洞,获取操作系统的控制权限。这里的工具可以包括......
  • 2024软件测试面试题-自动化
    1.Selenium常用的元素定位方式是什么?Selenium八大定位方式:idnaneclassnametag_namelink_textpartial_link_textxpathcss我们经常用的有idnameclassnamexpath等;我们选择定位方式的原则就是哪种简单你能够准确定位就选择哪一种,xpath这种定位方式比较准确,用的也......
  • 2024年项目管理软件有哪些?推荐这16款好用的项目管理工具
    对于任何优秀的项目团队而言,一款好用的项目管理工具是跟踪、管理项目流程的必备神器。如今对于企业项目团队而言,网上有无数的项目管理工具解决方案可供使用,因此找出最适合自己团队的项目管理工具非常困难。项目经理想要更好地规划、管理和控制项目,但需要找到最合适的工具。好用的......