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

文章目录

  • 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-provisionernamespace: 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: ServiceAccountname: nfs-client-provisionernamespace: default
roleRef:kind: ClusterRolename: nfs-client-provisioner-runnerapiGroup: rbac.authorization.k8s.io
---
kind: Role
apiVersion: rbac.authorization.k8s.io/v1
metadata:name: leader-locking-nfs-client-provisionernamespace: 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-provisionernamespace: default
subjects:- kind: ServiceAccountname: nfs-client-provisionernamespace: default
roleRef:kind: Rolename: leader-locking-nfs-client-provisionerapiGroup: 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: 1strategy:type: Recreateselector:matchLabels:app: nfs-client-provisionertemplate:metadata:labels:app: nfs-client-provisionerspec:serviceAccount: nfs-client-provisionercontainers:- name: nfs-client-provisionerimage: registry.cn-beijing.aliyuncs.com/pylixm/nfs-subdir-external-provisioner:v4.0.0volumeMounts:- name: nfs-client-rootmountPath: /persistentvolumesenv:- name: PROVISIONER_NAMEvalue: k8s-sigs.io/nfs-subdir-external-provisioner- name: NFS_SERVERvalue: 192.168.10.14- name: NFS_PATHvalue: /nfsdatavolumes:- name: nfs-client-rootnfs:server: 192.168.10.14path: /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://xiahunao.cn/news/3269630.html

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

相关文章

免费的批量自动处理工具,让重复工作一键搞定

对于一些重复的工作,大部分情况下我们可以借助工具批量自动处理,无需手动一个一个去操作。小编今天就和大家分享几款可以一键帮我们搞定重复任务的免费工具。 1.TinyTask:解放双手的自动化神器 TinyTask是一款小巧但功能强大的自动化工具&a…

如何用AP525采集【车机播放的扫频信号】的频响曲线

一.测试目的 车机播放20~20khz的扫频信号,这个信号从功放的输出端(eg. CH1)接入到AP525的模拟输入端(eg. Analog input),通过APx500 软件分析采集回来的扫频信号的频响曲线 二.APx500输出输入配置 三.生成扫频信号 1…

习题2.25~2.26

没啥需要解释的,直接贴代码和执行结果 2.25 (def x (list (list 7))) (first (first x) )(def x (list 1 3 (list 5 7) 9)) (first (rest (first (rest (rest x)))))(def x (list 1 (list 2 (list 3 (list 4 (list 5 (list 6 7) )))))) (first (rest (first (rest (…

magento2 安装win环境和linux环境

win10 安装 安装前提,php,mysql,apach 或nginx 提前安装好 并且要php配置文件里,php.ini 把错误打开 display_errorsOn开始安装 检查环境 填写数据库信息 和ssl信息,如果ssl信息没有,则可以忽略 填写域名和后台地址&#xff0…

已解决丨怎么快速的让IP地址实现HTTPS访问?

要快速让IP地址实现HTTPS访问,可以遵循以下简洁步骤: 1. 确认公网IP地址 确保你拥有一个固定的公网IP地址,因为HTTPS访问需要通过互联网上的公网IP进行。 2. 选择证书颁发机构(CA) 选择一个受信任的证书颁发机构&a…

波特率和比特率的区别联系【理解】

波特率(Baud rate):表示单位时间内载波调制状态变化的次数 ,单位为波特(Baud); 【值得注意的是】单位“波特”本身就已经是代表每秒的调制数,不能用“波特每秒”(Baud per second)为…

大疆创新2025校招内推

大疆2025校招-内推 一、我们是谁? 大疆研发软件团队,致力于把大疆的硬件设备和大疆用户紧密连接在一起,我们的使命是“让机器有温度,让数据会说话”。 在消费和手持团队,我们的温度来自于激发用户灵感并助力用户创作…

代理服务器是什么?它的工作原理是什么?

在浩瀚的网络世界中,代理服务器作为连接用户与目标服务器的桥梁,扮演着至关重要的角色。它不仅能够优化网络访问速度,还能增强数据安全性,保护用户隐私。那么,代理服务器究竟是如何工作的呢?本文将深入解析…

【C++修炼之路 第五章】模拟实现 string 类

开发日志: /* * 开发日志 * 1、基本 string 类框架:string 域(自定义命名空间) 私有成员 * 2、基本函数:一般构造 拷贝构造 析构 以下分组实现一些 string 类常见常用的函数 * 3、基本访问操作:c_st…

10 VUE Element

文章目录 VUE1、概述2、快速入门3、Vue 指令4、生命周期5、案例 Elemant1、快速入门2、Element 布局3、常用组件-案例 VUE 1、概述 Vue 是一套前端框架,免除原生JavaScript中的DOM操作,简化书写基于MVVM(Model-View-ViewModel)思想,实现数据…

EB Tresos 基于S32K3芯片 ICU模块实现gpio外部中断配置[后续更新实现icu模块的其他功能]

环境:eb tresos 27.0.1 port 模块配置: 选择一个具有erq功能的引脚并配置为erq功能。如下我选择的是 PTB0 -EIRQ[8] - SIUL2_EXT_IRQ_8_15_ISR Platform 模块配置 在这个模块中配置中断的开关以及中断句柄 ICU模块配置 具体配置参考博客:…

一文总结代理:代理模式、代理服务器

概述 代理在计算机编程领域,是一个很通用的概念,包括:代理设计模式,代理服务器等。 代理类持有具体实现类的实例,将在代理类上的操作转化为实例上方法的调用。为某个对象提供一个代理,以控制对这个对象的…

本地部署Graphhopper路径规划服务(graphhopper.sh启动版)

文章目录 文章参考源码获取一、配置Java环境变量二、配置Maven环境变量三、构建graphhopper步骤1. 下载数据2. 配置graphhopper配置文件config-example.yml3. 在项目中启动命令行执行./graphhopper.sh build3.1|、遇到的问题3.1.1、pom.xml中front-maven-plugin-无法下载npm6.1…

linux nginx 命令记录,和转发

nginx: 查看配置文件:sudo find / -name nginx.conf 配置文件:/etc/nginx/nginx.conf 检查nginx.conf文件正确性 nginx -t -c /path/to/nginx.conf 或者 有nginx命令执行 nginx -t 查找nginx 可执行文件:which nginx /usr/sbin/nginx 安装Ng…

C语言中内存四区的本质分析

数据类型本质分析 1 数据类型的概念 “类型”是对数据的抽象 类型相同的数据有相同的表示形式、存储格式以及相关的操作 程序中使用的所有数据都必定属于某一种数据类型 2 数据类型的本质 数据类型可理解为创建变量的模具:是固定内存大小的别名。 数据类型的作…

【cuda】在老服务器上配置CUDA+cmake开发环境

在老服务器上配置CUDA+cmake开发环境 服务器x86_64,系统是centos8,cmake版本是2.8.10 背景 不能更换服务器系统无法下载CUDA安装包解决思路 使用可以至此CUDA开发的较老的cmake直接移植CUDA环境配置环境中遇到的问题 服务器无法编译cmake移植CUDA编译器及部分库,代码无法…

vue3 使用Mock

官网: http://mockjs.com/ 安装 npm install mockjs -Dsteps1: main.js 文件引入 import /api/mock.jssteps2: src/api/mock.js import Mock from mockjs import homeApi from ./mockData/home /*** 1.拦截的路径:mock拦截了正常NetWork/网络请求,数据正常响应* 2.方法* …

PVE环境中调整虚拟机磁盘大小

我的希望将PVE中的虚拟机磁盘调整一下,增加20GB。在查询了一些资料后,做一下总结教程。 环境是 PVE8.2.2 版本,虚拟机系统是centos7.9.2009-minimal, 安装系统时划分磁盘分区方式是默认分区方式(不同分区方式下&#…

Redis的相关基础了解

1. 什么是nosql nosql【not only sql】不仅仅是sql。所有非关系型数据库的统称,除去关系型数据库之外都是非关系数据库 2. NOSQL和RDBMS的区别 RDBMS——关系型数据库的通常 高度组织化 结构化 数据结构化查询语言(SQL) sql语句数据和关系都存储在单独的表中数据操纵…

八、桥接模式

文章目录 1 基本介绍2 案例2.1 OperatingSystem 抽象类2.2 LinuxOS 类2.3 WindowsOS 类2.4 FileOperation 类2.5 FileAppender 类2.6 FileReplicator 类2.7 Client 类2.8 Client 类运行结果2.9 总结 3 各角色之间的关系3.1 角色3.1.1 Implementor ( 实现者 )3.1.2 ConcreteImpl…