KubeSphere3.3.1更换ES为OpenSearch

2024-08-30 11:30:11 浏览数 (3)

说明

v3.4.0之前KubeSphere默认使用es作为日志系统,由于es出现es无限重启,但是启动不起来问题。现将es更换为opensearch(注意统计服务也需要修改)。

v3.4.0之后默认使用opensearch作为日志存储,不用修改。

  1. 导入opensearch镜像

导入opensearch镜像,目前使用本地优先默认。如果使用离线模式部署,需要推送到harbor私有仓库。在线部署也可让docker自动拉取。opensearch.tar.gz

  1. 部署opensearch

opensearch.zip上传至服务器,解压后,执行除rizhijieshouqi.yaml以外的yaml

代码语言:javascript复制
kubectl apply -f ***.yaml

将会添加4个opensearch服务和两个opensearch工作负载

之前的es服务和工作负载可不理会。

  1. 修改日志接收器

点击es,进入后编辑yaml,将rizhijieshouqi.yaml中的内容替换当前内容。主要是修改红框中的内容。

以上修改后,可以看到保密字典中的fluent-bit配置以修改为opensearch的

查看fluent和opensearch日志是否有报错

  1. 验证

通过接口访问工具,查看opensearch日志,注意需要添加header:Authorization:Basic YWRtaW46YWRtaW4=

可以看到总日志数一直在增加,kubesphere右下角容易日志数据不再变化(暂不知其从何处取数据,若知道可修改为opensearch地址)。

  1. es对应统计类服务改写

日志相关统计,使用专门统计服务对es数据分析。由于更换为opensearch,需要调整统计服务的查询。

ps:了解es和opensearch的历史可知,opensearch从es 7.1某个版本后分离出来。统计服务使用的es包改为v6版本,如果使用v7及以上版本会报错不是es协议

代码语言:javascript复制
import ""github.com/elastic/go-elasticsearch/v6""
//主要是添加header
header := http.Header{}
header.Set("Authorization", "Basic YWRtaW46YWRtaW4=")
cfg := elasticsearch.Config{
    Addresses: []string{
       utils.Config.ElasticSearch.Addr,
    },
    Header: header,//主要是添加header
    Transport: &http.Transport{
       TLSClientConfig:       &tls.Config{InsecureSkipVerify: true},
       MaxIdleConnsPerHost:   10,
       MaxIdleConns:          10,
       MaxConnsPerHost:       100,
       IdleConnTimeout:       10 * time.Second,
       ResponseHeaderTimeout: 5 * time.Second,
       DialContext: (&net.Dialer{
          Timeout:   1 * time.Second,
          KeepAlive: 30 * time.Second,
          DualStack: true,
       }).DialContext,
    },
    // ...
}
esClient, err = elasticsearch.NewClient(cfg)
代码语言:javascript复制

0 人点赞