前置环境:已部署k8s集群,ip地址为 192.168.10.1~192.168.10.5,总共5台机器。
1. 创建provisioner制备器(如果已存在,则不需要)
制备器的具体部署方式,参考我之前的文章:k8s部署rabbitmq-CSDN博客
2. 编写wms-elk-data-sc.yaml配置文件
apiVersion: storage.k8s.io/v1
kind: StorageClass # 描述资源对象为SC类型
metadata:
name: wms-elk-data # SC的名称,在集群范围内需要保证唯一
provisioner: wms-nfs-provisioner # 外部制备器提供者,编写为提供者的名称
parameters:
archiveOnDelete: "true" # 是否存档,false表示不存档,会删除oldPath下面的数据,true表示存档,会重命名路径
reclaimPolicy: Delete # 回收策略
volumeBindingMode: Immediate # 默认为Immediate,表示创建PVC立即进行绑定
3. 导入wms-elk-data-sc.yaml配置文件
4. 查看PVC信息
$ kubectl get pvc -n wms
$ kubectl describe pvc elasticsearch-data-elasticsearch-0 -n wms
5. 编写elasticsearch.yaml配置文件
---
apiVersion: v1
kind: Service
metadata:
name: elasticsearch
spec:
type: ClusterIP
clusterIP: None
ports:
- name: elasticsearch
port: 9200
targetPort: 9200
- name: es-transport
port: 9300
targetPort: 9300
selector:
app: elasticsearch
---
apiVersion: v1
kind: ConfigMap
metadata:
name: elasticsearch-config
data:
# 指定配置文件的内容
elasticsearch.yml: |
cluster.name: cluster-es
network.host: 0.0.0.0
xpack.license.self_generated.type: basic
xpack.security.enabled: false
xpack.monitoring.collection.enabled: true
---
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: elasticsearch
spec:
serviceName: elasticsearch
replicas: 1
selector:
matchLabels:
app: elasticsearch
template:
metadata:
labels:
app: elasticsearch
spec:
containers:
- name: elasticsearch
image: harbor.cool.team/common/elasticsearch/elasticsearch-ik:7.16.2
imagePullPolicy: IfNotPresent
ports:
- name: elasticsearch
containerPort: 9200
protocol: "TCP"
- name: es-transport
containerPort: 9300
protocol: "TCP"
env:
- name: ES_JAVA_OPTS
value: -Xmx4048m -Xms512m
- name: discovery.type
value: single-node
volumeMounts:
- name: elasticsearch-conf #挂载配置
mountPath: /usr/share/elasticsearch/config/elasticsearch.yml
subPath: elasticsearch.yml
- name: elasticsearch-data #挂载数据
mountPath: /usr/share/elasticsearch/data
volumes:
- name: elasticsearch-conf
configMap:
name: elasticsearch-config
restartPolicy: Always
volumeClaimTemplates:
- metadata:
name: elasticsearch-data
spec:
accessModes: ["ReadWriteMany"]
storageClassName: "elk-data"
resources:
requests:
storage: 100Gi
6. 在k8s页面,wms命名空间导入elasticsearch.yaml配置文件
7. 查看部署信息
8. 查看配置信息
9. 查看Pod日志信息,检查是否有报错信息
10. 访问elasticsearch页面
192.168.10.4:9200
从其他的容器,使用elasticsearch的ip,直接访问elasticsearch,可以正常访问