This commit is contained in:
zhangkun9038@dingtalk.com 2025-03-25 21:33:40 +08:00
parent ac68e3798e
commit 2657fc0256
9 changed files with 205 additions and 80 deletions

View File

@ -1,18 +1,61 @@
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: elasticsearch
name: elasticsearch-0
namespace: efk
spec:
ingressClassName: traefik
rules:
- host: elastic.k8s.xunlang.home
- host: elastic0.k8s.xunlang.home
http:
paths:
- backend:
service:
name: elasticsearch-public # 指向新的 Service
name: elasticsearch-0
port:
number: 9200
path: /
pathType: Prefix
---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: elasticsearch-1
namespace: efk
spec:
ingressClassName: traefik
rules:
- host: elastic1.k8s.xunlang.home
http:
paths:
- backend:
service:
name: elasticsearch-1
port:
number: 9200
path: /
pathType: Prefix
---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: elasticsearch-2
namespace: efk
spec:
ingressClassName: traefik
rules:
- host: elastic2.k8s.xunlang.home
http:
paths:
- backend:
service:
name: elasticsearch-2
port:
number: 9200
path: /
pathType: Prefix

View File

@ -9,7 +9,7 @@ spec:
accessModes:
- ReadWriteOnce
nfs:
server: 10.71.142.1 # fenny
server: 10.100.93.1 # fenny
path: /root/elasticsearch/hotData
---
@ -24,7 +24,7 @@ spec:
accessModes:
- ReadWriteOnce
nfs:
server: 10.71.142.1 # fenny
server: 10.100.93.1 # fenny
path: /root/elasticsearch/warmData
---
@ -39,7 +39,7 @@ spec:
accessModes:
- ReadWriteOnce
nfs:
server: 10.71.142.1 # fenny
server: 10.100.93.1 # fenny
path: /root/elasticsearch/coldData
---
@ -89,3 +89,112 @@ spec:
storage: 500Gi
volumeName: elasticsearch-cold-pv
storageClassName: "" # 显式禁用 StorageClass
---
# PVC for Cold
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: elasticsearch-data-pvc-elasticsearch-2
namespace: efk
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 500Gi
volumeName: elasticsearch-cold-pv
storageClassName: "" # 显式禁用 StorageClass
---
# PV for Hot Config
apiVersion: v1
kind: PersistentVolume
metadata:
name: elasticsearch-hot-config-pv
spec:
capacity:
storage: 10Gi
accessModes:
- ReadWriteOnce
nfs:
server: 10.100.93.1 # fenny
path: /root/elasticsearch/hotData/config
---
# PVC for Hot Config
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: elasticsearch-config-pvc-elasticsearch-0
namespace: efk
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 10Gi
volumeName: elasticsearch-hot-config-pv
storageClassName: "" # 显式禁用 StorageClass
---
# PV for Warm Config
apiVersion: v1
kind: PersistentVolume
metadata:
name: elasticsearch-warm-config-pv
spec:
capacity:
storage: 10Gi
accessModes:
- ReadWriteOnce
nfs:
server: 10.100.93.1 # fenny
path: /root/elasticsearch/warmData/config
---
# PVC for Warm Config
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: elasticsearch-config-pvc-elasticsearch-1
namespace: efk
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 10Gi
volumeName: elasticsearch-warm-config-pv
storageClassName: "" # 显式禁用 StorageClass
---
# PV for Cold Config
apiVersion: v1
kind: PersistentVolume
metadata:
name: elasticsearch-cold-config-pv
spec:
capacity:
storage: 10Gi
accessModes:
- ReadWriteOnce
nfs:
server: 10.100.93.1 # fenny
path: /root/elasticsearch/coldData/config
---
# PVC for Cold Config
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: elasticsearch-config-pvc-elasticsearch-2
namespace: efk
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 10Gi
volumeName: elasticsearch-cold-config-pv
storageClassName: "" # 显式禁用 StorageClass

View File

@ -0,0 +1,13 @@
apiVersion: v1
kind: Service
metadata:
name: elasticsearch-0
namespace: efk
spec:
ports:
- port: 9200
targetPort: 9200
name: http
selector:
statefulset.kubernetes.io/pod-name: elasticsearch-0-0
type: LoadBalancer

View File

@ -0,0 +1,13 @@
apiVersion: v1
kind: Service
metadata:
name: elasticsearch-1
namespace: efk
spec:
ports:
- port: 9200
targetPort: 9200
name: http
selector:
statefulset.kubernetes.io/pod-name: elasticsearch-1-0
type: LoadBalancer

View File

@ -0,0 +1,13 @@
apiVersion: v1
kind: Service
metadata:
name: elasticsearch-2
namespace: efk
spec:
ports:
- port: 9200
targetPort: 9200
name: http
selector:
statefulset.kubernetes.io/pod-name: elasticsearch-2-0
type: LoadBalancer

View File

@ -48,7 +48,7 @@ spec:
- name: ES_JAVA_OPTS
value: "-Xms2g -Xmx4g"
- name: node.roles
value: "[master, data]"
value: "[master, data_hot]"
- name: node.attr.data-tier
value: "hot"
resources:
@ -78,7 +78,7 @@ spec:
claimName: "elasticsearch-data-pvc-elasticsearch-0"
- name: config-volume
persistentVolumeClaim:
claimName: "elasticsearch-config-pvc"
claimName: "elasticsearch-config-pvc-elasticsearch-0"
---
# elasticsearch-1
apiVersion: apps/v1
@ -130,7 +130,7 @@ spec:
- name: ES_JAVA_OPTS
value: "-Xms2g -Xmx4g"
- name: node.roles
value: "[data]"
value: "[data_warm]"
- name: node.attr.data-tier
value: "warm"
resources:
@ -160,7 +160,7 @@ spec:
claimName: "elasticsearch-data-pvc-elasticsearch-1"
- name: config-volume
persistentVolumeClaim:
claimName: "elasticsearch-config-pvc"
claimName: "elasticsearch-config-pvc-elasticsearch-0"
---
# elasticsearch-2
apiVersion: apps/v1
@ -212,7 +212,7 @@ spec:
- name: ES_JAVA_OPTS
value: "-Xms2g -Xmx4g"
- name: node.roles
value: "[data]"
value: "[data_cold]"
- name: node.attr.data-tier
value: "cold"
resources:
@ -242,28 +242,5 @@ spec:
claimName: "elasticsearch-data-pvc-elasticsearch-2"
- name: config-volume
persistentVolumeClaim:
claimName: "elasticsearch-config-pvc"
---
apiVersion: v1
kind: Service
metadata:
name: elasticsearch-service
namespace: efk
spec:
clusterIP: None
selector:
app: elasticsearch
ports:
- port: 9200
name: http
- port: 9300
name: transport
---
apiVersion: v1
kind: Secret
metadata:
name: elasticsearch-secret
namespace: efk
type: Opaque
data:
elastic_password: eW91cl9zZWN1cmVfcGFzc3dvcmQ= # Base64 编码的 "your_secure_password"
claimName: "elasticsearch-config-pvc-elasticsearch-0"

View File

@ -1,33 +0,0 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: kibana
namespace: efk
labels:
app: kibana
spec:
replicas: 1
selector:
matchLabels:
app: kibana
template:
metadata:
labels:
app: kibana
spec:
containers:
- name: kibana
image: docker.elastic.co/kibana/kibana:8.8.0
ports:
- containerPort: 5601
env:
- name: ELASTICSEARCH_HOSTS
value: "http://elasticsearch-0-0.elasticsearch-service.efk.svc.cluster.local:9200" # 直接连接 master 节点
- name: XPACK_SECURITY_ENCRYPTIONKEY
value: "a_secure_random_string_of_32_characters"
- name: XPACK_ENCRYPTEDSAVEDOBJECTS_ENCRYPTIONKEY
value: "another_secure_random_string_of_32_characters"
- name: XPACK_REPORTING_ENCRYPTIONKEY
value: "yet_another_secure_random_string_of_32_characters"
- name: ELASTICSEARCH_SERVICEACCOUNTTOKEN
value: "AAEAAWVsYXN0aWMva2liYW5hL215LXRva2VuOkRkYWM1ZDY2VG9XLUdvTmxfQnhvM2c"

View File

@ -1,10 +0,0 @@
apiVersion: v1
kind: ConfigMap
metadata:
name: kibana-config
data:
kibana.yml: |
server.host: "0.0.0.0"
elasticsearch.hosts: ["http://elasticsearch:9200"]
# Add other configurations here

View File

@ -22,7 +22,7 @@ spec:
- containerPort: 5601
env:
- name: ELASTICSEARCH_HOSTS
value: "http://elasticsearch-0-0.elasticsearch-service.efk.svc.cluster.local:9200" # 直接连接 master 节点
value: "http://elasticsearch-0.elasticsearch-service.efk.svc.cluster.local:9200" # 直接连接 master 节点
- name: XPACK_SECURITY_ENCRYPTIONKEY
value: "a_secure_random_string_of_32_characters"
- name: XPACK_ENCRYPTEDSAVEDOBJECTS_ENCRYPTIONKEY