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

news2025/6/13 4:54:51

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: mypod
  name: 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 Console

    Use the following credentials to log in:

    Account: admin
    Password: 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    <<<<<<分配到30
  Normal  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: myweb02
  name: myweb02
spec:
  replicas: 2
  selector:
    matchLabels:
      app: myweb02
  template:
    metadata:
      labels:
        app: myweb02
    spec:
      containers:
      - image: docker.m.daocloud.io/library/nginx
        name: 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.coloradmin.cn/o/2408065.html

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

相关文章

SpringBoot-17-MyBatis动态SQL标签之常用标签

文章目录 1 代码1.1 实体User.java1.2 接口UserMapper.java1.3 映射UserMapper.xml1.3.1 标签if1.3.2 标签if和where1.3.3 标签choose和when和otherwise1.4 UserController.java2 常用动态SQL标签2.1 标签set2.1.1 UserMapper.java2.1.2 UserMapper.xml2.1.3 UserController.ja…

wordpress后台更新后 前端没变化的解决方法

使用siteground主机的wordpress网站&#xff0c;会出现更新了网站内容和修改了php模板文件、js文件、css文件、图片文件后&#xff0c;网站没有变化的情况。 不熟悉siteground主机的新手&#xff0c;遇到这个问题&#xff0c;就很抓狂&#xff0c;明明是哪都没操作错误&#x…

网络编程(Modbus进阶)

思维导图 Modbus RTU&#xff08;先学一点理论&#xff09; 概念 Modbus RTU 是工业自动化领域 最广泛应用的串行通信协议&#xff0c;由 Modicon 公司&#xff08;现施耐德电气&#xff09;于 1979 年推出。它以 高效率、强健性、易实现的特点成为工业控制系统的通信标准。 包…

UE5 学习系列(二)用户操作界面及介绍

这篇博客是 UE5 学习系列博客的第二篇&#xff0c;在第一篇的基础上展开这篇内容。博客参考的 B 站视频资料和第一篇的链接如下&#xff1a; 【Note】&#xff1a;如果你已经完成安装等操作&#xff0c;可以只执行第一篇博客中 2. 新建一个空白游戏项目 章节操作&#xff0c;重…

IDEA运行Tomcat出现乱码问题解决汇总

最近正值期末周&#xff0c;有很多同学在写期末Java web作业时&#xff0c;运行tomcat出现乱码问题&#xff0c;经过多次解决与研究&#xff0c;我做了如下整理&#xff1a; 原因&#xff1a; IDEA本身编码与tomcat的编码与Windows编码不同导致&#xff0c;Windows 系统控制台…

利用最小二乘法找圆心和半径

#include <iostream> #include <vector> #include <cmath> #include <Eigen/Dense> // 需安装Eigen库用于矩阵运算 // 定义点结构 struct Point { double x, y; Point(double x_, double y_) : x(x_), y(y_) {} }; // 最小二乘法求圆心和半径 …

使用docker在3台服务器上搭建基于redis 6.x的一主两从三台均是哨兵模式

一、环境及版本说明 如果服务器已经安装了docker,则忽略此步骤,如果没有安装,则可以按照一下方式安装: 1. 在线安装(有互联网环境): 请看我这篇文章 传送阵>> 点我查看 2. 离线安装(内网环境):请看我这篇文章 传送阵>> 点我查看 说明&#xff1a;假设每台服务器已…

XML Group端口详解

在XML数据映射过程中&#xff0c;经常需要对数据进行分组聚合操作。例如&#xff0c;当处理包含多个物料明细的XML文件时&#xff0c;可能需要将相同物料号的明细归为一组&#xff0c;或对相同物料号的数量进行求和计算。传统实现方式通常需要编写脚本代码&#xff0c;增加了开…

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器的上位机配置操作说明

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器专为工业环境精心打造&#xff0c;完美适配AGV和无人叉车。同时&#xff0c;集成以太网与语音合成技术&#xff0c;为各类高级系统&#xff08;如MES、调度系统、库位管理、立库等&#xff09;提供高效便捷的语音交互体验。 L…

(LeetCode 每日一题) 3442. 奇偶频次间的最大差值 I (哈希、字符串)

题目&#xff1a;3442. 奇偶频次间的最大差值 I 思路 &#xff1a;哈希&#xff0c;时间复杂度0(n)。 用哈希表来记录每个字符串中字符的分布情况&#xff0c;哈希表这里用数组即可实现。 C版本&#xff1a; class Solution { public:int maxDifference(string s) {int a[26]…

【大模型RAG】拍照搜题技术架构速览:三层管道、两级检索、兜底大模型

摘要 拍照搜题系统采用“三层管道&#xff08;多模态 OCR → 语义检索 → 答案渲染&#xff09;、两级检索&#xff08;倒排 BM25 向量 HNSW&#xff09;并以大语言模型兜底”的整体框架&#xff1a; 多模态 OCR 层 将题目图片经过超分、去噪、倾斜校正后&#xff0c;分别用…

【Axure高保真原型】引导弹窗

今天和大家中分享引导弹窗的原型模板&#xff0c;载入页面后&#xff0c;会显示引导弹窗&#xff0c;适用于引导用户使用页面&#xff0c;点击完成后&#xff0c;会显示下一个引导弹窗&#xff0c;直至最后一个引导弹窗完成后进入首页。具体效果可以点击下方视频观看或打开下方…

接口测试中缓存处理策略

在接口测试中&#xff0c;缓存处理策略是一个关键环节&#xff0c;直接影响测试结果的准确性和可靠性。合理的缓存处理策略能够确保测试环境的一致性&#xff0c;避免因缓存数据导致的测试偏差。以下是接口测试中常见的缓存处理策略及其详细说明&#xff1a; 一、缓存处理的核…

龙虎榜——20250610

上证指数放量收阴线&#xff0c;个股多数下跌&#xff0c;盘中受消息影响大幅波动。 深证指数放量收阴线形成顶分型&#xff0c;指数短线有调整的需求&#xff0c;大概需要一两天。 2025年6月10日龙虎榜行业方向分析 1. 金融科技 代表标的&#xff1a;御银股份、雄帝科技 驱动…

观成科技:隐蔽隧道工具Ligolo-ng加密流量分析

1.工具介绍 Ligolo-ng是一款由go编写的高效隧道工具&#xff0c;该工具基于TUN接口实现其功能&#xff0c;利用反向TCP/TLS连接建立一条隐蔽的通信信道&#xff0c;支持使用Let’s Encrypt自动生成证书。Ligolo-ng的通信隐蔽性体现在其支持多种连接方式&#xff0c;适应复杂网…

铭豹扩展坞 USB转网口 突然无法识别解决方法

当 USB 转网口扩展坞在一台笔记本上无法识别,但在其他电脑上正常工作时,问题通常出在笔记本自身或其与扩展坞的兼容性上。以下是系统化的定位思路和排查步骤,帮助你快速找到故障原因: 背景: 一个M-pard(铭豹)扩展坞的网卡突然无法识别了,扩展出来的三个USB接口正常。…

未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?

编辑&#xff1a;陈萍萍的公主一点人工一点智能 未来机器人的大脑&#xff1a;如何用神经网络模拟器实现更智能的决策&#xff1f;RWM通过双自回归机制有效解决了复合误差、部分可观测性和随机动力学等关键挑战&#xff0c;在不依赖领域特定归纳偏见的条件下实现了卓越的预测准…

Linux应用开发之网络套接字编程(实例篇)

服务端与客户端单连接 服务端代码 #include <sys/socket.h> #include <sys/types.h> #include <netinet/in.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <arpa/inet.h> #include <pthread.h> …

华为云AI开发平台ModelArts

华为云ModelArts&#xff1a;重塑AI开发流程的“智能引擎”与“创新加速器”&#xff01; 在人工智能浪潮席卷全球的2025年&#xff0c;企业拥抱AI的意愿空前高涨&#xff0c;但技术门槛高、流程复杂、资源投入巨大的现实&#xff0c;却让许多创新构想止步于实验室。数据科学家…

深度学习在微纳光子学中的应用

深度学习在微纳光子学中的主要应用方向 深度学习与微纳光子学的结合主要集中在以下几个方向&#xff1a; 逆向设计 通过神经网络快速预测微纳结构的光学响应&#xff0c;替代传统耗时的数值模拟方法。例如设计超表面、光子晶体等结构。 特征提取与优化 从复杂的光学数据中自…