Files
jenkins-pipeline/k8s_yaml/elasticsearch-9.2.2/单节点/es-single.yaml
2025-12-11 11:11:33 +08:00

104 lines
2.6 KiB
YAML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
# Headless ServiceStatefulSet 必需,哪怕单节点,无头)
apiVersion: v1
kind: Service
metadata:
name: elasticsearch
namespace: es-test
spec:
clusterIP: None
selector:
app: elasticsearch
ports:
- port: 9200
name: http
- port: 9300
name: transport
---
# 单节点 StatefulSet (有状态工作负载)
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: elasticsearch
namespace: es-test
spec:
serviceName: "elasticsearch"
replicas: 1 # 👈 单节点!
selector:
matchLabels:
app: elasticsearch
template:
metadata:
labels:
app: elasticsearch
spec:
# ✅ 关键initContainer 修复内核参数(腾讯云默认可能不足)
initContainers:
- name: increase-vm-max-map
image: busybox
command: ["sysctl", "-w", "vm.max_map_count=262144"]
securityContext:
privileged: true
containers:
- name: elasticsearch
image: docker.elastic.co/elasticsearch/elasticsearch:9.2.2
env:
- name: discovery.type
value: "single-node" # ⚠️ 必须!否则 ES 9 会报错退出
- name: cluster.name
value: "test-es-cluster"
- name: node.name
value: "es-test-node"
- name: ES_JAVA_OPTS
value: "-Xms1g -Xmx1g" # 测试环境 1G 足够
ports:
- containerPort: 9200
name: http
- containerPort: 9300
name: transport
volumeMounts:
- name: data
mountPath: /usr/share/elasticsearch/data
# 探针(可选,加快感知)
readinessProbe:
httpGet:
path: /_cluster/health
port: 9200
initialDelaySeconds: 20
periodSeconds: 10
livenessProbe:
httpGet:
path: /_cluster/health
port: 9200
initialDelaySeconds: 60
periodSeconds: 30
# ✅ ES 9 默认非 root 运行,必须设置
securityContext:
runAsUser: 1000
runAsGroup: 1000
fsGroup: 1000
# 腾讯云 CBS 需要 RWO单节点没问题
volumes:
- name: data
persistentVolumeClaim:
claimName: es-data-pvc
---
# 单独创建 PVCStatefulSet 用 volumeClaimTemplates 更规范,但单节点直接 PVC 更直观)
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: es-data-pvc
namespace: es-test
spec:
accessModes:
- ReadWriteOnce
storageClassName: cbs # 👈 腾讯云默认存储类(如用高性能 SSD 改为 cbs-premium
resources:
requests:
storage: 20Gi # 测试够用,可调小如 10Gi