当前位置: 首页 > news >正文

KubeSphere 容器平台高可用:环境搭建与可视化操作指南

Linux_k8s篇

欢迎来到Linux的世界,看笔记好好学多敲多打,每个人都是大神!

题目:KubeSphere 容器平台高可用:环境搭建与可视化操作指南

版本号: 1.0,0
作者: @老王要学习
日期: 2025.06.05
适用环境: Ubuntu22

文档说明

本文围绕 KubeSphere 容器平台高可用展开,涵盖环境准备的软硬件要求。先回顾 k8s 操作,如查看存储类、配置 PVC 等;后介绍 k8e 对 k8s 集群可视化,包括进入控制平台、修改密码、创建项目和工作负载等操作,提供命令及可视化配置的相关内容

环境准备

硬件要求

  • 服务器: 2核CPU、2GB内存,20GB硬盘空间
  • 网络: 确保服务器具有固定的IP地址,并且防火墙允许FTP端口(默认22端口)的通信

软件要求

  • 操作系统:Ubuntu22
  • FTP软件:SecureCRT
  • 软件包:

一、k8s简单回顾

1.1查看k8s集群中存储类

# 查看 Kubernetes 集群中 存储类(StorageClass)
kubectl get storageclasses.storage.k8s.io 
#输出如下: 
NAME         PROVISIONER                                   RECLAIMPOLICY   VOLUMEBINDINGMODE   ALLOWVOLUMEEXPANSION   AGE
nfs-client   k8s-sigs.io/nfs-subdir-external-provisioner   Delete          Immediate           false                  2d18h

1.2修改tab空格缩进为2

echo 'set tab-width 2' >> ~/.inputrc
echo 'set expand-tab on' >> ~/.inputrc  # 将 Tab 转换为空格

1.3写入pvc.yml文件

# 写入PVCyml文件
cat>mypvc.yml<<LW 
apiVersion: v1                        #配置采用Kubernetes API 的核心 v1 版本,像 Pod、Service、PVC 等基础资源都使用这个版本
kind: PersistentVolumeClaim           #明确这是一个PVC资源,其作用是向集群申请存储资源
metadata:name: mypodpvc                      #给PVC设定名为mypodpvc,后续pod挂载存储时会用到这个名称
spec:accessModes:                        #对PVC访问模式进行定义,这里采用ReadWriteOnce- ReadWriteOnce                   #该PVC能够被单个节点以读写的方式进行挂载storageClassName: nfs-client        #指定要使用的存储名称为nfs-client resources:                          requests:storage: 1Gi                    #申请存储空间大小为1GB
LW# 配置PVC
kubectl create -f mypvc.yml 
#输出如下: 
persistentvolumeclaim/mypodpvc created# 查看PVC状态(PVC已经成功创建并绑定到 PV状态为 Bound)
kubectl get pvc
#输出如下: 
NAME       STATUS   VOLUME                                     CAPACITY   ACCESS MODES   STORAGECLASS   VOLUMEATTRIBUTESCLASS   AGE
mypodpvc   Bound    pvc-eba394ca-6101-45c4-8ba9-2df0ee34148f   1Gi        RWO            nfs-client     <unset>                 29s

1.4快速生成Pod文件

# 生成一个基于 busybox 镜像的 Pod 配置文件
kubectl run mypod --image busybox --dry-run=client -o yaml >mypod.yml# 我们进行简单配置
apiVersion: v1              #使用 Kubernetes 核心 API 的 v1 版本
kind: Pod                   #资源类型为 Pod
metadata:                   #元数据labels:                   #标签,用于选择和分类资源,这里添加run=mypod标签run: mypodname: mypod               #Pod名称,必须在名称空间的唯一
spec:containers:               #容器定义- image: busybox          #使用busybox镜像name: mypod             #容器名称command:                #容器启动命令- sh- -c- sleep 1000000000000 #长时间sleep使容器保存运行volumeMounts:           #存储卷挂载配置- mountPath: /tmp     #容器内的挂载路径为/tmp目录name: myvol         #挂载的卷名称,必须与 spec.volumes 中定义的名称匹配volumes:                  #卷定义- name: myvol           #与 volumeMounts 中的名称对应PersistentVolumeClaim:  #使用 PVC 作为卷来源claimName: mypodpvc #引用之前创建的 PVC "mypodpvc"# 生成一个基于 busybox 镜像的 dep 配置文件
kubectl create deployment mydep --replicas 3 --image nginx --dry-run=client -o yaml >mydep.yml# 我们删除PVC资源
kubectl delete -f mypvc.yml 
#输出如下: 
persistentvolumeclaim "mypodpvc" deleted# 如下我们进行可视化的配置操作

二、k8e对k8s集群可视化

2.1进入k8e控制平台

http://192.168.174.10:30880/login# 密码如下:
3. Login to KubeSphere ConsoleUse the following credentials to log in:Account: adminPassword: P@88w0rd

2.2修改初始密码

![[Pasted image 20250610094909.png]]

2.3查看我们的集群节点状态

![[Pasted image 20250610095221.png]]
![[Pasted image 20250610095254.png]]
![[Pasted image 20250610095308.png]]

# 等同如下节点,只是图形化展示出来
kubectl get no
NAME        STATUS   ROLES                  AGE     VERSION
master-10   Ready    control-plane,worker   3d23h   v1.32.2
master-20   Ready    control-plane,worker   3d23h   v1.32.2
master-30   Ready    control-plane,worker   3d23h   v1.32.2

2.4创建项目(类似于名称空间)

![[Pasted image 20250610095552.png]]
![[Pasted image 20250610095655.png]]

2.5创建工作负载——部署——创建

![[Pasted image 20250610095844.png]]
![[Pasted image 20250610100013.png]]
![[Pasted image 20250610100411.png]]
![[Pasted image 20250610100556.png]]
![[Pasted image 20250610100502.png]]
![[Pasted image 20250610100637.png]]
![[Pasted image 20250610100721.png]]

# 查看k8s名称空间
kubectl get ns
NAME                         STATUS   AGE
default                      Active   3d23h
kube-node-lease              Active   3d23h
kube-public                  Active   3d23h
kube-system                  Active   3d23h
kubekey-system               Active   3d23h
kubesphere-controls-system   Active   3d18h
kubesphere-system            Active   3d18h
test                         Active   10m      <<<<<<<<创建的test# 查看test中的pod正在启动中(等待启动)
kubectl get pod -n test 
#输出如下: 
NAME                     READY   STATUS              RESTARTS   AGE
myweb-646b4c9f65-6cs2s   0/1     ContainerCreating   0          82s# 查看特定Pod(myweb)详细信息
kubectl describe pod -n test myweb-646b4c9f65-6cs2s
#输出如下: 
Events:Type    Reason     Age    From               Message----    ------     ----   ----               -------Normal  Scheduled  4m29s  default-scheduler  Successfully assigned test/myweb-646b4c9f65-6cs2s to master-30    <<<<<<分配到30Normal  Pulling    4m28s  kubelet            Pulling image "docker.m.daocloud.io/library/nginx:stable"    <<<<<<正在下载

2.6创建完成进入myweb查看并添加一个副本

![[Pasted image 20250610101446.png]]
![[Pasted image 20250610101850.png]]

2.7创建服务

![[Pasted image 20250610101957.png]]
![[Pasted image 20250610102105.png]]
![[Pasted image 20250610102235.png]]
![[Pasted image 20250610102625.png]]
![[Pasted image 20250610104010.png]]

2.8集群中创建 Deployment(命令创建)

# 创建一个 Deployment 的 YAML 配置文件
kubectl create deployment myweb02 --image docker.m.daocloud.io/library/nginx --replicas 2 --dry-run=client -o yaml >myweb02.yml
#输出如下: 
apiVersion: apps/v1
kind: Deployment
metadata:labels:app: myweb02name: myweb02
spec:replicas: 2selector:matchLabels:app: myweb02template:metadata:labels:app: myweb02spec:containers:- image: docker.m.daocloud.io/library/nginxname: nginx# 集群中实际创建 Deployment 资源
kubectl create -f myweb02.yml 
#输出如下: 
deployment.apps/myweb02 created# 查看集群中Deployment资源
kubectl get deployments.apps 
#输出如下: 
NAME                     READY   UP-TO-DATE   AVAILABLE   AGE
myweb02                  2/2     2            2           118m
nfs-client-provisioner   1/1     1            1           3d23h

2.9查看服务创建web网页

![[Pasted image 20250610140645.png]]
![[Pasted image 20250610140816.png]]
![[Pasted image 20250610140918.png]]

相关文章:

  • go全局配置redis,全局只需要连接一次,然后全局可以引用使用
  • 光伏功率预测 | BP神经网络多变量单步光伏功率预测(Matlab完整源码和数据)
  • filebeat原理架构
  • 可视化在车间质量管控中的创新应用,提升品质
  • QT中实现tcp连接
  • 计算机网络笔记(三十四)——5.6TCP可靠传输的实现
  • node+express+jwt+sequelize+mysql+本地服务器部署前端+云服务器公网部署:入门教程
  • 2N65-ASEMI电源领域核心组件2N65
  • 目标跟踪_学习
  • 【大模型】解耦大语言模型中的记忆与推理能力
  • 6.10 - 常用 SQL 语句以及知识点
  • ArcGIS Pro 3.4 二次开发 - 流图层
  • linux等保思路与例题
  • 什么是软件开发的边际成本?有什么作用?
  • vue 监听页面滚动
  • Linux下V2Ray安装配置指南
  • linux thermal framework(1)_概述
  • LIGHT (数据库操作)
  • 编程风格良好的条件比较语句
  • 实现转场动画
  • 九九电视剧免费观看完整版/济南网站seo
  • 访问量大的网站选择多少流量的服务器何时/免费seo搜索优化
  • 疯狂试爱高清在线观看/济南seo网站排名关键词优化
  • 中国建设银行网站运营模式/西地那非片的功能主治
  • 事务所网站制作方案/百度竞价推广登录入口
  • wordpress个人空间/云优化seo软件