当前位置:首页 > CloudNative云原生 > 正文内容

K3s探秘:Install and Configure OpenSearch

时移世界11个月前 (04-30)CloudNative云原生1237

叮咚~ 周末如期而至,新岗位每周实战笔记亦如约而现,笔耕不辍,记录点滴。

背景知识:OpenSearch最初是由Amazon公司开源的。它最初是作为Amazon Elasticsearch Service的一个分支存在,旨在提供与Elasticsearch兼容但又有独特优势的开源搜索和分析解决方案。后来,由于Elastic公司更改了其软件的许可证,Amazon决定创建Elasticsearch的开源分支,即OpenSearch,以继续提供开源的搜索和分析服务。因此,OpenSearch是Amazon为了应对Elastic公司许可证变更而采取的行动的结果,现在作为一个独立的开源项目,由社区进行维护和发展。
image.png

一、准备工作

  • 添加Helm仓库
    添加用于安装OpenSearchOpenSearch Dashboards的Helm仓库。
    helm repo add opensearch https://opensearch-project.github.io/helm-charts/
    helm repo update

  • 创建命名空间

      本次演练中将OpenSearch安装至opensearch命名空间,可根据需要替换。
      
kubectl create namespace opensearch

  • 创建TLS证书Secret

      从已准备好的证书key文件和crt文件创建Secret
     kubectl create secret tls opensearch-youchang-net-tls \
           --namespace opensearch \
           --key privkey.youchang.net.pem \
           --cert cert.youchang.net.pem


二、安装OpenSearch

  • 创建预置用户
    创建internal_users.yml,包含下列预置用户信息:

# https://opensearch.org/docs/2.10/security/configuration/yaml/#internal_usersyml
_meta:
  type: "internalusers"
  config_version: 2

admin:
  hash: "$2a$10$GByHH.82ZZ0JFefaEr6LxuHtPdqGpLjkP5sfNWe6mylmXuBN36O.K" 
  reserved: true
  backend_roles:
    - "admin"

kibanaserver:
  hash: "$2a$10$GByHH.82ZZ0JFefaEr6LxuHtPdqGpLjkP5sfNWe6mylmXuBN36O.K" 
  reserved: true

logstash:
  hash: "$2a$10$GByHH.82ZZ0JFefaEr6LxuHtPdqGpLjkP5sfNWe6mylmXuBN36O.K" 
  reserved: false
  backend_roles:
    - "logstash"


     注:文档中hash字段的值为密码通过Bcrypt算法生成的哈希值。

  • admin : $2a$10$GByHH.82ZZ0JFefaEr6LxuHtPdqGpLjkP5sfNWe6mylmXuBN36O.K

  • kibanaserver : $2a$10$GByHH.82ZZ0JFefaEr6LxuHtPdqGpLjkP5sfNWe6mylmXuBN36O.K

  • logstash : $2a$10$GByHH.82ZZ0JFefaEr6LxuHtPdqGpLjkP5sfNWe6mylmXuBN36O.K

#!/usr/bin/python3
# -*- coding:utf-8 -*-

import bcrypt

# 要哈希的密码
password = "www.youchang.net"

# 生成哈希值,版本2a
hashed_password = bcrypt.hashpw(password.encode('utf-8'), bcrypt.gensalt(rounds=10, prefix=b'2a'))

# 打印哈希值
print(hashed_password.decode('utf-8'))


  • 创建包含上述文件的Secret对象。

   kubectl create secret --namespace opensearch generic opensearch-security-secrets --from-file=internal_users.yml

  • 创建helm-opensearch.yaml

     首先,创建OpenSearch的安装配置文件。

image:
  repository: quay.io/choral-k8s/opensearch
extraEnvs:
  - name: plugins.security.ssl.http.enabled
    value: 'false' # HTTP服务禁用SSL
persistence:
  storageClass: 'local-path' # 指定存储类,可根据需要替换
securityConfig:
  path: /usr/share/opensearch/config/opensearch-security # 指定Security插件的配置目录
  internalUsersSecret: opensearch-security-secrets # 包含预置用户配置文件的Secret名称
ingress:
  enabled: true # 启用Ingress
  annotations:
    kubernetes.io/ingress.class: traefik # 指定IngressClass,可根据需要替换
    traefik.ingress.kubernetes.io/router.entrypoints: websecure # 仅限HTTPS访问
  hosts:
    - opensearch.youchang.net # 服务对外访问主机名
  tls:
    - secretName: opensearch-youchang-net-tls # 提供TLS证书的Secret名称


  • 安装OpenSearch

    helm delete opensearch --namespace opensearch    ⚠️注:若想删除

     helm pull opensearch/opensearch --version 2.16.0
     tar zxf opensearch-2.16.0.tgz
   helm upgrade --install opensearch --namespace opensearch \
  --values helm-opensearch.yaml\
  opensearch-2.16.0.tgz
image.png

   # 安装检查:
      Workloads ->Stateful Sets
image.png

使用admin用户的用户名和密码做HTTP Basic认证,访问OpenSearch服务,获取服务基本信息,验证服务是否可用。
image.png

三、安装OpenSearch Dashboards

         这部分比较简单,不再赘述!^^

扫描二维码推送至手机访问。

版权声明:本文由时移安全运维发布,如需转载请注明出处。

本文链接:https://security.youchang.net/?id=10

分享给朋友:

“K3s探秘:Install and Configure OpenSearch” 的相关文章

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。