轻松掌握在已有K8s环境上安装KubeSphere

news2024/9/28 3:27:42

在这里插入图片描述

官方文档地址:https://kubesphere.io/zh/docs/v3.3/quick-start/minimal-kubesphere-on-k8s/

1、基于已有K8s环境上安装KubeSphere

1、前置环境
1、安装nfs及动态存储类PV/PVC

安装默认存储类型,这里使用nfs,关于nfs的安装在PV/PVC的文章里有介绍,注意这里需要安装动态存储类PV/PVC在这里插入图片描述

2、安装监控集群指标组件metrics-server

监控集群指标组件metrics-server,如cpu的内存等。按如下安装:

kubectl apply -f metrics-server.yaml

apiVersion: v1
kind: ServiceAccount
metadata:
  labels:
    k8s-app: metrics-server
  name: metrics-server
  namespace: kube-system
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  labels:
    k8s-app: metrics-server
    rbac.authorization.k8s.io/aggregate-to-admin: "true"
    rbac.authorization.k8s.io/aggregate-to-edit: "true"
    rbac.authorization.k8s.io/aggregate-to-view: "true"
  name: system:aggregated-metrics-reader
rules:
- apiGroups:
  - metrics.k8s.io
  resources:
  - pods
  - nodes
  verbs:
  - get
  - list
  - watch
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  labels:
    k8s-app: metrics-server
  name: system:metrics-server
rules:
- apiGroups:
  - ""
  resources:
  - pods
  - nodes
  - nodes/stats
  - namespaces
  - configmaps
  verbs:
  - get
  - list
  - watch
---
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
  labels:
    k8s-app: metrics-server
  name: metrics-server-auth-reader
  namespace: kube-system
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: Role
  name: extension-apiserver-authentication-reader
subjects:
- kind: ServiceAccount
  name: metrics-server
  namespace: kube-system
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  labels:
    k8s-app: metrics-server
  name: metrics-server:system:auth-delegator
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: system:auth-delegator
subjects:
- kind: ServiceAccount
  name: metrics-server
  namespace: kube-system
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  labels:
    k8s-app: metrics-server
  name: system:metrics-server
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: system:metrics-server
subjects:
- kind: ServiceAccount
  name: metrics-server
  namespace: kube-system
---
apiVersion: v1
kind: Service
metadata:
  labels:
    k8s-app: metrics-server
  name: metrics-server
  namespace: kube-system
spec:
  ports:
  - name: https
    port: 443
    protocol: TCP
    targetPort: https
  selector:
    k8s-app: metrics-server
---
apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    k8s-app: metrics-server
  name: metrics-server
  namespace: kube-system
spec:
  selector:
    matchLabels:
      k8s-app: metrics-server
  strategy:
    rollingUpdate:
      maxUnavailable: 0
  template:
    metadata:
      labels:
        k8s-app: metrics-server
    spec:
      containers:
      - args:
        - --cert-dir=/tmp
        - --kubelet-insecure-tls
        - --secure-port=4443
        - --kubelet-preferred-address-types=InternalIP,ExternalIP,Hostname
        - --kubelet-use-node-status-port
        image: registry.cn-hangzhou.aliyuncs.com/lfy_k8s_images/metrics-server:v0.4.3
        imagePullPolicy: IfNotPresent
        livenessProbe:
          failureThreshold: 3
          httpGet:
            path: /livez
            port: https
            scheme: HTTPS
          periodSeconds: 10
        name: metrics-server
        ports:
        - containerPort: 4443
          name: https
          protocol: TCP
        readinessProbe:
          failureThreshold: 3
          httpGet:
            path: /readyz
            port: https
            scheme: HTTPS
          periodSeconds: 10
        securityContext:
          readOnlyRootFilesystem: true
          runAsNonRoot: true
          runAsUser: 1000
        volumeMounts:
        - mountPath: /tmp
          name: tmp-dir
      nodeSelector:
        kubernetes.io/os: linux
      priorityClassName: system-cluster-critical
      serviceAccountName: metrics-server
      volumes:
      - emptyDir: {}
        name: tmp-dir
---
apiVersion: apiregistration.k8s.io/v1
kind: APIService
metadata:
  labels:
    k8s-app: metrics-server
  name: v1beta1.metrics.k8s.io
spec:
  group: metrics.k8s.io
  groupPriorityMinimum: 100
  insecureSkipTLSVerify: true
  service:
    name: metrics-server
    namespace: kube-system
  version: v1beta1
  versionPriority: 100

查询相关pod已经运行起来即可:
在这里插入图片描述

2、安装 KubeSphere

如下图为官网
在这里插入图片描述
我们通过现将文件下载下来,然后需要修改修改cluster-configuration文件配置信息,在执行安装:

wget https://github.com/kubesphere/ks-installer/releases/download/v3.3.2/kubesphere-installer.yaml

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

修改cluster-configuration如下箭头的值为TRUE:开启对etcd的监控、修改etcd的IP地址、redis的监控、openldap为轻量级目录访问协议。

在这里插入图片描述
开启系统告警功能、开启日志审计功能;

在这里插入图片描述
开启Devops功能、集群的事件功能;在这里插入图片描述
开启日志功能、metrics-server不用打开,之前我们从安装过了(修改的阿里云镜像),如果打开会从官方下镜像,官方访问不通
在这里插入图片描述
开启网络策略、并类型为calico(一开始安装k8s时用的就是calico)

在这里插入图片描述
开启应用商店、微服务治理在这里插入图片描述
执行如下命令安装:

kubectl apply -f kubesphere-installer.yaml

kubectl apply -f cluster-configuration.yaml

官网提供了个查看安装日志的命令如下:(如果我的命令不行,可以到官网复制)

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

在这里插入图片描述
以上日志箭头如果有failed数量,需要检查下看下问题,否则无法进行。

整个安装需要20分钟左右,在日志里可以看到安装成功,并打印了访问地址和账号密码,可以使用任意一台机器的地址访问。如下所示:(提示每台虚拟机内存高点,处理器也分配多点,我配了8G8核处理器每台,一开始配置太低卡死导致多次安装失败。)
在这里插入图片描述
这时最好检查下所有的pod都在运行中,然后在访问,对于Imagepull的问题只需等待镜像拉去即可,镜像拉去的地址我们之前都改成了aliyun,不确定的话可以去查找下配置。其中有个Pod报的如下错误:

在这里插入图片描述
解决方法执行以下命令:(解决etcd监控证书找不到问题)

kubectl -n kubesphere-monitoring-system create secret generic kube-etcd-client-certs  --from-file=etcd-client-ca.crt=/etc/kubernetes/pki/etcd/ca.crt  --from-file=etcd-client.crt=/etc/kubernetes/pki/apiserver-etcd-client.crt  --from-file=etcd-client.key=/etc/kubernetes/pki/apiserver-etcd-client.key

等待pod全部running后,登录下图:在这里插入图片描述

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

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

相关文章

出道的第八年,依然AI着......

今天,是数说故事8周岁的生日 8年,和您一起走过2,922天 8年,我们对AI的探索从未停止 8年,我们将数据的热爱进行到底 因为热“AI” 我们与您的故事有了连接 8年的连接,我们与您也擦出了无数花火 我们将每一个闪烁的…

Optional参数类使用

目录 介绍 使用 常用方法 是否为空 对象比较 Optional 是一个对象容器,具有以下两个特点: 使用 1. 创建 2. 获取: 3. 判断: 4. 过滤: 5. 映射: 介绍 在使用值判断的时候使用方便 使用 import j…

linux系统TP-ti,tsc2046外设调试

一、整体调试思路 tp外设属于比较常见且比较简单的外设,今天以ti,tsc2046这款为例简述下tp外设的调试。 整体思路 1、配置设备树----驱动调试的device部分 2、tp驱动编译及匹配—driver部分 3、驱动整体调试 二、配置设备树 对于ti,tsc2046我们可以参考内核Docum…

复杂美科技多项区块链技术产品被纳入《2021-2022区块链产业图谱》区块链蓝皮书

2022年9月3日,由中国社会科学院社会科学文献出版社、北京金融科技产业联盟指导,北京区块链技术应用协会(BBAA)主办的 “Web 3.0发展趋势高峰论坛暨2022元宇宙、区块链、金融科技蓝皮书发布会” 在服贸会上成功举办。 大会隆重发布…

身份鉴别解读与技术实现分析(1)

6.1.4.1 身份鉴别 本项要求包括: a) 应对登录的用户进行身份标识和鉴别,身份标识具有唯一性,身份鉴别信息具有复杂度要求并定期更换; b) 应具有登录失败处理功能,应配置并启用结束会话、限制非法登录次数和当登录连接超时自动退出等相关措施 在等级保护体系中,级别越高…

数字时代下网络安全的重要性

在数字时代,网络安全比以往任何时候都更加重要。 随着我们越来越依赖技术来存储和传输敏感信息,网络攻击的风险也在增加。网络攻击可能来自世界任何地方,对个人和企业都可能是毁灭性的。 AkamaiTechnologies首席安全官BoazGelbord在最近的一…

【YOLO系列】YOLOv7论文超详细解读(翻译 +学习笔记)

前言 终于读到传说中的YOLOv7了~≖‿≖✧ 这篇是在美团的v6出来不到一个月就高调登场,作者还是我们熟悉的AB大神(对,就是v4那个),读起来又是“熟悉”的感觉(贯穿了我的整个五一假期(╯&#x…

Vue组件设计-多列表拖拽交换排序

在前端开发中,拖拽排序是一种提升用户体验非常好的方式,常见的场景有单列表拖拽排序,多列表拖拽交换排序,比如以下这种效果: 下面将以这种效果为例,设计一个组件。 1. 安装所需依赖 npm install vuedragg…

多模态的过渡态——latent modal

背景: 随着大模型的推进,单模态的大模型已经无法很好的满足现实工作的需要。很多科研团队和机构开始多模态的研究,多模态的几种机构在前面的文章已经介绍过,这部分不做过多介绍。最理想的多模态应该就是没有模态,单一…

持续集成/持续交付——JenkinsFile详细使用教程

JenkinsFile详细使用教程 一、BlueOcean1、BlueOcean 概念2、BlueOcean 特性3、BlueOcean 安装 二、Pipeline 简介1、Jenkins Pipeline 概念2、Jenkinsfile 语法类型:3、采用Jenkins 任务页面输入a. Jenkins中创建一个 pipeline 任务b. Definition 中选择 Pipeline …

电脑提示msvcp140.dll丢失的解决方法,msvcp140.dll丢失修复教程

msvcp140.dll是Microsoft Visual C Redistributable所需的一个动态链接库文件,它包含了Visual C运行库中的一些函数和类库。这个文件通常出现在Windows操作系统中,用于支持使用Visual C编写的程序的正常运行。如果系统缺少或损坏了这个文件,可…

计算机组成原理 4.2.1存储芯片连接

连接原理 主存储器 通过数据总线、地址总线和控制总线和CPU相连数据总线的位数正比于数据传输率地址总线的位数决定可寻址的最大地址空间控制总线(读/写)指出总线周期的类型和本次输入/输出完成的时刻 但是实际中存储芯片往往很小难以满足地址和数据的位数需求,此…

如何在云服务器上搭建ChatGLM

摘录:ChatGPT重新点燃了AI,然后OpenAI却没有向我们开放ChatGPT,虽然有些人通过了一下手段注册了账号,但是不久就被OpenAI拉入了黑名单。3月份我国的百度也推出了和ChatGPT对标的文言一心,随后阿里也推出了自己的文本对…

李雨浛:在数据、网络与民意之间——用计算社会科学方法探讨数字媒体与可持续未来 | 提升之路系列(八)...

导读 为了发挥清华大学多学科优势,搭建跨学科交叉融合平台,创新跨学科交叉培养模式,培养具有大数据思维和应用创新的“π”型人才,由清华大学研究生院、清华大学大数据研究中心及相关院系共同设计组织的“清华大学大数据能力提升项…

创建并使用shell脚本

1,查询 bash解释器 所在位置 创建前,我们需要先知道 bash 解释器所在的位置,以方便在头部写声明。一般位置是在 /bin/bash 但是有的是在 /usr/bin/bash ,所以需要查找一下。 文件位置查找命令:whereis xxx rootarmb…

Probabilistic and Geometric Depth: Detecting Objects in Perspective 论文学习

论文地址:Probabilistic and Geometric Depth: Detecting Objects in Perspective Github 地址:Probabilistic and Geometric Depth: Detecting Objects in Perspective 1. 解决了什么问题? 3D 目标检测在许多应用中发挥着重要作用&#xf…

分析的四个维度

我们都听过这句格言“数据是新石油”——一种宝贵、丰富的资源,只有提炼后才有用。然而,最引人注目但又令人望而生畏的比较之一是将船只送入海洋进行石油勘探。有些会失败,有些会有重大发现。 深海勘探和钻探取决于精确测绘和对海底的清晰认…

【计算机网络】图解内容分发网络 CDN

【计算机网络】图解内容分发网络 CDN 参考资料: 用了CDN就一定比不用更快吗? 什么是内容分发网络 高性能利器:CDN我建议你好好学一下! 文章目录 【计算机网络】图解内容分发网络 CDN一、CDN 概述1.1、什么是 CDN1.2、为什么需要 …

数字化转型导师坚鹏:数字化转型背景下的企业人力资源管理

企业数字化转型背景下的企业人力资源管理 课程背景: 很多企业存在以下问题: 不清楚企业数字化转型目前的发展阶段与重要应用? 不知道企业数字化转型给企业人力资源管理带来哪些机遇与挑战? 不知道企业数字化转型背景下如何…

SpringBoot 项目如何实现动态配置多数据源?

简介: dynamic-datasource-spring-boot-starter 是一个基于springboot的快速集成多数据源的启动器。 其支持 Jdk 1.7, SpringBoot 1.4.x 1.5.x 2.x.x。 特性: 支持 数据源分组 ,适用于多种场景 纯粹多库 读写分离 一主多从 混合模式。支持…