KubeSphere部署安装,接入KubeKey安装的k8s集群

news2025/4/5 15:41:11

KubeSphere安装接入KubeKey安装的k8s集群

文章目录

    • KubeSphere安装接入KubeKey安装的k8s集群
      • 一.`NFS`安装配置
        • 1.服务器安装NFS服务
        • 2.下载并部署 `NFS Subdir External Provisioner`
          • 1).下载部署文件
          • 2).创建 `NameSpace`
          • 3).创建 `RBAC` 资源
          • 4).配置 `deployment.yaml`
          • 5).部署 `Storage Class`
      • 二.部署 `KubeSphere`
        • 1.安装核心组件 KubeSphere Core
        • 2.安装完成后访问
      • 三. `KubeSphere`简单了解和使用

前置部署参考:很简单的K8s集群部署方法-KubeKey自动化部署-CSDN博客

一.NFS安装配置

1.服务器安装NFS服务

这一步最好选择内存最大的那个集群节点进行操作此处只做演示

Ubuntu

sudo apt update
sudo apt install nfs-kernel-server

Centos

yum update
yum -y install nfs-utils
# 创建或使用用已有的文件夹作为nfs文件存储点
mkdir -p /home/data/nfs/share
vi /etc/exports

写入如下内容

/home/data/nfs/share *(rw,no_root_squash,sync,no_subtree_check)

image-20230913174358481

# 配置生效并查看是否生效
exportfs -r
exportfs

image-20230913174639129

# 启动rpcbind、nfs服务
#Centos
systemctl restart rpcbind && systemctl enable rpcbind
systemctl restart nfs && systemctl enable nfs
#Ubuntu
systemctl restart rpcbind && systemctl enable rpcbind
systemctl start nfs-kernel-server && systemctl enable nfs-kernel-server

# 查看 RPC 服务的注册状况
rpcinfo -p localhost

image-20230913175507036

# showmount测试
showmount -e localhost

image-20230913175649184

以上都没有问题则说明安装成功

2.下载并部署 NFS Subdir External Provisioner

这一步必须在k8s的控制节点上执行,即可以执行kubectl命令的节点

1).下载部署文件
cd /home
#下载压缩包
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/

image-20250117112421402

2).创建 NameSpace

默认部署的命名空间为default,便于管理部署的资源,一般会创建一个新的命名空间。

#创建Namespace
kubectl create ns nfs-system
  • 替换部署文件中的命名空间名称
 sed -i'' "s/namespace:.*/namespace: nfs-system/g" ./deploy/rbac.yaml ./deploy/deployment.yaml

检查是否替换

cd deploy/
cat deployment.yaml | grep "namespace"

image-20250117114444415

3).创建 RBAC 资源
#执行目录在deploy/下
kubectl apply -f rbac.yaml

要检查您的 NFS 客户端 Provisioner 部署是否成功:

检查 ServiceAccount输出中是否包含 nfs-client-provisioner,确认 ServiceAccount 已经正确创建,:

kubectl get serviceaccount -n nfs-system

image-20250117115209278

检查 RBAC 配置,确认 ClusterRoleClusterRoleBinding 已创建:

kubectl get clusterrole | grep nfs-client-provisioner-runner
kubectl get clusterrolebinding | grep run-nfs-client-provisioner

image-20250117115222406

确认 RoleRoleBinding 已创建:

kubectl get role -n nfs-system | grep leader-locking-nfs-client-provisioner
kubectl get rolebinding -n nfs-system | grep leader-locking-nfs-client-provisioner

image-20250117115233624

4).配置 deployment.yaml

由于文件内默认的镜像是registry.k8s.io 镜像仓库的镜像 nfs-subdir-external-provisioner:v4.0.2,所以大部分时候拉取会超时,所以最好改为自己私库的镜像地址。
搭建个人镜像仓库可参考:阿里云容器镜像服务搭一个自己的镜像仓库-CSDN博客

需要修改的内容:

  • image:,修改镜像地址,默认为registry.k8s.io/sig-storage/nfs-subdir-external-provisioner:v4.0.2

  • value: 10.3.243.101,修改NFS 服务器的主机名或是 IP 地址,注意,如果是主机名,要确保每一个节点的主机名可以相互解析
    如图:image-20250117135142180

  • value: /ifs/kubernetes,NFS 服务器导出的共享数据目录的路径,exportfs输出的路径。

以下是我修改好的deployment.yaml参考:

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/docker_image-ljx/nfs-subdir-external-provisioner:v4.0.2
          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.6.131
            - name: NFS_PATH
              value: /home/data/nfs/share
      volumes:
        - name: nfs-client-root
          nfs:
            server: 192.168.6.131
            path: /home/data/nfs/share
  • 执行部署命令

    kubectl apply -f deployment.yaml
    

    检查是否部署成功

    kubectl get deployment,pods -n nfs-system
    

    image-20250117135645099

5).部署 Storage Class
  • 执行部署命令

    #依旧是deploy/目录下
    kubectl apply -f class.yaml
    
  • 检查是否部署成功

    kubectl get sc
    

    image-20250117135916721

二.部署 KubeSphere

1.安装核心组件 KubeSphere Core

通过 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
  • hostClusterName:需要改成自己集群的名字,如果忘记可执行kubectl config current-context查看,@后面的就是集群名字
    image-20250117141224321
  • 两个 imageRegistry:修改组件镜像仓库地址,默认是charts.kubesphere.io,可能无法访问,所以最好替换成国内地址:charts.kubesphere.com.cn

执行命令后等待安装完成:

image-20250117141433696

2.安装完成后访问

image-20250117141448558

如上图,安装完成后会输出访问的地址和账号密码。我们按如下地址访问。

image-20250117141607848

image-20250117141626426

首次登录会修改初始密码,提交后就能进入主界面。

image-20250117141715524

三. KubeSphere简单了解和使用

在进入主界面后,点击集群管理就可以找到之前安装的集群。

image-20250117141846018

可以收藏指快捷访问,然后进入集群,就可以看到集群的一些基本信息。

image-20250117142317132

在应用负载中,可以看到该集群的pod,deployment,service等信息,也可对其Yaml文件进行修改。

image-20250117142704872

image-20250117142857819

然后还可以从他们提供的扩展市场,安装一些自己需要的插件。实现一些其他的功能。

image-20250117142959166

可以看到 KubeSphere目前没有多少可选的应用,相比Rancher,后者可提供的应用选择就比较多了如下图。

image-20250117143613851

KubeSphere的好处就是,它有国内源作为支撑,相比Rancher,在部署和维护的时候拉取镜像会比较方便。并且Rancher作为老牌的,Kubernetes (K8s) 的开源管理平台。无论是使用人数和社区体量都比KubeSphere要广泛。所以大家可以自行选择。

发行时间对比

平台首次发布时间Kubernetes 支持时间当前状态
Rancher2014 年2016 年全面转向支持 Kubernetes成熟,SUSE 旗下
KubeSphere2018 年2018 年发布即全面支持 Kubernetes成熟,持续开源开发

image-20250117144252797

image-20250117144307796

其他可参考的,k8s集群的部署方法

(高可用版本)Kubeadm+Containerd+keepalived部署高可用k8s(v1.28.2)集群-CSDN博客

Kubeadm+Containerd部署k8s(v1.28.2)集群(非高可用版)-CSDN博客

Rancher(V2.6.3)安装K8s教程_cluster must have at least one etcd plane host: pl-CSDN博客

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

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

相关文章

基于智能物联网的肉鸡舍控制器:设计、实施、性能评估与优化

英文标题: Smart IoT-Based Broiler Room Controller: Design, Implementation, Performance Evaluation, and Optimization 作者信息 Shamsu Sabo Department of Computer Science, National Open University of Nigeria, Fagge Study Center, Nigeria Email: 144…

JavaScript-正则表达式方法(RegExp)

RegExp 对象用于将文本与一个模式匹配。 有两种方法可以创建一个 RegExp 对象:一种是字面量,另一种是构造函数。 字面量由斜杠 (/) 包围而不是引号包围。 构造函数的字符串参数由引号而不是斜杠包围。 new RegExp(pattern[, flags])一.符集合 1.选择…

【Flink系列】4. Flink运行时架构

4. Flink运行时架构 4.1 系统架构 Flink运行时架构——Standalone会话模式为例 1)作业管理器(JobManager) JobManager是一个Flink集群中任务管理和调度的核心,是控制应用执行的主进程。也就是说,每个应用都应该被…

C#中无法在串口serialPort1_DataReceived启动定时器的解决方法

这里的串口名是serialPort1,定时器名是timerRxInterval 方法1——修改启动方法 private void serialPort1_DataReceived(object sender, SerialDataReceivedEventArgs e) {Invoke((MethodInvoker)delegate { timerRxInterval.Start(); }); } private void timerRxI…

gateway worker 分布式

有三个文件start_register.php,start_gateway.php,start_businessworker.php, 一、start_register.php (1)是用于通讯的,注册地址的; 二、start_gateway.php (1)用于跟…

当当网书籍信息爬虫

1.基本理论 1.1概念体系 网络爬虫又称网络蜘蛛、网络蚂蚁、网络机器人等,可以按照我们设置的规则自动化爬取网络上的信息,这些规则被称为爬虫算法。是一种自动化程序,用于从互联网上抓取数据。爬虫通过模拟浏览器的行为,访问网页…

【数据分享】1929-2024年全球站点的逐月平均气温数据(Shp\Excel\免费获取)

气象数据是在各项研究中都经常使用的数据,气象指标包括气温、风速、降水、湿度等指标,其中又以气温指标最为常用!说到气温数据,最详细的气温数据是具体到气象监测站点的气温数据!本次我们为大家带来的就是具体到气象监…

【鱼皮大佬API开放平台项目】Spring Cloud Gateway HTTPS 配置问题解决方案总结

问题背景 项目架构为前后端分离的微服务架构: 前端部署在 8000 端口API 网关部署在 9000 端口后端服务包括: api-backend (9001端口)api-interface (9002端口) 初始状态: 前端已配置 HTTPS(端口 8000)后端服务未配…

qml DirectionalBlur详解

1、概述 DirectionalBlur是QML(Qt Modeling Language)中用于创建方向模糊效果的一种图形效果类型。它通过对源图像的像素进行模糊处理,产生一种源项目朝着模糊方向移动的感知印象。这种模糊效果被应用到每个像素的两侧,因此设置方…

图像处理|闭运算

闭运算(Closing)是形态学操作中的另一种基本操作,它与开运算(Opening)类似,但执行的步骤相反。闭运算结合了膨胀和腐蚀操作,顺序为 先膨胀后腐蚀。这种操作通常用于填补图像中的小空洞&#xff…

大模型高并发部署方案探究

版本 内容 姓名 时间 V1.0 新建 xx 2025-01-16 声明:只是进行探究,后续真正实践后,会更新新的内容 前置条件:70B的模型,并发要求200 性能测试参考链接 Benchmarking LLM Inference Backends :表明一台A100(8…

Java并发06 - ThreadLocal详解

ThreadLocal详解 文章目录 ThreadLocal详解一:认识 ThreadLocal 线程局部存储1:ThreadLocal特点2:如何实现线程隔离3:继承父线程的局部存储4:自动清理与内存泄漏问题5:ThreadLocal使用场景6:阿里…

【设计模式】 单例模式(单例模式哪几种实现,如何保证线程安全,反射破坏单例模式)

单例模式 作用:单例模式的核心是保证一个类只有一个实例,并且提供一个访问实例的全局访问点。 实现方式优缺点饿汉式线程安全,调用效率高 ,但是不能延迟加载懒汉式线程安全,调用效率不高,能延迟加载双重检…

【漏洞预警】FortiOS 和 FortiProxy 身份认证绕过漏洞(CVE-2024-55591)

文章目录 一、产品简介二、漏洞描述三、影响版本四、漏洞检测方法五、解决方案 一、产品简介 FortiOS是Fortinet公司核心的网络安全操作系统,广泛应用于FortiGate下一代防火墙,为用户提供防火墙、VPN、入侵防御、应用控制等多种安全功能。 FortiProxy则…

记录一次 centos 启动失败

文章目录 现场1分析1现场2分析2搜索实际解决过程 现场1 一次断电,导致 之前能正常启动的centos 7.7 起不来了有部分log , 关键信息如下 [1.332724] XFS(sda3): Internal error xfs ... at line xxx of fs/xfs/xfs_trans.c [1.332724] XFS(sda3): Corruption of in-memory data…

关于vite+vue3+ts项目中env.d.ts 文件详解

env.d.ts 文件是 Vite 项目中用于定义全局类型声明的 TypeScript 文件。它帮助开发者向 TypeScript提供全局的类型提示,特别是在使用一些特定于 Vite 的功能时(如 import.meta.env)。以下是详细讲解及代码示例 文章目录 **1. env.d.ts 文件的…

虚拟专用网VPN的概念及实现VPN的关键技术

虚拟专用网VPN通过建立在公共网络上的重要通道(1分),实现远程用户、分支机构、业务伙伴等与机构总部网络的安全连接,从而构建针对特定组织机构的专用网络,实现与专用网络类似的功能,可以达到PN安全性的目的,同时成本相对要低很多(…

将 AzureBlob 的日志通过 Azure Event Hubs 发给 Elasticsearch(1)

问题 项目里使用了 AzureBlob 存储了用户上传的各种资源文件,近期 AzureBlob 的流量费用增长很快,想通过分析Blob的日志,获取一些可用的信息,所以有了这个需求:将存储账户的日志(读写,审计&…

X-12-ARIMA:季节性调整(Seasonal Adjustment)的强大工具,介绍数学原理

X-12-ARIMA:季节性调整的强大工具 在经济学、金融学以及各类统计数据分析中,季节性调整(Seasonal Adjustment)是一个至关重要的步骤。许多经济指标,如GDP、失业率和零售销售数据等,往往会受到季节性因素的…

.netframwork模拟启动webapi服务并编写对应api接口

在.NET Framework环境中模拟启动Web服务,可以使用几种不同的方法。一个常见的选择是利用HttpListener类来创建一个简单的HTTP服务器,或者使用Owin/Katana库来自托管ASP.NET Web API或MVC应用。下面简要介绍Owin/Katana示例代码。这种方法更加灵活&#x…