KubeSphere平台安装

news2025/2/25 18:01:50

KubeSphere简介

KubeSphere 是一款功能强大的容器管理平台,以下是其简介:

1)基本信息

  • 开源项目:基于 Apache-2.0 授权协议开源,由 Google Go、Groovy、HTML/CSS 和 Shell 等多种编程语言开发。
  • 基础架构:以 Kubernetes 为内核,架构具有即插即用特性,可运行在私有云、公有云、混合云等多种环境,支持多云与多集群的统一管理。

2)功能特性

  • 全栈 IT 自动化:提供从 Kubernetes 集群搭建到运维的全栈 IT 自动化能力,支持在线和离线安装、升级与扩容。
  • 可视化资源管理:提供可视化的 Kubernetes 资源管理界面,用户可通过向导式界面轻松创建和管理各种 K8s 资源。
  • 强大的 DevOps 功能:内置基于 Jenkins 的 DevOps 系统,支持图形化和脚本两种方式的 CI/CD 流水线构建,还提供 S2I 和 B2I 等 CD 工具。
  • 微服务治理出色:基于 Istio 提供可视化无代码侵入的灰度发布、熔断、流量治理等功能,同时支持分布式 Tracing。
  • 多租户管理:提供基于角色的细粒度统一认证,支持对接企业 LDAP/AD,实现多层级的权限管理。
  • 可观察性强:提供集群、工作负载、Pod、容器等多维度的监控,支持基于多租户的日志查询与日志收集,提供节点与应用层级的告警与通知功能。
  • 基础设施管理全面:支持 Kubernetes 节点管理、节点扩容与集群升级,支持对接多种存储系统,提供可视化运维管理 PVC、StorageClass 的功能,并支持 CSI 插件对接云平台存储。
  • 网络管理灵活:提供租户网络隔离与 K8s NetworkPolicy 管理功能,支持 Calico、Flannel 等多种网络插件,并提供 Porter LB 用于暴露物理环境 K8s 集群的 LoadBalancer 服务。
  • 支持 GPU 资源管理:可运行 TensorFlow 等 ML 框架,为 AI 和大数据应用提供支持。
  • 技术架构:采用前后端分离设计,后端各个功能组件可通过 REST API 对接外部系统,这种设计让其能灵活运行在各种 Kubernetes、私有云、公有云、VM 或物理环境之上。

3)应用场景

  • 助力业务数字化转型:帮助企业一步升级容器架构,适应数字化转型需求。
  • 降低运维复杂度:通过多维管控 Kubernetes,让运维工作更加轻松。
  • 推动企业 DevOps 落地:实现敏捷开发与自动化运维,提升开发和运维效率。
  • 升级云原生架构:提供灵活的微服务解决方案,助力企业构建云原生架构。
  • 释放硬件最大效能:基于物理环境构建全栈容器架构,充分利用硬件资源。

在本次部署中选择用NFS作为存储

1、为什么需要用到NFS?

  • 提供持久化存储:在 KubeSphere 中,应用产生的数据需要持久化保存,如数据库的存储、应用的配置文件等。NFS 能将服务器上的目录共享给 Kubernetes 集群中的多个节点,使容器在重启或在不同节点间迁移时,仍可访问到相同的数据,保证应用的正常运行和数据的一致性。
  • 实现数据共享:KubeSphere 中的多个容器或应用可能需要共享数据,NFS 允许不同节点上的容器挂载同一个 NFS 共享目录,实现数据的共享和交换,便于应用之间协作。比如,多个 Web 应用容器可能需要共享静态资源文件,通过 NFS 就可以方便地实现。
  • 简化存储管理:NFS 的配置和管理相对简单。管理员只需在 NFS 服务器上配置共享目录和访问权限,KubeSphere 集群中的节点即可通过网络挂载 NFS 目录,无需在每个节点上单独配置复杂的存储设备和管理策略,降低了存储管理的难度和成本。
  • 支持动态卷供应:结合 Kubernetes 的 NFS Subdir External Provisioner 插件,NFS 能为 KubeSphere 提供动态卷供应能力。当有新的 PersistentVolumeClaim(PVC)创建时,系统可自动根据 StorageClass 的配置,在 NFS 服务器上创建对应的存储卷并挂载到需要的容器中,提高了存储资源的分配效率和灵活性。
  • 兼容性和通用性:NFS 是一种广泛支持的网络存储协议,与 KubeSphere 及 Kubernetes 生态系统中的许多组件和应用都有良好的兼容性。大多数容器化应用都能轻松地使用 NFS 作为存储后端,无需进行大量的适配工作,方便用户在 KubeSphere 平台上部署各种类型的应用。

2、 在KubeSphere部署中,NFS和其他存储方案对比有什么优缺点?

在 KubeSphere 部署中,NFS 和其他常见存储方案(如本地磁盘、Ceph、Longhorn)对比如下:

2.1、NFS存储方案
优点
  • 简单易维护:设置和维护相对容易,管理人员只需在 NFS 服务器上配置共享目录和访问权限,即可实现存储共享,对技术要求相对较低。
  • 共享能力强:允许多个节点和 Pod 同时访问相同的文件系统,能很好地满足多个应用或容器之间共享数据的需求。
  • 成本低廉:通常运行在标准的硬件和网络基础设施上,无需特殊的存储硬件设备,可显著降低存储成本。
  • 动态供给:通过使用 NFS 客户端动态配置器,如 nfs-client-provisioner,Kubernetes 可以动态创建和管理持久化卷,提高存储资源的分配效率。
  • 兼容性广泛:作为得到广泛支持的文件共享协议,与许多云服务提供商和存储解决方案都兼容,大多数容器化应用都能轻松使用。
缺点
  • 存在单点故障:NFS 服务器一旦出现问题,所有依赖它的服务都可能受到影响,导致业务中断。
  • 性能瓶颈:在高负载和大量并发访问的场景下,性能可能不如专为容器化环境设计的存储解决方案。
  • 网络依赖严重:性能和稳定性高度依赖网络质量,网络问题可能导致连接异常或中断,影响应用的正常运行。
  • 容量管理困难:难以限制实际使用容量,可能导致存储空间的过度使用,造成存储资源的浪费。
  • 数据安全风险:本身不提供数据冗余或备份功能,需要额外配置以确保数据安全,在处理敏感数据时安全性相对较弱。
2.2、本地磁盘存储方案
优点
  • 性能卓越:磁盘和应用系统中间的 IO 路径最短,可以提供最佳的性能,能满足 IO 密集型应用对磁盘读写速度的要求。
  • 数据可靠:通过 RAID 技术可以避免因单个磁盘故障而导致的数据丢失,提供了一定程度的可靠性保证。
  • 部署简单:在服务器的硬盘槽上插上硬盘,利用 HBA 卡或软件的方式制作 RAID,划分逻辑卷,格式化成某种文件系统后,挂载到容器中即可。
缺点
  • 数据不可迁移:由于容器的动态性,Pod 漂移至其他节点时,无法使用之前节点磁盘上的数据,限制了 Pod 的调度灵活性。
  • 缺乏节点级高可用:当物理节点发生故障时,数据都存储在故障节点上,应用无法在其他节点恢复运行。
  • 扩展困难:业务使用的存储空间受限于本地磁盘的大小,达到磁盘空间上限后难以扩容,且部署 RAID 耗时较长,难以快速部署大量应用系统。
2.3、Ceph 存储方案
优点
  • 高扩展性:能够轻松应对大规模数据存储需求,可通过添加节点实现性能和容量的线性扩展。
  • 高可靠性:采用分布式架构,数据分布在多个节点上,通过数据冗余和副本机制确保数据的高可用性和可靠性。
  • 支持多种存储类型:支持块存储、对象存储和文件存储等多种存储类型,能满足不同应用场景的需求。
缺点
  • 部署和管理复杂:需要专业的知识和技能进行部署、配置和维护,对运维人员要求较高。
  • 性能优化难度大:由于涉及多个组件和复杂的网络拓扑,性能优化需要深入了解其架构和原理,难度较大。
  • 资源消耗较高:为了保证性能和可靠性,Ceph 需要较多的计算和存储资源,成本相对较高。

2.4、Longhorn 存储方案
优点
  • 轻量级高可用:特别适用于 Kubernetes 环境,提供易于使用的图形界面,方便用户进行管理和操作。
  • 自动快照和备份:具备自动快照、备份和恢复等功能,可有效保护数据,降低数据丢失风险。
  • 动态扩展:支持动态扩展,能够根据业务需求灵活调整存储容量。
缺点
  • 功能相对有限:与一些功能强大的企业级存储系统相比,功能可能不够丰富,对于一些复杂的存储需求可能无法满足。
  • 性能表现因环境而异:在不同的硬件和网络环境下,性能表现可能存在较大差异,需要进行充分的测试和优化。

一、配置NFS

1、所有服务器节点安装NFS服务

前面实验已经安装过参考博客:k8s基础(6)—Kubernetes-存储_kubectl delete pvc-CSDN博客

2、配置KubeSphere共享的目录

#步骤一:创建共享目录
mkdir -p /opt/nfs/data/kubesphere

#步骤二:在/etc/exports文件中加入下面的行
/opt/nfs/data/kubesphere *(insecure,rw,sync,no_root_squash)

#步骤三:重启NFS服务
systemctl restart rpcbind && systemctl enable rpcbind
systemctl restart nfs && systemctl enable nfs

#步骤四:查看配置是否生效
exportfs -r
exportfs

#步骤五:其他集群节点上查看配置是否生效
showmount -e 192.168.72.130

 

3、部署NFS Subdir External Provisioner 插件

作用:因为NFS没有可以提供动态卷供应的能力,安装NFS Subdir External Provisioner 插件,NFS 能为 KubeSphere 提供动态卷供应能力。当有新的 PersistentVolumeClaim(PVC)创建时,系统可自动根据 StorageClass 的配置,在 NFS 服务器上创建对应的存储卷并挂载到需要的容器中,提高了存储资源的分配效率和灵活性。

3.1、安装步骤

#步骤一:创建安装目录
mkdir -p  /opt/k8s/kubesphere && cd /opt/k8s/kubesphere

#步骤二:下载压缩包
wget https://github.com/kubernetes-sigs/nfs-subdir-external-provisioner/archive/refs/tags/nfs-subdir-external-provisioner-4.0.18.zip

#步骤三:下载后解压
unzip nfs-subdir-external-provisioner-4.0.18.zip

#步骤四:进入文件目录
cd nfs-subdir-external-provisioner-nfs-subdir-external-provisioner-4.0.18


#步骤五:创建命名空间(Namespace)方便管理
kubectl create ns nfs-system

#步骤六:替换部署文件中的命名空间名称
sed -i'' "s/namespace:.*/namespace: nfs-system/g" ./deploy/rbac.yaml ./deploy/deployment.yaml


#步骤七:替换部署文件中的命名空间为nfs-system
cd /opt/k8s/kubesphere/nfs-subdir-external-provisioner-nfs-subdir-external-provisioner-4.0.18
 sed -i'' "s/namespace:.*/namespace: nfs-system/g" ./deploy/rbac.yaml ./deploy/deployment.yaml

 grep "namespace:" ./deploy/*     #验证是否替换成功


#步骤八:创建RBAC资源
cd /opt/k8s/kubesphere/nfs-subdir-external-provisioner-nfs-subdir-external-provisioner-4.0.18/deploy
kubectl apply -f rbac.yaml

#步骤九:检查NFS客户端Provisioner部署是否成功

#检查 ServiceAccount输出中是否包含 nfs-client-provisioner,确认 ServiceAccount 已经正确创建
kubectl get serviceaccount -n nfs-system|grep nfs-client-provisioner

#检查RBAC配置,确认ClusterRole和ClusterRoleBinding 是否已创建:
kubectl get clusterrole | grep nfs-client-provisioner-runner
kubectl get clusterrolebinding | grep run-nfs-client-provisioner


#步骤十:
#1)配置deployment.yaml将nfs-subdir-external-provisioner:v4.0.2的镜像地址改为自己的私有镜像地址(注:nfs-subdir-external-provisioner:v4.0.2镜像GitHub上获取网络受阻,可以先找到资源上传到自己的私有仓库中,可参考的源有:registry.cn-hangzhou.aliyuncs.com/lfy_k8s_images/nfs-subdir-external-provisioner:v4.0.2)
#2)修改NFS_SERVER和NFS_PATH为NFS主机对应的IP和共享的目录
#3)修改volumes中的server和path为NFS主机的IP和NFS共享的目录
#如下:
apiVersion: apps/v1
kind: Deployment
metadata:
  name: nfs-client-provisioner
  labels:
    app: nfs-client-provisioner
  # replace with namespace where provisioner is deployed
  namespace: nfs-system
spec:
  replicas: 1
  strategy:
    type: Recreate
  selector:
    matchLabels:
      app: nfs-client-provisioner
  template:
    metadata:
      labels:
        app: nfs-client-provisioner
    spec:
      serviceAccountName: nfs-client-provisioner
      containers:
        - name: nfs-client-provisioner
          image: registry.cn-hangzhou.aliyuncs.com/yangbin-docker/nfs-subdir-external-provisioner:v4.0.2
          imagePullPolicy: IfNotPresent
          volumeMounts:
            - name: nfs-client-root
              mountPath: /persistentvolumes
          env:
            - name: PROVISIONER_NAME
              value: k8s-sigs.io/nfs-subdir-external-provisioner
            - name: NFS_SERVER
              value: 192.168.72.130
            - name: NFS_PATH
              value: /opt/nfs/data/kubesphere
      volumes:
        - name: nfs-client-root
          nfs:
            server: 192.168.72.130
            path: /opt/nfs/data/kubesphere



#步骤十一:执行/nfs-subdir-external-provisioner部署命令
kubectl apply -f deployment.yaml


#步骤十二:验证插件是否部署成功
kubectl get deployment,pods -n nfs-system


#步骤十三:部署StorageClass
kubectl apply -f class.yaml

#检查StorageClass是否部署成功
kubectl get sc 

3.2、检查Provisioner、ClusterRole、ClusterRoleBinding是否部署成功

3.3、检查nfs-client-provisioner是否部署成功

 

3.4、检查StorageClass是否部署成功

 

 二、部署KubeSphere

1.安装核心组件 KubeSphere Core

1.1、安装helm

#步骤一:下载helm安装包
wget https://get.helm.sh/helm-v3.10.0-linux-amd64.tar.gz

#步骤二:解压
tar -zxvf helm-v3.10.0-linux-amd64.tar.gz

#步骤三:将helm配置成系统命令
mv linux-amd64/helm /usr/local/bin/helm

1.2、通过helm安装KubeSphere的核心组件KubeSphere Core

helm upgrade --install -n kubesphere-system --create-namespace ks-core https://charts.kubesphere.com.cn/main/ks-core-1.1.3.tgz --debug --wait \
--set global.imageRegistry=swr.cn-southwest-2.myhuaweicloud.com/ks \
--set extension.imageRegistry=swr.cn-southwest-2.myhuaweicloud.com/ks \
--set hostClusterName=k8s-paco



1.3、查看部署是否成功 

2、浏览器上输入地址进行登录验证

2.1、在浏览器上输入上述的地址 

2.2、修改密码

三、KubeSphere模块介绍

1、工作台功能介绍

1.1、查看之前安装的集群

 

1.2、集群节点(Nodes)

1.3、项目(NameSpace) 

1.4、工作负载

  • Deployment (自定义服务)
  • StatefulSet(有状态副本集)
  • DaemonSet(守护进程集)

1.5、容器组(Pods) 

1.6、服务(Service)

 

1.7、配置

保密字典(Secret)
配置字典(ConfigMap

1.8、配置

持久卷(pv)
持久卷声明(pvc)
存储类(StorageClass

1.9、集群设置

2、扩展市场

在此可以安装自己业务需要的组件

 

3、应用商店

 

参考文档:KubeSphere部署安装,接入KubeKey安装的k8s集群_kubesphere 安装部署-CSDN博客

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

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

相关文章

Claude 3.7 Sonnet 泄露,Anthropic 最先进 AI 模型即将在 AWS Bedrock 上首次亮相

(图片:AWS) Anthropic 旗下先进的 AI 模型 Claude 3.7 Sonnet 似乎即将发布。业界预计,亚马逊可能会在2025年2月26日的活动中公布相关消息。泄露的信息表明,该模型将托管于 AWS Bedrock 平台,该平台以提供尖端 AI 模型访问而闻名…

ONNX转RKNN的环境搭建和部署流程

将ONNX模型转换为RKNN模型的过程记录 工具准备 rknn-toolkit:https://github.com/rockchip-linux/rknn-toolkit rknn-toolkit2:https://github.com/airockchip/rknn-toolkit2 rknn_model_zoo:https://github.com/airockchip/rknn_model_zoo ultralytics_yolov8:https://github…

Linux红帽:RHCSA认证知识讲解(二)配置网络与登录本地远程Linux主机

Linux红帽:RHCSA认证知识讲解(二)配置网络与登录本地远程Linux主机 前言一、使用命令行(nmcli 命令)配置网络,配置主机名第一步第二步修改主机名称 二、使用图形化界面(nmtui 命令)配…

深入浅出ES6:现代JavaScript的基石

ES6(ECMAScript 2015)是JavaScript语言的一次重大更新,引入了许多新特性,使JavaScript更加强大、优雅和易于维护。这些特性已经成为现代JavaScript开发的基石,掌握它们对于任何JavaScript开发者都至关重要。本文将深入…

小型字符级语言模型的改进方向和策略

小型字符级语言模型的改进方向和策略 一、回顾小型字符级语言模型的处理流程 前文我们已经从零开始构建了一个小型字符级语言模型,那么如何改进和完善我们的模型呢?有哪些改进的方向?我们先回顾一下模型的流程: 图1 小型字符级语言模型的处理流程 (1)核心模块交互过程:…

一周学会Flask3 Python Web开发-Jinja2模板访问对象

锋哥原创的Flask3 Python Web开发 Flask3视频教程: 2025版 Flask3 Python web开发 视频教程(无废话版) 玩命更新中~_哔哩哔哩_bilibili 如果渲染模板传的是对象,如果如何来访问呢? 我们看下下面示例: 定义一个Student类 cla…

vue 3D 翻页效果

<template><view class"swipe-container" touchstart"onTouchStart" touchmove"onTouchMove" touchend"onTouchEnd"><view class"page">初始页</view></view> </template><script&g…

npm : 无法加载文件 E:\ProgramFiles\Nodejs\npm.ps1,因为在此系统上禁止运行脚本。

这个错误是因为 Windows 系统的 PowerShell 执行策略 限制了脚本的运行。默认情况下&#xff0c;PowerShell 的执行策略是 Restricted&#xff0c;即禁止运行任何脚本。以下是解决该问题的步骤&#xff1a; 1. 检查当前执行策略 打开 PowerShell&#xff08;管理员权限&#x…

pycharm 调试 debug 进入 remote_sources

解决办法1&#xff1a; pycharm函数跳转到remote_sources中的文件中_pycharm修改remotesource包存放地址-CSDN博客 file->settings->project structure将项目文件夹设为"Sources"&#xff08;此时文件夹会变为蓝色&#xff09;。 解决方法2 Debug:使用Pychar…

测试面试题:以一个登录窗口为例,设计一下登录界面测试的思路和方法

在测试登录窗口时,可以从 表单测试、 逻辑判断和 业务流程三个方面设计测试思路和方法。以下是一个详细的测试方案: 1. 表单测试 表单测试主要关注输入框、按钮等UI元素的正确性和用户体验。 测试点: 输入框测试 用户名和密码输入框是否正常显示。输入框是否支持预期的字符类…

【蓝桥杯】1.k倍区间

前缀和 #include <iostream> using namespace std; const int N100010; long long a[N]; int cnt[N]; int main(){int n, m;cnt[0] 1;cin >> n >> m;long long res 0;for(int i 1; i < n; i){scanf("%d", &a[i]);a[i] a[i-1];res cnt…

机器人部分专业课

华东理工 人工智能与机器人导论 Introduction of Artificial Intelligence and Robots 必修 考查 0.5 8 8 0 1 16477012 程序设计基础 The Fundamentals of Programming 必修 考试 3 64 32 32 1 47450012 算法与数据结构 Algorithm and Data Structure 必修 考试 3 56 40 …

Maven——Maven开发经验总结(1)

摘要 本文总结了 Maven 开发中的多个关键经验&#xff0c;包括如何根据版本号决定推送到 releases 或 snapshots 仓库&#xff0c;如何在构建过程中跳过测试&#xff0c;父项目如何控制子项目依赖版本&#xff0c;父项目依赖是否能传递到子项目&#xff0c;如何跳过 Maven dep…

gitlab 解决双重认证无法登录remote: HTTP Basic: Access denied.

问题&#xff1a;gitlab开启了双因素认证导致无法正常使用 如进行了 OAuth configuration 在进行git操作时如下提示 remote: HTTP Basic: Access denied. The provided password or token is incorrect or your account has 2FA enabled and you must use a personal access…

【Microsoft PowerPoint for Mac】2分钟配置-MAC一键删除PPT中的所有备注

MAC一键删除PPT中的所有备注 1.搜索自动操作2.点击快速操作3.搜索并运行AppleScript4.输入代码&#xff0c;并选择只应用于Microsoft PowerPoint for Mac【右上角】5. CRTLS保存为“清除当前文稿中的所有备注”&#xff0c;PPT中应用。 MAC没自带&#xff0c;需要自己配置 1.搜…

人工智能 阿里云算力服务器的使用

获取免费的阿里云服务器 阿里云免费使用地址&#xff1a; https://free.aliyun.com/ 选择 人工智能平台 PAI 选择交互式建模 再选建立实例。 选择对应的GPU 和镜像&#xff0c;点击确认。 注意&#xff1a;250个小时&#xff0c;用的时候开启&#xff0c;不用的时候关闭&…

硬核技术组合!用 DeepSeek R1、Ollama、Docker、RAGFlow 打造专属本地知识库

文章目录 一、引言二、安装Ollama部署DeepSeekR1三、安装Docker四、安装使用RAGFlow4.1 系统架构4.2 部署流程4.3 使用RAGFlow4.4 在RAGFlow中新增模型4.5 创建知识库4.6 创建私人助理使用RGA 一、引言 本地部署DeepSeek R1 Ollama RAGFlow构建个人知识库&#xff0c;通过将…

记录此刻:历时两月,初步实现基于FPGA的NVMe SSD固态硬盘存储控制器设计!

背景 为满足实验室横向项目需求&#xff0c;在2024年12月中下旬导师提出基于FPGA的NVMe SSD控制器研发项目。项目核心目标为&#xff1a;通过PCIe 3.0 x4接口实现单盘3000MB/s的持续读取速率。 实现过程 调研 花了半个月的时间查阅了一些使用FPGA实现NVME SSD控制器的论文、…

pytorch入门级项目--基于卷积神经网络的数字识别

文章目录 前言1.数据集的介绍2.数据集的准备3.数据集的加载4.自定义网络模型4.1卷积操作4.2池化操作4.3模型搭建 5.模型训练5.1选择损失函数和优化器5.2训练 6.模型的保存7.模型的验证结语 前言 本篇博客主要针对pytorch入门级的教程&#xff0c;实现了一个基于卷积神经网络&a…

yolov12部署(保姆级教程)

yolov12部署 戳链接访问原论文论文地址 戳链接访问原代码代码地址 直接把源代码以ZIP的形式下载到本地&#xff0c;然后解压用IDE打开就可以了&#xff08;这一步比较简单不过多介绍&#xff09; 在IDE中打开可以看见一个README.md文件&#xff0c;这里有我们将yolov12部署本…