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

devtools/2025/1/22 8:35:19/

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-provisionerlabels:app: nfs-client-provisioner# replace with namespace where provisioner is deployednamespace: nfs-system
spec:replicas: 1strategy:type: Recreateselector:matchLabels:app: nfs-client-provisionertemplate:metadata:labels:app: nfs-client-provisionerspec:serviceAccountName: nfs-client-provisionercontainers:- name: nfs-client-provisionerimage: registry.cn-hangzhou.aliyuncs.com/docker_image-ljx/nfs-subdir-external-provisioner:v4.0.2volumeMounts:- name: nfs-client-rootmountPath: /persistentvolumesenv:- name: PROVISIONER_NAMEvalue: k8s-sigs.io/nfs-subdir-external-provisioner- name: NFS_SERVERvalue: 192.168.6.131- name: NFS_PATHvalue: /home/data/nfs/sharevolumes:- name: nfs-client-rootnfs:server: 192.168.6.131path: /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.ppmy.cn/devtools/152542.html

相关文章

线上商城拼团功能搭建指南

规划与设计 明确拼团模式:确定是常规的多人拼团、团长免单、阶梯拼团还是其他创新模式。比如常规拼团可设定 3 人或 5 人成团,团长免单模式则需规定团长的角色和权益等。确定功能需求:包括拼团活动创建、展示、参与、支付、成团通知、售后处理…

C++17 新的求值顺序规则:小白友好版指南

嘿,C 小白们!今天,我们要聊一个听起来有点枯燥,但实际上超重要的话题——C17 中的求值顺序规则。别急,我会用最通俗易懂的方式,带你一步步搞懂这个知识点,让你在编程路上少走弯路,写…

Redis使用基础

1 redis介绍 Redis(Remote Dictionary Server ),即远程字典服务 ! 是完全开源的,遵守 BSD 协议,是一个高性能的 key-value 数据库。 使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并…

【24】Word:小郑-准考证❗

目录 题目 准考证.docx 邮件合并-指定考生生成准考证 Word.docx 表格内容居中表格整体相较于页面居中 考试时一定要做一问保存一问❗ 题目 准考证.docx 插入→表格→将文本转换成表格→✔制表符→确定选中第一列→单击右键→在第一列的右侧插入列→布局→合并单元格&#…

python麻辣香锅菜品推荐

1.推荐算法概述 推荐算法出现得很早,最早的推荐系统是卡耐基梅隆大学推出的Web Watcher浏览器导航系统,可以根据当的搜索目标和用户信息,突出显示对用户有用的超链接。斯坦福大学则推出了个性化推荐系统LIRA.AT&T实验室于1997年提出基于协作过滤的个性化推荐系统…

Vue2.0的安装

1.首先查看是否已经安装了node.js 选择以管理员方式打开命令提示符(权限较高),或者通过cmd的方式打开 打开后输入node -v 查看自己电脑是否安装node,以及版本号 node -v 如果没有的话,请查看Node.js的安装 2.Vue和脚…

【面试题】JVM部分[2025/1/13 ~ 2025/1/19]

JVM部分[2025/1/13 ~ 2025/1/19] 1. JVM 由哪些部分组成?2. Java 的类加载过程是怎样的?3. 请你介绍下 JVM 内存模型,分为哪些区域?各区域的作用是什么?4. JVM 垃圾回收调优的主要目标是什么?5. 如何对 Jav…

软件工程的本质特征

1、软件工程关注于大型程序的构造 2、软件工程的中心课题是控制复杂性 软件所解决的问题十分复杂,通常不得不把问题分解,使得分解出的每个部分是可以理解的,而各个部分之间保持简单的通信关系。这并不能降低问题的整体复杂性,但…