k8s学习--k8s集群部署kubesphere的详细过程

news2024/11/23 22:14:38

文章目录

  • kubesphere简介
  • k8s群集部署kubespere
    • 环境
    • 准备工作
      • 一、配置nfs
      • 二、配置storageclass
      • 三、kubesphere
      • 开启服务(devops)

kubesphere简介

下面是官方文档描述
KubeSphere 是在 Kubernetes 之上构建的面向云原生应用的分布式操作系统,完全开源,支持多云与多集群管理,提供全栈的 IT 自动化运维能力,简化企业的 DevOps 工作流。它的架构可以非常方便地使第三方应用与云原生生态组件进行即插即用 (plug-and-play) 的集成。

作为全栈的多租户容器平台,KubeSphere 提供了运维友好的向导式操作界面,帮助企业快速构建一个强大和功能丰富的容器云平台。KubeSphere 为用户提供构建企业级 Kubernetes 环境所需的多项功能,例如多云与多集群管理、Kubernetes 资源管理、DevOps、应用生命周期管理、微服务治理(服务网格)、日志查询与收集、服务与网络、多租户管理、监控告警、事件与审计查询、存储管理、访问权限控制、GPU 支持、网络策略、镜像仓库管理以及安全管理等。

简单来说就是
k8s的图形化操作界面,减少了学习成本,有许多功能,只需要点点点就能完成大部分操作

k8s群集部署kubespere

环境

虚拟机

Ip主机名cpu内存硬盘
192.168.10.11master012cpu双核4G100G
192.168.10.12worker012cpu双核4G100G
192.168.10.13worker022cpu双核4G100G
192.168.10.18nfs1cpu一核2G100G

版本 centos7.9
已部署k8s-1.24.1

准备工作

以下标注的为官方文档内容

如需在 Kubernetes 上安装 KubeSphere 3.4,您的 Kubernetes 版本必须为:v1.20.x、v1.21.x、v1.22.x、v1.23.x、* v1.24.x、* v1.25.x 和 * v1.26.x。带星号的版本可能出现边缘节点部分功能不可用的情况。因此,如需使用边缘节点,推荐安装 v1.23.x。

1.出于稳定性考虑,本次安装的kubesphere版本为3.2.1版本
由于前置条件有版本要求我们需要先查看一下当前版本是否在1.20-1.26之间

kubectl version

在这里插入图片描述
可以看到当前版本是1.24.1,如果需要使用边缘节点,推荐安装1.23.x的版本

可用 CPU > 1 核;内存 > 2 G。CPU 必须为 x86_64,暂时不支持 Arm 架构的 CPU。

2.推荐三台主机配置为4g4u,因为很多功能都需要组件,最好为8g8u

Kubernetes 集群已配置默认 StorageClass(请使用 kubectl get sc 进行确认)。

3.因为在k8s中使用本地存储作为持久化存储卷时是配合pvc无法动态创建pv,所以我们在后面使用nfs来配置storageclass

一句话简述storageclass
storageclass是一种网络存储的动态供给方式,它通过连接存储插件,根据PVC的消费需求,动态生成PV,从而实现方便管理的效果。

使用 --cluster-signing-cert-file 和 --cluster-signing-key-file 参数启动集群时,kube-apiserver 将启用 CSR 签名功能。请参见 RKE 安装问题。

链接: 官方文档

一、配置nfs

所有主机安装

yum -y install nfs-utils rpcbind

在nfs主机(192.168.10.14)上操作
创建一个共享目录

mkdir /nfsdata
vim /etc/exports

写入

/nfsdata *(rw,sync,no_root_squash)

设置随机启动

systemctl start nfs-server
systemctl enable nfs-server

查看

showmount -e

在这里插入图片描述
到这里nfs就算配置完成了

二、配置storageclass

master01主机(192.168.10.11)操作
创建一个目录存放相关yaml文件

mkdir sc
cd sc

创建账号、创建权限、给账号关联权限
获取yaml文件

wget https://raw.githubusercontent.com/kubernetes-sigs/nfs-subdir-external-provisioner/master/deploy/rbac.yaml

获取不到直接复制下面的内容

vim rbac.yaml
apiVersion: v1
kind: ServiceAccount
metadata:
  name: nfs-client-provisioner
  namespace: default
---
kind: ClusterRole
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  name: nfs-client-provisioner-runner
rules:
  - apiGroups: [""]
    resources: ["nodes"]
    verbs: ["get", "list", "watch"]
  - apiGroups: [""]
    resources: ["persistentvolumes"]
    verbs: ["get", "list", "watch", "create", "delete"]
  - apiGroups: [""]
    resources: ["persistentvolumeclaims"]
    verbs: ["get", "list", "watch", "update"]
  - apiGroups: ["storage.k8s.io"]
    resources: ["storageclasses"]
    verbs: ["get", "list", "watch"]
  - apiGroups: [""]
    resources: ["events"]
    verbs: ["create", "update", "patch"]
---
kind: ClusterRoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  name: run-nfs-client-provisioner
subjects:
  - kind: ServiceAccount
    name: nfs-client-provisioner
    namespace: default
roleRef:
  kind: ClusterRole
  name: nfs-client-provisioner-runner
  apiGroup: rbac.authorization.k8s.io
---
kind: Role
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  name: leader-locking-nfs-client-provisioner
  namespace: default
rules:
  - apiGroups: [""]
    resources: ["endpoints"]
    verbs: ["get", "list", "watch", "create", "update", "patch"]
---
kind: RoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  name: leader-locking-nfs-client-provisioner
  namespace: default
subjects:
  - kind: ServiceAccount
    name: nfs-client-provisioner
    namespace: default
roleRef:
  kind: Role
  name: leader-locking-nfs-client-provisioner
  apiGroup: rbac.authorization.k8s.io

执行yaml文件

kubectl apply -f rbac.yaml

通过中间件将访问账号与共享存储关联
编写yaml文件

vim nfs-deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
  name: nfs-client-provisioner
spec:
  replicas: 1
  strategy:
    type: Recreate
  selector:
    matchLabels:
      app: nfs-client-provisioner
  template:
    metadata:
      labels:
        app: nfs-client-provisioner
    spec:
      serviceAccount: nfs-client-provisioner
      containers:
        - name: nfs-client-provisioner
          image: registry.cn-beijing.aliyuncs.com/pylixm/nfs-subdir-external-provisioner:v4.0.0
          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.10.14
            - name: NFS_PATH
              value: /nfsdata
      volumes:
        - name: nfs-client-root
          nfs:
            server: 192.168.10.14
            path: /nfsdata

执行yaml文件

kubectl apply -f nfs-deployment.yaml

配置storageclass与中间件关联
编写yaml文件

vim class.yaml
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: nfs-client
provisioner: k8s-sigs.io/nfs-subdir-external-provisioner # or choose another name, must match deployment's env PROVISIONER_NAME'
parameters:
  archiveOnDelete: "false"

执行yaml文件

kubectl apply -f class.yaml

查看

kubectl get storageclasses

记住存储类的名字:nfs-client
在这里插入图片描述
到这里前置环境就已经部署好了,下面就是kubesphere部署了

三、kubesphere

执行相关yam文件

kubectl apply -f https://github.com/kubesphere/ks-installer/releases/download/v3.2.1/kubesphere-installer.yaml

等待running即可

kubectl -n kubesphere-system get pod

在这里插入图片描述
在这里插入图片描述
获取相关yaml文件

wget https://github.com/kubesphere/ks-installer/releases/download/v3.2.1/cluster-configuration.yaml

进行修改

vim cluster-configuration.yaml

在这里写入存储类的名称
在这里插入图片描述
在这里插入图片描述
在这里选择安装的服务,也可以选择以后在图形化界面安装,如果安装的话把false改为true即可,后面还有其他如(devops)的服务,可以直接改为true,或者看后面,后面会展示怎么在图形化界面安装服务
在这里插入图片描述
但不建议在这里安装,因为这样的话安装的会很慢
如果要安的话改成下面这样
在这里插入图片描述

执行该yaml文件

kubectl apply -f cluster-configuration.yaml

找到 kubesphere-system 命名空间下标签为 app=ks-install 或 app=ks-installer 的 Pod,并持续显示该 Pod 的日志输出。

kubectl logs -n kubesphere-system $(kubectl get pod -n kubesphere-system -l 'app in (ks-install, ks-installer)' -o jsonpath='{.items[0].metadata.name}') -f

然后耐心等待即可
看到这个就是安装完成了

在这里插入图片描述
里面标注了ip,账号名和密码,我们可以通过这些信息访问到kubesphere的web页面
在这里插入图片描述
然后后面会提示第一次登录需要修改密码,可以写一个新密码或先跳过
在这里插入图片描述

再接着就是主界面了
在这里插入图片描述

开启服务(devops)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
可以看到devops服务并没有启用
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
找到devops,把false改为true,其他服务同理
在这里插入图片描述
在这里插入图片描述
确定后会自动更新
在这里插入图片描述

请耐心等待,一开始啥也没有很正常,他要先创建存储卷,当然长时间啥也没有,就要想想是不是上面写错了
在这里插入图片描述
在这里插入图片描述
大概5分钟
在这里插入图片描述
在这里插入图片描述
至此devops服务就配置好了

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

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

相关文章

《程序猿入职必会(7) · 前端请求工具封装》

📢 大家好,我是 【战神刘玉栋】,有10多年的研发经验,致力于前后端技术栈的知识沉淀和传播。 💗 🌻 CSDN入驻不久,希望大家多多支持,后续会继续提升文章质量,绝不滥竽充数…

足浴行业押金原路退回怎么开通?

一手机版和电脑版差别 手机版押金管理的优点: 1. 便携性:管理人员可以随时随地通过手机查看和处理押金相关事务,不受地点限制。例如,当不在店内时,仍能及时了解押金的收支情况,对突发问题进行处理。 2. 实…

深入解析食堂采购系统源码:打造高效食材供应链APP的核心

本篇文章,笔者将从系统架构、关键模块、技术选型和优化策略等方面,深入解析食堂采购系统的源码,为您揭示打造高效食材供应链APP的核心要点。 一、系统架构 食堂采购系统通常采用分层架构,以保证系统的可维护性和扩展性。主要包括…

糊涂工具包和commons包(Java)

工具包(Commons-io) 介绍: Commons是apache开源基金组织提供的工具包,里面有很多帮助我们提高开发效率的API 比如: StringUtils 字符串工具类 NumberUtils 数字工具类 ArrayUtils 数组工具类 RandomUtils…

记录|C#批量修改文件后缀

文章目录 前言一、.CHK 批量修改成 .mp3更新时间 前言 针对昨天博文:记录|cmd方式恢复U盘中的数据中的文件修复为.CHK格式后,如果将大量的.CHK后缀改为.mp3后缀的问题进行了编写。 主要是,现在网上的批量修改后缀的软件竟然要开会…

基于微信小程序的校园二手交易平台/Java的二手交易网站/基于Javaweb校园二手商品交易系统(附源码)

摘 要 使用校园二手交易平台管理校园二手物品交易,不仅实现了智能化管理,还提高了管理员的管理效率,用户查询的功能也需要校园二手交易平台来提供。 设计校园二手交易平台是毕设的目标,校园二手交易平台是一个不断创新的系统&…

大话成像公众号文章阅读学习(二)--- 下一代 AI-ISP会更好

系列文章目录 文章目录 系列文章目录前言一、AI-ISP1.1 定义与工作原理1.2 应用场景 二、展望总结 前言 这篇是 下一代 AI-ISP会更好 文章地址:https://mp.weixin.qq.com/s/N3YnkXF_stvP6k3jRTKCpQ 一、AI-ISP 1.1 定义与工作原理 定义:AI-ISP&#…

【docker】x host+ 是干嘛用的

先说结论: xhost 首先,xhost是允许外部应用程序连接到主机的X显示器: 其次,-v是挂载目录,用于在容器文件系统中挂载主机的X11显示器,以呈现输出视频。 那么x11显示器具体指的是什么? 在计算机…

谁说只有车载HMI界面?现在工业类的HMI界面UI也崛起了

谁说只有车载HMI界面?现在工业类的HMI界面UI也崛起了 引言 艾斯视觉作为行业ui设计和前端开发领域的从业者,其观点始终认为:工业自动化和智能化水平不断提高,人机界面(Human-Machine Interface,简称HMI&a…

铲屎官的必备好物——希喂、352、米家养宠空气净化器分享

对于每一位深爱着家中萌宠的铲屎官而言,无尽的温情往往也伴随着日常生活中的小烦恼。那些不经意间飘散在空气中的毛发,偶尔缠绕在鼻腔或口腔中的细微触感,以及偶尔袭来的不明异味,都是与宠物共度的日子里不可或缺的一部分。幸好随…

2024104读书笔记|《飞花令·田》——独出前门望野田,月明荞麦花如雪,雨中草色绿堪染,水上桃花红欲然

2024104读书笔记|《飞花令田》——独出前门望野田,月明荞麦花如雪,雨中草色绿堪染,水上桃花红欲然 《飞花令田》素心落雪 编著,飞花令得名于唐代诗人韩翃《寒食》中的名句“春城无处不飞花”,类似于行酒令,…

04-Charles中的Map Remote和Map Local介绍

Charles提供了Map Remote和Map Local两个功能。 Map Remote是将指定的网络请求重定向到另一个网址。Map Local是将指定的网络请求重定向到本地文件。 一、Map Remote 假设代码中调用了接口A,但是接口A的响应结果不能满足需求;此时,有另一个…

【传知代码】智慧医疗:纹理特征VS卷积特征(论文复现)

在这个无处不在的技术革新的时代,计算机视觉和机器学习成为了医疗领域中不可或缺的力量。在这篇文章中,我们将探讨两种突出的技术:纹理特征和卷积特征。它们如何在医学影像分析中竞争与协作,为医生提供更深入、更精确的诊断信息&a…

知,已经在行;知行是一件事,不是两件事

97天 知,已经在行;知行是合一并进的,不能把它们分作两件事;学习的开始,就已属于践行了。 真知,即为真行;知行的本体是合一的、并进的,后世学者却把知行一分为二( 近世的…

20.rabbitmq插件实现延迟队列

问题 前面谈到基于死信的延迟队列,存在的问题:如果第一个消息延时时间很长,而第二个消息延时时间很短,第二个消息并不会优先得到执行。 下载插件 地址:https://github.com/rabbitmq/rabbitmq-delayed-message-excha…

ASP.NET Core 6.0 角色授权 和 策略授权

角色授权 Authorize配置 AuthenticationSchemes配置 在授权时,先要鉴权:找出用户信息,如果能找到用户信息,那就证明用户一定登录过。这里要求不仅需要用户信息,而且还要有符合某些条件的用户信息,这样才能让请求访问资源。可以在某个方法/控制器,标记角色,如果要访问…

网络安全Sirius

关于Sirius Sirius是一款功能强大的通用漏洞扫描工具,该工具可以帮助广大研究人员在大多数场景下识别和验证应用程序中存在的安全漏洞。 现如今,信息安全社区仍然是收集网络安全情报数据最佳且最有利的来源,而且社区本身的表现经常会优于商…

【前端 11】初探DOM

JavaScript 对象 - DOM 初探 在Web开发中,DOM(Document Object Model,文档对象模型)是一个至关重要的概念。它不仅仅是一个API,更是Web页面与JavaScript代码之间的桥梁,允许开发者通过编程的方式动态地访问…

名家笔下的端午

文章目录 [北宋]苏轼《浣溪沙端午》[北宋]欧阳修《渔家傲五月榴花妖艳烘》梁实秋汪曾祺迟子建谈正衡苏童[北宋]苏轼《浣溪沙端午》 轻汗微微透碧纨,明朝端午浴芳兰。流香涨腻满晴川。 彩线轻缠红玉臂,小符斜挂绿云鬟。佳人相见一千年。 苏轼被贬惠州时,唯有王朝云矢志跟随…

influxdb1.8数据备份和恢复、自动备份(记录版)

一、数据备份 这里备份到 home 目录下&#xff0c;windows 和 linux 随意 influxd restore -portable <备份目录路径> influxd restore -portable /home 执行效果图&#xff1a; 二、数据恢复 influxd restore -portable <备份目录> influxd restore -port…