K3s探秘:Install and Configure OpenSearch
叮咚~ 周末如期而至,新岗位每周实战笔记亦如约而现,笔耕不辍,记录点滴。
背景知识:OpenSearch最初是由Amazon公司开源的。它最初是作为Amazon Elasticsearch Service的一个分支存在,旨在提供与Elasticsearch兼容但又有独特优势的开源搜索和分析解决方案。后来,由于Elastic公司更改了其软件的许可证,Amazon决定创建Elasticsearch的开源分支,即OpenSearch,以继续提供开源的搜索和分析服务。因此,OpenSearch是Amazon为了应对Elastic公司许可证变更而采取的行动的结果,现在作为一个独立的开源项目,由社区进行维护和发展。
一、准备工作
添加Helm仓库
添加用于安装OpenSearch和OpenSearch 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
# 安装检查:
Workloads ->Stateful Sets
使用admin用户的用户名和密码做HTTP Basic认证,访问OpenSearch服务,获取服务基本信息,验证服务是否可用。
三、安装OpenSearch Dashboards
这部分比较简单,不再赘述!^^