麒麟v10 arm64 部署 kubesphere 3.4 修改记录

arm64环境,默认安装 kubesphere 3.4 ,需要修改几个地方的镜像,并且会出现日志无法显示

1 fluentbit:v1.9.4 报错

<jemalloc>: Unsupported system page size
Error in GnuTLS initialization: ASN1 parser: Element was not found.
<jemalloc>: Unsupported system page size
<jemalloc>: Unsupported system page size
<jemalloc>: Unsupported system page size
malloc: Cannot allocate memory
level=error msg="Fluent bit exited" error="exit status 1"
level=info msg=backoff delay=8s

解决

更换为 fluentbit:v2.0.6

kubectl patch fluentbit -n kubesphere-logging-system fluent-bit --type='json' -p='[{"op": "replace", "path": "/spec/image", "value":"10.1.7.220/aicore/arm64/kubesphere/fluent-bit:v2.0.6"}]'`

2 defaultbackend 架构错误

里面写死了 defaultbackend-amd64:1.4

解决

更换为 defaultbackend-arm64:1.4

kubectl set image -n kubesphere-controls-system deployment/default-http-backend default-http-backend=defaultbackend-arm64:1.4

3 elasticsearch-curator 架构错误

kubesphere/elasticsearch-curator:v5.7.6 只有amd-x64

解决

更换为 kubesphere/elasticsearch-curator:v5.7.6-arm64

kubectl patch job/elasticsearch-logging-curator-elasticsearch-curator-28826940 -n kubesphere-logging-system \
--type='json' -p='[{"op": "replace", "path": "/spec/template/spec/containers/elasticsearch-curator/image", "value":"kubesphere/elasticsearch-curator:v5.7.6-arm64"}]'

4 buysbox:laster 加载不到

目前 docker-io 访问不了,但是 opensearch 的 initContainers 使用 buysbox:laster,但 imagePullPolicy:always, 需要修改

解决

kubectl patch StatefulSet/opensearch-cluster-data -n kubesphere-logging-system --type='json' -p='[{"op": "replace", "path": "/spec/template/spec/initContainers/0/imagePullPolicy", "value":"IfNotPresent"}]'
kubectl patch StatefulSet/opensearch-cluster-master -n kubesphere-logging-system --type='json' -p='[{"op": "replace", "path": "/spec/template/spec/initContainers/0/imagePullPolicy", "value":"IfNotPresent"}]'

5 日志无法显示

在这里插入图片描述
根据这个帖子解决了,=
https://ask.kubesphere.io/forum/d/23443-kubesphere341-jie-ru-wai-bu-elasticsearchhou-eszhong-ke-yi-shou-ji-dao-ri-zhi-ye-mian-cha-bu-dao-eszhong-ke-yi-jian-suo/9

原因:

经过检查发现是配置字典 kubesphere-config 中的 indexPrefix 和 output 中的 logstashPrefix 配置不一致导致的

解决方案:

如果在kubesphere 页面进行容器日志查询、资源事件查询、审计日志查询需要配置kubesphere-config 中的 indexPrefix 和 output 中的 logstashPrefix一致

kubesphere-config中的配置如下:

在这里插入图片描述

output 中的 logstashPrefix 配置如下:

在这里插入图片描述
在这里插入图片描述

fluent-bit 未启动

在反复安装卸载后,有时 fluent-bit 会没出现

解决

创建 fluent-bit.yaml

apiVersion: logging.kubesphere.io/v1alpha2
kind: FluentBit
metadata:name: fluent-bitnamespace: kubesphere-logging-systemlabels:app.kubernetes.io/name: fluent-bit
spec:image: kubesphere/fluent-bit:v2.0.6positionDB:emptyDir: {}resources:limits:cpu: 500mmemory: 200Mirequests:cpu: 10mmemory: 25MifluentBitConfigName: fluent-bit-configtolerations:- operator: Existsaffinity:nodeAffinity:requiredDuringSchedulingIgnoredDuringExecution:nodeSelectorTerms:- matchExpressions:- key: node-role.kubernetes.io/edgeoperator: DoesNotExist

执行
kubectl create -f fluent-bit.yaml

整理安装脚本

下载 源码
https://github.com/kubesphere/ks-installer

修改文件

roles\download\defaults\main.yml

#ks-logger
docker_elasticsearch_curator_repo: "{{ base_repo }}{{ namespace_override | default('kubesphere') }}/elasticsearch-curator"
- docker_elasticsearch_curator_tag: v5.7.6-amd64
+ docker_elasticsearch_curator_tag: v5.7.6-arm64#ingress:
- defaultbackend_repo: "{{ base_repo }}{{ namespace_override | default('mirrorgooglecontainers') }}/defaultbackend-arm64"
+ defaultbackend_repo: "{{ base_repo }}{{ namespace_override | default('mirrorgooglecontainers') }}/defaultbackend-arm64"
defaultbackend_tag: 1.4

roles\common\templates\custom-values-opensearch-data.yaml.j2

global:
-  dockerRegistry: ""
+  dockerRegistry: "{{ base_repo }}"

roles\common\templates\custom-values-opensearch-master.yaml.j2

global:
-  dockerRegistry: ""
+  dockerRegistry: "{{ base_repo }}"

roles\ks-core\config\tasks\main.yaml

- block:- name: KubeSphere | Getting es index prefixshell: >
-      {{ bin_dir }}/kubectl get cm -n kubesphere-system kubesphere-config -o jsonpath='{.data.kubesphere\.yaml}' | grep "logging:" -A 2 | grep "indexPrefix" | awk '{print $2}'
+      {{ bin_dir }}/kubectl get cm -n kubesphere-system kubesphere-config -o jsonpath='{.data.kubesphere\.yaml}' | grep "logging:" -A 6 | grep "indexPrefix" | awk '{print $2}'register: es_indexPrefix

roles\ks-core\config\templates\kubesphere-config.yaml.j2

{% if esIndexPrefix is defined %}indexPrefix: {{ esIndexPrefix }}
- {% elif common.opensearch.opensearchPrefix is defined %}
+ {% elif common.opensearch.opensearchPrefix is defined and common.opensearch.enabled == true %}indexPrefix: ks-{{ common.opensearch.opensearchPrefix }}-logging
{% else %}
-      indexPrefix: ks-{{ common.es.elkPrefix }}-log
+      indexPrefix: ks-{{ common.es.elkPrefix }}-logging
{% endif %}- {% if common.opensearch.opensearchPrefix is defined  %}
+ {% if common.opensearch.opensearchPrefix is defined and common.opensearch.enabled == true  %}indexPrefix: ks-{{ common.opensearch.opensearchPrefix }}-events
{% else %}indexPrefix: ks-{{ common.es.elkPrefix }}-events
{% endif %}

roles\ks-core\ks-core\files\ks-core\values.yaml

-  defaultbackend_repo: "mirrorgooglecontainers/defaultbackend-amd64"
+  defaultbackend_repo: "mirrorgooglecontainers/defaultbackend-arm64"

roles\ks-logging\templates\custom-output-elasticsearch-logging.yaml.j2

-    logstashPrefix: "ks-{{ common.es.elkPrefix }}-log"
+    logstashPrefix: "ks-{{ common.es.elkPrefix }}-logging"

Dockerfile-arm64

FROM kubesphere/ks-installer:v3.4.1COPY roles/download/defaults/main.yml                                       /kubesphere/installer/roles/download/defaults/main.yml
COPY roles/common/templates/custom-values-opensearch-data.yaml.j2           /kubesphere/installer/roles/common/templates/
COPY roles/common/templates/custom-values-opensearch-master.yaml.j2         /kubesphere/installer/roles/common/templates/
COPY roles/ks-core/ks-core/files/ks-core/values.yaml                        /kubesphere/installer/roles/ks-core/ks-core/files/ks-core/values.yaml
COPY roles/ks-core/config/templates/kubesphere-config.yaml.j2               /kubesphere/installer/roles/ks-core/config/templates/kubesphere-config.yaml.j2
COPY roles/ks-core/config/tasks/main.yaml                                   /kubesphere/installer/roles/ks-core/config/tasks/main.yaml
COPY roles/ks-logging/templates/custom-output-elasticsearch-logging.yaml.j2 /kubesphere/installer/roles/ks-logging/templates/custom-output-elasticsearch-logging.yaml.j2

构建

docker build -t kubesphere/ks-installer:v3.4.1-arm64 -f Dockerfile-arm64 .

这样下次安装就可以全部正常了

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

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

相关文章

Java最全面试题->数据库/中间件->Redis面试题

文章目录 Redisredis的数据类型有哪些?Redis 内部结构有哪些?Memcache 与 Redis 的区别都有哪些?为什么 redis 需要把所有数据放到内存中?Redis 如何进行持久化?RDB和AOF的优缺点有哪些?什么是缓存穿透?如何避免?什么是缓存雪崩?何如避免?redis的淘汰策略有哪些?Red…

用更多的钱买电脑而不是手机

如果&#xff0c;我们对自己的定义是知识工作者&#xff0c;那么在工作、学习相关的电子设备投入上&#xff0c;真的别舍不得花钱。 需要留意的是&#xff0c;手机&#xff0c;对于大部分在电脑前工作的人&#xff0c;不是工作设备。在我看来&#xff0c;每年投入到电脑的钱&…

【高级IO】IO多路转接之select

select函数 我们知道IO 等待 拷贝&#xff0c;系统提供select函数来实现多路复用输入/输出模型&#xff1b;select系统调用是用来让我们的程序监视多个文件描述符的状态变化的&#xff1b;程序会停在select这里等待&#xff0c;直到被监视的文件描述符有一个或多个发生了状态…

植物健康,Spring Boot来助力

3系统分析 3.1可行性分析 通过对本植物健康系统实行的目的初步调查和分析&#xff0c;提出可行性方案并对其一一进行论证。我们在这里主要从技术可行性、经济可行性、操作可行性等方面进行分析。 3.1.1技术可行性 本植物健康系统采用SSM框架&#xff0c;JAVA作为开发语言&#…

钉钉录播抓取视频

爬取钉钉视频 免责声明 此脚本仅供学习参考&#xff0c;切勿违法使用下载他人资源进行售卖&#xff0c;本人不但任何责任! 仓库地址: GItee 源码仓库 执行顺序 poxyM3u8开启代理getM3u8url用于获取m3u8文件userAgent随机请求头downVideo|downVideoThreadTqdm单线程下载和…

【纯血鸿蒙】HarmonyOS和OpenHarmony 的区别

一、开源鸿蒙&#xff08;Open Harmony&#xff09; 鸿蒙系统愿来的设计初衷&#xff0c;就是让所有设备都可以运行一个系统&#xff0c;但是每个设备的运算能力和功能都不同&#xff0c;所以内核的设计上&#xff0c;采用了微内核的设计&#xff0c;除了最基础的功能放在内核…

logback 如何将日志输出到文件

如何作 将日志输出到文件需要使用 RollingFileAppender&#xff0c;该 Appender 必须定义 rollingPolicy &#xff0c;另外 rollingPollicy 下必须定义 fileNamePattern 和 encoder <appender name"fileAppender" class"ch.qos.logback.core.rolling.Rollin…

LLM | 论文精读 | 基于大型语言模型的自主代理综述

论文标题&#xff1a;A Survey on Large Language Model based Autonomous Agents 作者&#xff1a;Lei Wang, Chen Ma, Xueyang Feng, 等 期刊&#xff1a;Frontiers of Computer Science, 2024 DOI&#xff1a;10.1007/s11704-024-40231-1 一、引言 自主代理&#xff08;…

企业自建邮件系统选U-Mail ,功能强大、安全稳定

在现代企业运营中&#xff0c;电子邮件扮演着至关重要的角色&#xff0c;随着企业规模的增长和业务的多样化&#xff0c;传统的租用第三方企业邮箱服务逐渐显现出其局限性。例如&#xff0c;存储空间受限、数据安全风险、缺乏灵活的管理和备份功能&#xff0c;以及无法与其他企…

C++从入门到起飞之——红黑树 全方位剖析!

&#x1f308;个人主页&#xff1a;秋风起&#xff0c;再归来~&#x1f525;系列专栏&#xff1a;C从入门到起飞 &#x1f516;克心守己&#xff0c;律己则安 目录 1. 红⿊树的概念 2. 红⿊树的实现 2.1 构建整体框架 2.2 红黑树的插入 2.3 红黑树的验证 2.4 红黑树…

数据库、数据仓库、数据湖和数据中台有什么区别

很多企业在面对数据存储和管理时不知道如何选择合适的方式&#xff0c;数据库、数据仓库、数据湖和数据中台&#xff0c;这些方式都是什么&#xff1f;有什么样的区别&#xff1f;企业根据其业务类型该选择哪一种&#xff1f;本文就针对这些问题&#xff0c;来探讨下这些方式都…

ASP.NET Core 8.0 中使用 Hangfire 调度 API

在这篇博文中&#xff0c;我们将引导您完成将 Hangfire 集成到 ASP.NET Core NET Core 项目中以安排 API 每天运行的步骤。Hangfire 是一个功能强大的库&#xff0c;可简化 .NET 应用程序中的后台作业处理&#xff0c;使其成为调度任务的绝佳选择。继续阅读以了解如何设置 Hang…

山西农业大学20241025

06-VUE 一. 生命周期1. 概念2. 生命周期的钩子函数 二. 工程化开发和脚手架1. 开发vue的两种方式2. 脚手架 Vue CLI3. 使用步骤4 . 项目目录介绍4.1 项目目录4.2 总结 一. 生命周期 1. 概念 VUE生命周期: 就是vue实例从创建到销毁的整个 生命周期经历了四个阶段: ①创建 ②挂载…

Clickhouse 笔记(一) 单机版安装并将clickhouse-server定义成服务

ClickHouse 是一个高性能的列式数据库管理系统&#xff08;DBMS&#xff09;&#xff0c;主要用于在线分析处理&#xff08;OLAP&#xff09;场景。它由俄罗斯搜索引擎公司 Yandex 开发&#xff0c;并在 2016 年开源。ClickHouse 以其卓越的查询性能和灵活的扩展性而闻名&#…

2-133 基于matlab的粒子群算法PSO优化BP神经网络

基于matlab的粒子群算法PSO优化BP神经网络&#xff0c;BP神经网络算法采用梯度下降算法&#xff0c;以输出误差平方最小为目标&#xff0c;采用误差反向传播&#xff0c;训练网络节点权值和偏置值&#xff0c;得到训练模型。BP神经网络的结构(层数、每层节点个数)较复杂时&…

【linux网络编程】| 网络基础 | 解析IP与Mac地址的区别

前言&#xff1a;本节内容讲解一些网络基础相关的知识点&#xff0c; 不涉及网络代码&#xff01;同样的本节内容是作为前一篇的补充知识点&#xff0c; 前一篇文章地址&#xff1a;【linux网络编程】 | 网络基础Ⅰ| 认识网络-CSDN博客&#xff0c;本篇文章内容较少&#xff0c…

AnaTraf | 全面掌握网络健康状态:全流量的分布式网络性能监测系统

AnaTraf 网络性能监控系统NPM | 全流量回溯分析 | 网络故障排除工具AnaTraf网络流量分析仪是一款基于全流量&#xff0c;能够实时监控网络流量和历史流量回溯分析的网络性能监控与诊断系统&#xff08;NPMD&#xff09;。通过对网络各个关键节点的监测&#xff0c;收集网络性能…

内置数据类型、变量名、字符串、数字及其运算、数字的处理、类型转换

内置数据类型 python中的内置数据类型包括&#xff1a;整数、浮点数、布尔类型&#xff08;以大写字母开头&#xff09;、字符串 变量名 命名变量要见名知意&#xff0c;确保变量名称具有描述性和意义&#xff0c;这样可以使得代码更容易维护&#xff0c;使用_可以使得变量名…

2024.7最新子比主题zibll7.9.2开心版源码+授权教程

授权教程&#xff1a; 1.进入宝塔搭建一个站点 绑定 api.zibll.com 域名 并上传 index.php 文件 2.设置伪静态 3.开启SSL证书&#xff0c;找一个能用的域名证书&#xff0c;将密钥(KEY)和证书(PEM格式)复制进去即可 4.在宝塔文件地址栏中输入 /etc 找到 hosts文件并打开&a…

[Linux][进程间通信] 命名管道

命名管道是一种进程间通信的方式,底层原理与匿名管道极为相似,本质是通过在磁盘上新建一个特殊的文件,然后通过这个文件来进行通信 指令: mkfifo [文件名/路径] 该指令用于创建一个命名管道,可以看到文件的类型是p p 类型 命名管道文件 p文件大小恒为0 可通过echo和cat向其…