Kubernetes
今天小编打算用五步教大家如何使用k8s快速部署ES,有兴趣的小伙伴可以了解一下~
由于是使用本地存储,所以需要先创建pv
1、创建存储类
local-elasticsearch.yaml
kind: StorageClass
apiVersion: storage.k8s.io/v1
metadata:
name: local-elasticsearch
provisioner: kubernetes.io/no-provisioner
volumeBindingMode: WaitForFirstConsumer
存储类是pv的一种模板声明
kubectl apply -f local-elasticsearch.yaml
2、创建pv
elasticsearch-pv-01.yaml
apiVersion: v1
kind: PersistentVolume
metadata:
name: local-es-0(local-es-1/local-es-2...) #这里需要改名
spec:
capacity:
storage: 3Gi
volumeMode: Filesystem # volumeMode field requires BlockVolume Alpha feature gate to be enabled.
accessModes:
- ReadWriteOnce
storageClassName: local-elasticsearch #这里对应StorageClass的名字
persistentVolumeReclaimPolicy: Retain
local:
path: /data/local-es # 这里是本地存储的路径,需要提前创建好目录
nodeAffinity:
required:
nodeSelectorTerms:
- matchExpressions:
- key: kubernetes.io/hostname
operator: In
values:
- k8s-node4(xxx/yyy...) #这里是pv本地存储所在的node节点名称
由于es集群是3个副本,所以需要分别在3台node节点上面创建本地存储目录,创建3个pv
kubectl apply -f elasticsearch-pv-01.yaml
kubectl apply -f elasticsearch-pv-02.yaml
kubectl apply -f elasticsearch-pv-03.yaml
3、创建一个pvc,用于挂载备份目录
elasticsearch-pvc.yaml
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: elasticsearch-pvc
namespace: elasticsearch
spec:
accessModes:
- ReadWriteMany
resources:
requests:
storage: 30Gi
storageClassName: nfs-client #这个是nfs的一个存储类,用于存储数据到nfs的
kubectl apply -f elasticsearch-pvc.yaml
4、创建es命名空间
kubectl create namespace elasticsearch
5、helm部署
添加本地helm库
helm repo add --username **** --password **** elk http: