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

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]]

http://www.xdnf.cn/news/13175.html

相关文章:

  • YOLO电力物目标检测训练
  • Spring Boot + Vue 前后端分离项目解决跨域问题详解
  • HTML 语义化
  • ​​CentOS 7.9​​ 上配置 ​​Fail2ban 自动封禁 IP​​ 的完整步骤,整合了多篇权威资料的最佳实践
  • 功能界面的组件化编码流程
  • LeetCode 11题“盛最多水的容器”
  • 论文解读:交大港大上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(三)
  • SecureCRT 中使用 `crt.Session.Config.SetOption` 方法
  • STM32时钟与GPIO工作模式
  • LeetCode:912归并排序,洛谷:ACM风格
  • Manus AI 与多语言手写识别
  • 论文笔记:LANGUAGE MODELS REPRESENT SPACE AND TIME
  • 【HarmonyOS 5】鸿蒙CodeGenie AI辅助编程工具详解
  • 1、ZYNQ 开篇简介
  • 向量数据库Milvus在windows环境下的安装
  • SQL进阶之旅 Day 24:复杂业务场景SQL解决方案
  • Unity实现不倒翁
  • Dispatch PDI(DPDI)kettle调度管理平台稳定版本,正式登场!
  • Nuxt + Pinia + Element Plus 后台管理系统搭建教程(含源码)
  • CMake测试find_package()命令的相关原理
  • 10- AI大模型-LangChainV0.3应用(一) - 简介,模型调用,prompt模板,输出解析器
  • 6.10
  • Vue.js 中的 v-bind 指令详解
  • Vue 模板语法之指令语法详解
  • 深入解析 GitHub Token 与 NPM Token:自动化发布的完整指南
  • 医学图像分割最新进展
  • 苹果签名应用掉签频繁原因排查,以及如何避免
  • WebRTC 中 ICE 流程优化:SRS 轻量级部署与 NAT 类型检测实战
  • 项目管理三要素有哪些?如何实现项目管理的三要素平衡
  • 题单:归并排序