Loading... # KubeSphere简介 **个人感觉推荐:学习使用kubesphere,企业使用rancher** > 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 落地:实现敏捷开发与自动化运维,提升开发和运维效率。 > 升级云原生架构:提供灵活的微服务解决方案,助力企业构建云原生架构。 > 释放硬件最大效能:基于物理环境构建全栈容器架构,充分利用硬件资源。 | 主机名 | ip | 角色 | | ------------ | -------------- | ----------------------- | | k8s-master01 | 100.100.157.10 | k8s-master01/nfs-server | | k8s-work01 | 100.100.157.11 | k8s-work01/nfs-client | | k8s-work02 | 100.100.157.12 | k8s-work02/nfs-client | ## 一、NFS安装 ### 1、所有服务器节点安装NFS服务 [参考nfs安装手册](http://www.hxy.bj.cn/archives/94/) ### 2、配置KubeSphere共享的目录 ```shell #步骤一:创建共享目录 mkdir -p /root/hxy/nfs/data/kubesphere #步骤二:在/etc/exports文件中加入下面的行 /root/hxy/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 100.100.157.10 ```   ### 3、部署NFS Subdir External Provisioner 插件 > 作用:因为NFS没有可以提供动态卷供应的能力,安装NFS Subdir External Provisioner 插件,NFS 能为 KubeSphere 提供动态卷供应能力。当有新的 PersistentVolumeClaim(PVC)创建时,系统可自动根据 StorageClass 的配置,在 NFS 服务器上创建对应的存储卷并挂载到需要的容器中,提高了存储资源的分配效率和灵活性。 #### 3.1 安装步骤 ```shell #步骤一:创建安装目录 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上获取网络受阻,可以先找到资源上传到自己的私有仓库中,可参考的源有:k8s-sigs.io/nfs-subdir-external-provisioner) #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: k8s-sigs.io/nfs-subdir-external-provisioner 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: 100.100.157.10 - name: NFS_PATH value: /root/hxy/nfs/data/kubesphere volumes: - name: nfs-client-root nfs: server: 100.100.157.10 path:/root/hxy/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是否部署成功  ## 二、部署Kubesphere ### 1. 安装核心组件Kubesphere core **通过helm安装核心组件Kubesphere core,成功后终端会输出user/passowrd/url** ```shell 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 ``` ### 2. 验证  最后修改:2025 年 05 月 05 日 © 允许规范转载 打赏 赞赏作者 支付宝微信 赞 4 如果觉得我的文章对你有用,请随意赞赏