KubeSphere 3.4离线安装

一、基本环境介绍

1、我是已经使用二进制方式安装了kubernetes集群,安装的版本是1.22.1版本,容器运行时是Containerd。
2、我已经安装了私有仓库harbor

二、KubeSphere 3.4离线安装

我在我现有的环境上想安装KubeSphere来做流水线自动部署。
我按照KubeSphere的官网进程安装,地址https://kubesphere.io/zh/docs/v3.4/ ,并且我使用目前社区版的最新版本3.4
选择离线安装的文档
在这里插入图片描述

进入到离线安装文档处,因为我的服务器上无法访问到github,所以我选择离线安装

2.1查看安装条件:

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, 我安装的是v1.22.1版本,符合要求

2、可用 CPU > 1 核;内存 > 2 G。CPU 必须为 x86_64,暂时不支持 Arm 架构的 CPU。我的集群是三个节点,一主两从, 8核,内存64G符合要求
3、Kubernetes 集群已配置默认 StorageClass ,通过kubectl get sc 查看
在这里插入图片描述
开始我的这个本地存储类不是默认的,通过下面语句设置默认存储

  • 将sc设置为默认存储
    kubectl patch sc local-storage -p ‘{“metadata”: {“annotations”: {“storageclass.beta.kubernetes.io/is-default-class”: “true”}}}’

4、使用 --cluster-signing-cert-file 和 --cluster-signing-key-file 参数启动集群时,kube-apiserver 将启用 CSR 签名功能
这两个设置是在kube-controller-manager的启动脚本里面设置的,我的这个脚本一开始就设置好了的

2.2下载私有镜像

我已经安装好了harbor私有仓库
1、从浏览器输入下面连接下载镜像清单文件 images-list.txt到本地

https://github.com/kubesphere/ks-installer/releases/download/v3.4.1/images-list.txt

2、下载 offline-installation-tool.sh

https://github.com/kubesphere/ks-installer/releases/download/v3.4.1/offline-installation-tool.sh

3、把上面这两个文件放到安装harbor的服务器上

chmod +x offline-installation-tool.sh

4、在 offline-installation-tool.sh 中拉取镜像,这个过程时间比较长

在images-list.txt文件存放目录下,创建kubesphere-images目录,然后再执行下面语句
./offline-installation-tool.sh -s -l images-list.txt -d ./kubesphere-images

5、推送镜像至私有仓库
首先要在harbor中创建下面项目,43.24.36.122:1800是我的harbor地址

weaveworks
kubesphere
fluent
nginxdemos
joosthofman
jaegertracing
istio
elastic
opensearchproject
grafana
thanosio
prom
jimmidyson
ghcr.io
quay.io
jenkins
openpolicyagent
kubeedge
osixia
mirrorgooglecontainers
csiplugin
minio

然后再执行下面语句

./offline-installation-tool.sh -l images-list.txt -d ./kubesphere-images -r 43.24.36.122:1800

2.2 部署

1、在浏览器输入下面连接下载这两个文件,并将它们传输至master01上,用于安装

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

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

2、编辑 cluster-configuration.yaml 添加您的私有镜像仓库

spec:

  persistence:

    storageClass: ""

  authentication:

    jwtSecret: ""

  local_registry: 43.24.36.122:1800 # Add this line manually; make sure you use your own registry address.

因为我要安装devops 需要把这个配置开启,将下面配置改成true
在这里插入图片描述
3、修改kubesphere-installer.yaml里面镜像地址
在这里插入图片描述
4、他这个需要创建pv , 我没有安装自动创建pv的工具,需要手动安装
创建一个localpersistentvolume.yaml文件

apiVersion: v1
kind: PersistentVolume
metadata:
  name: kubesphree-pv
spec:
  capacity:
    storage: 30Gi
  volumeMode: Filesystem
  accessModes:
  - ReadWriteOnce
  persistentVolumeReclaimPolicy: Delete
  storageClassName: local-storage
  local:
    path: /data/disks/ssd1
  nodeAffinity:
    required:
      nodeSelectorTerms:
      - matchExpressions:
        - key: kubernetes.io/hostname
          operator: In
          values:
          - k8s-master01

然后执行下面语句创建

kubectl apply -f localpersistentvolume.yaml

这样就创建了一个pv, 我再安装过程中总共创建了5个pv ,三个30G大小的,两个20G大小的。
5、执行安装操作

kubectl apply -f kubesphere-installer.yaml
kubectl apply -f cluster-configuration.yaml

等待安装完成
http://{IP}:30880 使用默认帐户和密码 admin/P@88w0rd 访问 KubeSphere 的 Web 控制台

<think>嗯,用户之前问过关于Kubernetes的serializeImagePulls配置,现在又转向了KubeSphere 3.4.1版本的monitoring配置。看来他们对Kubernetes生态中的监控和配置比较感兴趣。可能用户正在部署或管理一个Kubernetes集群,尤其是使用KubeSphere这个平台,所以需要了解各个组件的功能。 首先,我需要确认用户的问题是什么。他们想知道在KubeSphere 3.4.1的安装配置文件中,monitoring部分的作用。用户可能是在安装KubeSphere时遇到了配置问题,或者想优化监控设置,所以需要了解每个配置项的意义。 接下来,我需要回忆KubeSphere的监控组件。KubeSphere默认集成了Prometheus、Grafana、Alertmanager等工具,而监控部分在安装配置文件中的设置可能控制这些组件的启用与否,资源分配,存储配置等。用户可能想知道这些配置如何影响整个监控系统的性能和功能。 用户可能的深层需求是确保监控系统稳定运行,或者根据他们的环境调整资源限制,比如调整内存、CPU,或者配置持久化存储以避免数据丢失。他们可能在安装过程中需要定制这些参数,以适应特定的硬件环境或性能要求。 另外,用户之前的问题涉及到资源优化(如serializeImagePulls),所以可能他们现在关心的是如何有效利用资源,避免监控组件占用过多资源,或者如何扩展监控能力。需要解释每个配置参数的作用,比如enable选项是否启用监控,volumeSize决定存储大小,exporter的配置如何影响数据收集等。 同时,用户可能需要知道如何修改这些配置,比如在安装前调整配置文件,或者后期通过KubeSphere的控制台进行修改。还要提醒注意事项,比如持久化存储的重要性,资源分配不足可能导致的问题,以及如何访问监控界面。 最后,确保回答结构清晰,分点说明,并给出实际配置示例,这样用户能直观理解。需要避免过于技术化的术语,但又要准确,因为用户可能有运维背景,但具体到KubeSphere的细节可能需要详细解释。</think>--- ### KubeSphere 3.4.1 安装配置文件中 `monitoring` 模块的作用详解 在 KubeSphere 3.4.1 的安装配置文件(通常为 `config-sample.yaml`)中,`monitoring` 部分用于 **配置集群监控与告警系统的部署参数**。它是 KubeSphere 可观测性体系的核心模块,默认集成了 Prometheus、Alertmanager、Grafana 等组件。以下是其核心功能及配置细节: --- #### 1. **监控模块的核心功能** - **资源监控**:实时采集集群节点、Pod、容器等资源的 CPU、内存、磁盘、网络使用数据。 - **应用监控**:支持对部署的微服务、中间件(如 MySQL、Redis)进行指标收集与可视化。 - **告警管理**:通过 Alertmanager 配置阈值告警,支持邮件、Slack、Webhook 等通知方式。 - **日志集成**:与 Elasticsearch、Fluent Bit 等工具协同,提供日志检索与分析能力(需额外配置)。 --- #### 2. **`monitoring` 配置项详解** 在 `config-sample.yaml` 中,`monitoring` 的典型配置结构如下: ```yaml monitoring: enable: true # 是否启用监控模块 prometheusReplicas: 2 # Prometheus 实例副本数(高可用部署) prometheusMemoryRequest: 4Gi # Prometheus 内存请求 prometheusVolumeSize: 20Gi # Prometheus 数据存储卷大小 alertmanagerReplicas: 2 # Alertmanager 实例副本数 grafana: enable: true # 是否启用 Grafana kube_rbac_proxy: enabled: false # 是否启用 RBAC 代理(安全增强) node_exporter: enabled: true # 是否启用 Node Exporter(节点指标采集) kube_state_metrics: enabled: true # 是否启用 Kube State Metrics(K8s 资源状态指标) ``` ##### **关键配置项说明**: | 配置项 | 作用 | |-------------------------|----------------------------------------------------------------------| | `enable` | 总开关,禁用后监控模块完全不会部署。 | | `prometheusReplicas` | 控制 Prometheus 实例数,设为 `2` 可实现高可用(需持久化存储支持)。 | | `prometheusVolumeSize` | 定义 Prometheus 数据存储卷大小,影响历史数据保留时长。 | | `grafana.enable` | 是否部署 Grafana,用于自定义仪表盘和可视化(默认内置 KubeSphere 面板)。| | `node_exporter.enabled` | 部署 Node Exporter 以采集节点级指标(如 CPU、内存、磁盘等)。 | | `kube_state_metrics` | 采集 Kubernetes 资源状态(如 Deployment、Pod 状态)。 | --- #### 3. **部署后的核心组件** 启用 `monitoring` 后,KubeSphere 会自动部署以下组件: 1. **Prometheus** - 负责指标采集、存储与查询。 - 数据存储路径:`/prometheus`(默认使用 PVC 持久化)。 2. **Alertmanager** - 处理告警规则,发送通知。 - 与 Prometheus 规则文件(`prometheus-rules`)联动。 3. **Grafana**(可选) - 提供自定义仪表盘,默认集成 KubeSphere 预设面板。 4. **Node Exporter** - 部署到每个节点,采集硬件及操作系统指标。 5. **Kube State Metrics** - 生成 Kubernetes 资源状态指标(如 Pod 重启次数、Deployment 副本数)。 --- #### 4. **配置建议与注意事项** ##### **资源分配优化**: - **Prometheus 内存**: 默认 `4Gi` 可能不足,建议根据集群规模调整: - 小型集群(<50 节点):`4Gi` - 中型集群(50-200 节点):`8Gi` - 大型集群:横向扩展(`prometheusReplicas`) + 分片(需自定义配置)。 - **存储卷大小**: `prometheusVolumeSize` 需根据数据保留时间调整: - 默认 `20Gi` 保留约 7 天数据。 - 长期存储建议扩展至 `100Gi` 或对接外部存储(如 S3)。 ##### **安全配置**: - **RBAC 代理**: 启用 `kube_rbac_proxy.enabled: true` 可增强 API 访问安全性,但会增加资源开销。 - **访问控制**: Grafana 和 Prometheus 默认通过 KubeSphere 控制台集成,无需单独暴露服务。 ##### **禁用非必要组件**: - 若仅需基础监控,可关闭 `grafana.enable: false`(使用 KubeSphere 内置面板)。 - 若节点指标由其他监控系统采集,可关闭 `node_exporter.enabled: false`。 --- #### 5. **常见问题排查** ##### **问题 1:Prometheus 频繁 OOM(内存溢出)** - **表现**:Prometheus Pod 频繁重启,日志显示 `OOMKilled`。 - **解决**: 1. 增加 `prometheusMemoryRequest`(如 `8Gi`)。 2. 优化 Prometheus 抓取配置,减少非必要指标(需修改 `prometheus-config` ConfigMap)。 ##### **问题 2:监控数据无法持久化** - **表现**:重启后历史数据丢失。 - **解决**: 1. 确认 StorageClass 可用(`kubectl get storageclass`)。 2. 检查 PVC 是否成功绑定(`kubectl get pvc -n kubesphere-monitoring-system`)。 ##### **问题 3:Grafana 无法访问** - **表现**:控制台提示 “Grafana 服务不可用”。 - **解决**: 1. 确认 `grafana.enable` 设为 `true`。 2. 检查 Grafana Pod 状态(`kubectl get pod -n kubesphere-monitoring-system`)。 --- #### 6. **生产环境最佳实践** 1. **启用持久化存储**: 避免使用 `emptyDir`,优先选择高性能块存储(如 SSD)。 2. **监控组件隔离**: 将 Prometheus、Alertmanager 调度到独立节点,避免与业务 Pod 竞争资源。 3. **定期备份**: 备份 Prometheus 数据目录或配置定期快照(如使用 Thanos)。 4. **告警规则定制**: 通过 KubeSphere 控制台自定义告警规则(如 Pod 异常重启、节点磁盘压力)。 --- ### 总结 KubeSphere 3.4.1 的 `monitoring` 配置模块是集群可观测性的核心,通过灵活调整参数可平衡监控能力与资源消耗。生产环境中需重点关注 Prometheus 的资源分配、存储持久化及高可用部署,同时结合业务需求定制告警规则与仪表盘。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

javascript_good

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值