4

【任务 1】容器云平台搭建[5 分]
【题目 1】平台部署–部署容器云平台[1.5 分]
【题目 2】平台部署–部署 Istio 服务网格[0.5 分]
【题目 3】平台部署–部署 KubeVirt 虚拟化[1 分]
【题目 4】平台部署–部署 Harbor 仓库及Helm 包管理工具[1 分]
【题目 5】集群管理–备份 ETCD 数据[1 分]

【任务 1】容器云平台搭建[5 分]

(1)安装Docker
Kubernetes默认的容器运行时仍然是Docker,使用的是kubelet中内置dockershim CRI实现。
所有节点安装Docker-ce:

yum install -y yum-utils device-mapper-persistent-data lvm2

yum install -y docker-ce

启动Docker:

systemctl start docker

systemctl enable docker

(2)安装docker-compose
在master节点安装docker-conpose:

cp -rfv /opt/paas/docker-compose/v1.25.5-docker-compose-Linux-x86_64 /usr/local/bin/docker-compose

chmod +x /usr/local/bin/docker-compose

docker-compose version

docker-compose version 1.25.5, build 8a1c60f6

【题目 1】平台部署–部署容器云平台[1.5 分]
登录OpenStack 私有云平台,使用 CentOS7.9 镜像创建两台云主机,使用 kubeeasy 工具完成Kubernetes 1.22.1 集群的搭建。然后使用 nginx 镜像在 default 命名空间下创建一个名为exam 的Pod,并为该 Pod 设置环境变量 exam,其值为 2022。 完成后提交 master 节点的用户名、密码和 IP 到答题框。
1.Kubernetes 集群部署成功得 1 分;
2.Pod 创建成功且环境变量设置正确得 0.5 分。
(1)两台节点(一台master,一台node),将提供的安装包 chinaskills_cloud_paas_v2.0.2.iso 上传至 master 节点/root 目录,并解压 到/opt 目录
[root@localhost ~]# mount -o loop chinaskills_cloud_paas_v2.0.2.iso /mnt/
[root@localhost ~]# cp -rfv /mnt/* /opt/
[root@localhost ~]# umount /mnt/
(2)安装 kubeeasy依赖
[root@localhost ~]# mv /opt/kubeeasy /usr/bin/kubeeasy
[root@localhost ~]# kubeeasy install depend \
–host 10.24.2.10,10.24.2.11 \
–user root
–password Abc@1234
–offline-file /opt/dependencies/base-rpms.tar.gz

–host:所有主机节点 IP,如:10.24.1.2-10.24.1.10,中间用“-”隔开,表示 10.24.1.2 到 10.24.1.10 范围内的所有 IP。若 IP 地址不连续,则列出所有节点 IP,用逗号隔开,如: 10.24.1.2,10.24.1.7,10.24.1.9。
–user:主机登录用户,默认为 root。
–password:主机登录密码,所有节点需保持密码一致。
–offline-file:离线安装包路径。

(3)在master节点执行以下命令部署Kubernetes集群:
[root@localhost ~]# kubeeasy install kubernetes
–master 10.24.2.10
–worker 10.24.2.11
–user root
–password Abc@1234
–version 1.22.1
–offline-file /opt/kubernetes.tar.gz
部分参数解释如下:
–master:Master节点IP。
–worker:Node节点IP,如有多个Node节点用逗号隔开。
–version:Kubernetes版本,此处只能为1.22.1。
可通过命令“tail -f /var/log/kubeinstall.log”查看安装详情或排查错误。

若集群部署失败或出现故障,可重置集群重新部署,重置命令如下:
[root@k8s-master-node1 ~]# kubeeasy reset
重置完成后再次执行步骤1.1-1.2即可重新部署集群。

部署完成后查看集群状态:
[root@k8s-master-node1 ~]# kubectl cluster-info
Kubernetes control plane is running at https://apiserver.cluster.local:6443
CoreDNS is running at https://apiserver.cluster.local:6443/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy

To further debug and diagnose cluster problems, use ‘kubectl cluster-info dump’.
查看节点负载情况:
[root@k8s-master-node1 ~]# kubectl top nodes --use-protocol-buffers
NAME CPU(cores) CPU% MEMORY(bytes) MEMORY%
k8s-master-node1 389m 4% 6926Mi 43%
k8s-worker-node1 875m 10% 3365Mi 21%
(4)使用nginx镜像在default命名空间下创建一个名为exam的Pod,并为该Pod设置环境变量exam,其值为2022

docker load < /opt/extended-images/nginx_latest.tar

cat pod.yaml

apiVersion: v1
kind: Pod
metadata:
name: exam
spec:
containers:

  • name: nginx
    image: nginx
    imagePullPolicy: IfNotPresent
    env:
    • name: “exam”
      value: “2022”
      使用命令进行创建:

kubectl apply -f pod.yaml

使用命令进行验证安装的集群环境及Pod:

kubectl cluster-info

Kubernetes control plane is running at https://apiserver.cluster.local:6443
CoreDNS is running at https://apiserver.cluster.local:6443/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy
To further debug and diagnose cluster problems, use ‘kubectl cluster-info dump’.

kubectl exec exam – printenv

PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
HOSTNAME=exam
exam=2022

【题目 2】平台部署–部署 Istio 服务网格[0.5 分]
在 Kubernetes 集群上完成 Istio 服务网格环境的安装,然后新建命名空间 exam,为该命名空间开启自动注入 Sidecar。 完成后提交 master 节点的用户名、密码和 IP 到答题框。
1.Istio 所有组件运行成功得 0.3 分;
2.命名空间 exam 自动注入成功得 0.2 分。
(1)安装istio服务
在master节点执行以下命令进行Istio服务网格环境的安装:
[root@k8s-master-node1 ~]# kubeeasy add --istio istio
查看Pod:
[root@k8s-master-node1 ~]# kubectl -n istio-system get pods
NAME READY STATUS RESTARTS AGE
grafana-6ccd56f4b6-twwjv 1/1 Running 0 5m15s
istio-egressgateway-7f4864f59c-nxz2l 1/1 Running 0 5m34s
istio-ingressgateway-55d9fb9f-jzhnb 1/1 Running 0 5m34s
istiod-555d47cb65-jwkgp 1/1 Running 0 5m40s
jaeger-5d44bc5c5d-h9t29 1/1 Running 0 5m15s
kiali-79b86ff5bc-v9sfk 1/1 Running 0 5m15s
prometheus-64fd8ccd65-5px64 2/2 Running 0 5m15s
查看Istio版本信息:
[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)
Istio可视化
访问Grafana(http://master_IP:33000),如图5所示:

图5 Grafana访问界面
访问Prometheus(http://master_IP:30090),如图6所示:

图6访问Prometheus
查看Targets,如图7所示:

图7查看Targets
访问Jaeger(http://master_IP:30686),如图所示:

图8访问Jaeger
访问Kiali(http://master_IP:20001),如图9所示:

图9访问Kiali

(2)在Kubernetes集群上完成Istio服务网格环境的安装,然后新建命名空间exam,为该命名空间开启自动注入Sideca

kubectl create namespace exam

kubectl label namespace exam istio-injection=enabled

在master节点执行kubectl -n istio-system get all命令和kubectl get ns exam --show-labels命令进行验证:

kubectl -n istio-system get all

NAME READY STATUS RESTARTS AGE
pod/grafana-6ccd56f4b6-ssmbl 1/1 Running 0 81s
pod/istio-egressgateway-7f4864f59c-qm7wn 1/1 Running 0 97s
pod/istio-ingressgateway-55d9fb9f-jd4pn 1/1 Running 0 97s
pod/istiod-555d47cb65-p5cmq 1/1 Running 0 104s
pod/jaeger-5d44bc5c5d-xqvbj 1/1 Running 0 81s
pod/kiali-9f9596d69-2wsjl 1/1 Running 0 80s
pod/prometheus-64fd8ccd65-w2zrg 2/2 Running 0 80s

kubectl get ns exam --show-labels

NAME STATUS AGE LABELS
exam Active 28s istio-injection=enabled
【题目 3】平台部署–部署 KubeVirt 虚拟化[1 分]
在 Kubernetes 集群上完成KubeVirt 虚拟化环境的安装。完成后提交 master 节点的用户名、密码和 IP 到答题框。
1.KubeVirt 所有组件运行成功得 1 分。
(1)在master节点执行以下命令安装KubeVirt
[root@k8s-master-node1 ~]# kubeeasy add --virt kubevirt
查看Pod:
[root@k8s-master-node1 ~]# kubectl -n kubevirt get pods
NAME READY STATUS RESTARTS AGE
virt-api-8d998846b-2xx5m 1/1 Running 0 86s
virt-api-8d998846b-tqwhq 1/1 Running 0 86s
virt-controller-76b86f6965-gz8m4 1/1 Running 0 62s
virt-controller-76b86f6965-pjjv5 1/1 Running 0 62s
virt-handler-hvf45 1/1 Running 0 62s
virt-handler-x7bvj 1/1 Running 0 62s
virt-operator-579f86869c-k9nw4 1/1 Running 0 2m22s
virt-operator-579f86869c-vtrkn 1/1 Running 0 2m22s

【题目 4】平台部署–部署 Harbor 仓库及Helm 包管理工具[1 分]
在 master 节点上完成Harbor 镜像仓库及Helm 包管理工具的部署。然后使用 nginx 镜像自定义一个 Chart,Deployment 名称为 nginx,副本数为 1,然后将该 Chart 部署到 default 命名空间下,Release 名称为 web。 完成后提交 master 节点的用户名、密码和 IP 到答题框。
1.Harbor 仓库部署成功得 0.5 分;
2.Helm 工具安装成功得 0.2 分;
3.Chart 包部署成功得 0.3 分。
(1)在master节点执行以下命令进行Harbor仓库的安装
[root@k8s-master-node1 ~]# kubeeasy add --registry harbor
部署完成后查看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 Mon 2021-12-06 14:34:49 CST; 30s ago
在Web端通过http://master_ip访问Harbor
使用管理员账号(admin/Harbor12345)登录Harbor
(3)使用nginx镜像自定义一个Chart,Deployment名称为nginx,副本数为1,然后将该Chart部署到default命名空间下,Release名称为web
[root@k8s-master-node1 ~]# helm create mychart
Creating mychart
[root@k8s-master-node1 ~]# rm -rf mychart/templates/*
[root@k8s-master-node1 ~]# vi mychart/templates/deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
creationTimestamp: null
labels:
app: nginx
name: nginx
spec:
replicas: 1
selector:
matchLabels:
app: nginx
strategy: {}
template:
metadata:
creationTimestamp: null
labels:
app: nginx
spec:
containers:
- image: nginx
name: nginx
resources: {}
status: {}
[root@k8s-master-node1 ~]# helm install web mychart
NAME: web
LAST DEPLOYED: Tue Sep 13 16:23:12 2022
NAMESPACE: default
STATUS: deployed
REVISION: 1
TEST SUITE: None
在master节点执行helm status web命令进行验证:
[root@k8s-master-node1 ~]# helm status web
NAME: web
LAST DEPLOYED: Tue Sep 13 16:23:12 2022
NAMESPACE: default
STATUS: deployed
REVISION: 1
TEST SUITE: None

【题目 5】集群管理–备份 ETCD数据[1 分]
Kubernetes 使用 ETCD 来存储集群的实时运行数据,为防止服务器宕机导致 Kubernetes集群数据丢失,请将Kubernetes 集群数据备份到/root/etcd.db 中。完成后提交 master 节点的 IP 地址、用户名和密码到答题框。
1.etcdctl 工具安装成功得 0.2 分;
2.ETCD 数据备份成功得 0.8 分。
在master节点执行:
(1)安装etcd
首先在master节点安装etcd
[root@master ~]# yum install etcd -y
查看etcd版本
[root@master ~]# etcdctl -version
etcdctl version: 3.3.11
API version: 2
(2)将Kubernetes 集群数据备份到/root/etcd.db 中
[root@master ~]# ETCDCTL_API=3 etcdctl --endpoints 192.168.248.128:2379 \

–cert=/etc/kubernetes/pki/etcd/server.crt
–key=/etc/kubernetes/pki/etcd/server.key
–cacert=/etc/kubernetes/pki/etcd/ca.crt
snapshot save /root/etcd.db
Snapshot saved at /root/etcd.db

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

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

相关文章

华为obs上传下载-Java版 2023-11-23

弄了半天&#xff0c;老师帮弄成功了&#xff0c;经过同意&#xff0c;分享到网上&#xff0c;希望能帮助更多人&#xff0c;至于怎么弄的&#xff0c;我也不知道。 创建idea项目后&#xff0c;项目结构&#xff0c;对应文件没有的创一个 pom.xm 注意改Java版本&#xff0c;我…

dvwa-command injection 代码审计(超详细逐行审计)

dvwa-command injection 代码审计 low <?phpif( isset( $_POST[ Submit ] ) ) {// Get input$target $_REQUEST[ ip ];// Determine OS and execute the ping command.if( stristr( php_uname( s ), Windows NT ) ) {// Windows$cmd shell_exec( ping . $target );}…

华为-算法---测试开发工程师----摘要牛客网

Java面试题---摘要牛客网-CSDN博客package extendNiuKeWang;import java.util.Scanner;public class GoodHuaWei {public static void main(String[] args) {Scanner sc = new Scanner(System.in);int money = sc.nextInt();System.out.println("n值总金额:"+money)…

遥控器红外解码数码管显示

/*----------------------------------------------- 内容&#xff1a;按配套遥控器上1-9会在数码管上对应显示 ------------------------------------------------*/ #include<reg52.h> //包含头文件&#xff0c;一般情况不需要改动&#xff0c;头文件包含特殊功能…

AMESim|Make failed:Unable to create an excutable for the system

最近在AMESIM与MATLAB进行联合仿真的时候遇到如下问题&#xff1a; Make failed:Unable to create an excutable for the system. 看了网上的解决办法如下 配置环境变量重装AMESIM&#xff0c;有顺序要求&#xff0c;首先是VS&#xff0c;然后是AMESIM与MATLAB。在AMESIM安装…

csdn最新最全pytest系列——pluggy插件源码解读(一)HookspecMarker类和HookimplMarker类分析

简介 pluggy是一个非常优秀的插件系统&#xff0c;它是理解pytest的核心&#xff0c;只有理解了pluggy的原理&#xff0c;才能更好的理解和使用pytest&#xff0c;否则见到了pytest的很多应用都会感觉很难理解 pluggy插件总共的代码量不足一千行&#xff0c;而实现的功能却是…

IDEA 配置maven结合案例使用篇

1. 项目需求和结构分析 需求案例&#xff1a;搭建一个电商平台项目&#xff0c;该平台包括用户服务、订单服务、通用工具模块等。 项目架构&#xff1a; 用户服务&#xff1a;负责处理用户相关的逻辑&#xff0c;例如用户信息的管理、用户注册、登录等。 spring-context 6.0.…

5-2计算pi

#include<stdio.h> #include<math.h>int main(){int sign1;//数值的符号int count0;//累计计算循环的次数double pi0.0;double n1;//分母double term1.0;//当前项的数while(fabs(term)>1e-6){//fabs(trem)|term|pipiterm;nn2;sign-sign;termsign/n;count;}pipi*…

基于Vue3的低代码开发平台——JNPF

目录 一、什么是Vue.js &#xff1f; 二、Jnpf-Web-Vue3 的技术栈介绍 &#xff08;1&#xff09;Vue3.x &#xff08;2&#xff09;Vue-router4.x &#xff08;3&#xff09;Vite4.x &#xff08;4&#xff09;Ant-Design-Vue3.x &#xff08;5&#xff09;TypeScript &#x…

【Java】实现阻塞队列-生产者/消费者模型

上文中我们讲了Java库中自带的阻塞队列&#xff0c;并且讲了如何用阻塞队列来实现生产者消费者模型 【Java】用Java库中自带的阻塞队列以及用阻塞队列实现生产者-消费者模型 下面我们来讲如何用代码实现一个阻塞队列 1、实现一个阻塞队列 阻塞队列 普通队列 线程安全 阻…

机器学习实战第1天:鸢尾花分类任务

专栏介绍 欢迎订阅专栏——机器学习实战 机器学习实战_Nowl的博客-CSDN博客 纸上得来终觉浅 本专栏项目将着重于解决各类实际机器学习问题&#xff0c;带你上手各种场景的实际问题 数据集可以在我的资源中找到&#xff0c;也可以自行搜索 文中导入数据集的路径要改成自己的…

java 事务提交(批量处理数据,单个批次执行完成后直接提交事务)

方法一&#xff1a;接口REQUIRES_NEW 实现单个事务提交 方式1: for (TIrBuPBom buPBom : batchList) {// 查询待处理的批次数据List<TIrBuPBom> pBomList pBomMapperBase.list(new LambdaQueryWrapper<TIrBuPBom>().eq(TIrBuPBom::getBatchNo, buPBom.getBatchNo…

C++学习笔记——C++ deque和vector的区别

C中的std::deque&#xff08;双端队列&#xff09;和std::vector&#xff08;向量&#xff09;是两种不同的容器类型&#xff0c;它们有以下区别&#xff1a; 内部实现方式不同&#xff1a;std::deque使用了一种双端队列的数据结构&#xff0c;它由多个块&#xff08;chunks&am…

【Python】用 dict 实现一个简单的 json 数据库

废话不看&#xff1a; 最近写了一个小项目&#xff0c;基本逻辑是通过定时任务轮询 API&#xff0c;检测 API 状态变化并执行对应的操作。该 API 一共有 3 种状态&#xff0c;假设每种状态的值分别为 1、2、3&#xff0c;在状态 2 的时候需要调用一次处理方法。 这里的问题是状…

JavaScript面试经,offer拿到手软

文章来源于公众号&#xff1a;猴哥说前端 作者&#xff1a;monkeysoft 本文给大家分享一些 JavaScript 面试经验&#xff0c;在这金九银十的招聘季&#xff0c;希望大家都能找到满意的工作。 JavaScript的数据类型都有什么&#xff1f; 基本数据类型&#xff1a;String,Boolea…

word2vec的算法原理(不用开源包,python实现)

看了很多关于word2vec的算法原理的介绍文章&#xff0c;看明白了&#xff0c;但依然有点不深刻。 以下是python直接实现的word2vec的算法&#xff0c;简单明了&#xff0c;读完就懂了 import numpy as npdef tokenize(text):return text.lower().split()def generate_word_pa…

【操作系统】文件系统的实现

文章目录 文件系统的层次结构文件系统的实现目录实现线性列表哈希表 文件的实现连续分配链接分配索引分配 文件存储空间管理空闲表法与空闲链表法成组链接法位示图法 文件系统的层次结构 文件系统从上往下分为了五层&#xff0c;分别是用户调用接口、文件目录系统、存取控制模…

SWT/Jface(1): 表格的创建和渲染

前言 使用JFace创建表格还是比较方便的, 如果仅仅是创建空表格的话, 以下2步即可完成: 创建TableViewer对象, 指定样式, 比如是否支持多行选择, 有无边框, 是否支持滚动条等创建TableColumn对象: 包括列展示名称, 宽度和样式等, 最终绑定到table对象 实例 创建表格 //注意…

c语言中使用openssl对rsa私钥解密

单次加密数据的最大长度&#xff08;block_len&#xff09;&#xff0c;由RSA秘钥模长RSA_size()和填充模式有关 填充模式&#xff1a;RSA_PKCS1_PADDING&#xff0c; block_lenRSA_size() - 11填充模式&#xff1a;RSA_PKCS1_OAEP_PADDING&#xff0c;block_lenRSA_size() - 4…

设计模式-学习总结

学习总结 本文仅供自我学习使用 我是一个小白设计模式一.创建型模式1.单例模式(1).饿汉式(2).懒汉式&#xff0c;双检锁(3).静态内部类(4).枚举 2.原型模式3.工厂模式(1).简单工厂模式 4.抽象工厂模式5.建造者模式 二.结构型模式6.适配器模式7.组合模式8.装饰器模式9.外观模式1…