k8s安装Elasticsearch
·

- elasticsearch-pv.yaml
apiVersion: v1
kind: PersistentVolume
metadata:
name: elasticsearch-pv
spec:
capacity:
storage: 10Gi
accessModes:
- ReadWriteOnce
persistentVolumeReclaimPolicy: Retain
hostPath:
path: "/data/elasticsearch-data" # Elasticsearch 数据目录
- elasticsearch-pvc.yaml
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: es-data-pvc
namespace: default
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 10Gi
volumeName: elasticsearch-pv # 指定绑定的 PV
- elasticsearch-statefulset.yaml
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: elasticsearch
namespace: default
labels:
app: elasticsearch
spec:
serviceName: elasticsearch
replicas: 1
selector:
matchLabels:
app: elasticsearch
template:
metadata:
labels:
app: elasticsearch
spec:
containers:
- name: elasticsearch
image: registry.cn-hangzhou.aliyuncs.com/qiluo-images/elasticsearch:8.17.4
env:
- name: discovery.type
value: single-node
- name: ES_JAVA_OPTS
value: "-Xms512m -Xmx512m"
- name: xpack.security.enabled
value: "false"
ports:
- containerPort: 9200
name: http
- containerPort: 9300
name: transport
volumeMounts:
- name: data
mountPath: /data # 容器内的数据目录
volumes:
- name: data
persistentVolumeClaim:
claimName: es-data-pvc
- elasticsearch-service.yaml
apiVersion: v1
kind: Service
metadata:
name: elasticsearch
labels:
app: elasticsearch
spec:
selector:
app: elasticsearch
ports:
- port: 9200
targetPort: 9200
nodePort: 32092
name: http
- port: 9300
targetPort: 9300
nodePort: 32093
name: transport
type: NodePort
部署顺序:
1. 先创建 PV
kubectl apply -f elasticsearch-pv.yaml
2. 再创建 PVC(会自动绑定到 PV)
kubectl apply -f elasticsearch-pvc.yaml
3. 创建 StatefulSet 和 Service
kubectl apply -f elasticsearch-statefulset.yaml
kubectl apply -f elasticsearch-service.yaml
验证部署:
检查 PV 和 PVC 状态
kubectl get pv
kubectl get pvc
检查 Pod 状态
kubectl get pods -l app=elasticsearch
检查 Service
kubectl get svc elasticsearch
测试访问
curl http://<node-ip>:32092
更多推荐





所有评论(0)