四、elasticsearch集群

1. master节点

[admin@master01 es]$vim es-master.yaml 
apiVersion: apps/v1
kind: StatefulSet
metadata:
  name: es-master
  namespace: logging 
spec:
  serviceName: "es-svc"
  replicas: 3
  selector: 
    matchLabels:    
      app: es
      role: master
  template:
    metadata:
      labels:
        app: es
        role: master
    spec:
      imagePullSecrets:
      - name: harbor-admin
      affinity:
        podAntiAffinity:
          requiredDuringSchedulingIgnoredDuringExecution:
          - labelSelector:
              matchExpressions:
              - key: app
                operator: In
                values: ["es"]
              - key: role
                operator: In
                values: ["master"]
            topologyKey: "kubernetes.io/hostname"
   
      initContainers:
      - name: change-permissions
        image: harbor.xx.com/library/busybox
        command: ["sh","-c","chown 1000:1000 /usr/share/elasticsearch/data; sysctl -w vm.max_map_count=262144; ulimit -n 65535"]
        securityContext:
          privileged: true
        volumeMounts:
        - name: data
          mountPath: /usr/share/elasticsearch/data 
            
      containers:
      - name: es
        image: harbor.xx.com/library/elasticsearch:7.17.6
        ports:
        - name: cluster
          containerPort: 9200
        - name: transport
          containerPort: 9300
        resources: 
          limits: 
            cpu: 1000m
            memory: 1024Mi
        volumeMounts:
        - name: data
          mountPath: /usr/share/elasticserarch/data
        env:
        - name: ES_JAVA_OPTS
          value: "-Xms512m -Xmx512m"
        - name: cluster.name
          value: "es-aaa"
        - name: node.name
          valueFrom:
            fieldRef:
              fieldPath: "metadata.name"
        - name: node.master
          value: "true"
        - name: node.data
          value: "false"
        - name: discovery.seed_hosts
          value: "es-master-0.es-svc,es-master-1.es-svc,es-master-2.es-svc"
        - name: cluster.initial_master_nodes
          value: "es-master-0,es-master-1,es-master-2"

  volumeClaimTemplates:
  - metadata:
      name: data
    spec:
      accessModes: ["ReadWriteOnce"] 
      storageClassName: "nfs-provisioner-storage"
      resources:
        requests:
          storage: 50Gi            
           
      

2. data节点

[admin@master01 es]$vim 03-es-data.yaml
apiVersion: apps/v1
kind: StatefulSet
metadata:
  name: es-data
  namespace: logging
spec:
  serviceName: "es-svc"
  replicas: 2
  selector:
    matchLabels:
      app: es
      role: data
  template:
    metadata:
      labels:
        app: es
        role: data
    spec:
      imagePullSecrets:
      - name: harbor-admin
      affinity: 
        podAntiAffinity: 
          requiredDuringSchedulingIgnoredDuringExecution:
          - labelSelector:
              matchExpressions:
              - key: app
                operator: In
                values: ["es"]
              - key: role
                operator: In
                values: ["data"]
            topologyKey: "kubernetes.io/hostname"
                   
      initContainers:
      - name: fix-permission
        image: busybox
        command: ["sh","-c","chown 1000:1000 /usr/share/elasticsearch/data; sysctl -w vm.max_map_count=262144; ulimit -n 65535"]
        securityContext: 
          privileged: true
        volumeMounts:
        - name: data
          mountPath: /usr/share/elasticsearch/data
      containers:
      - name: es 
        image: harbor.xx.com/library/elasticsearch:7.17.6
        ports:
        - name: cluster
          containerPort: 9200
        - name: transport
          containerPort: 9300
        volumeMounts:
        - name: data
          mountPath: /usr/share/elasticsearch/data
        resources: 
          limits:
            cpu: 1000m
            memory: 1024Mi
        env:        
        - name: ES_JAVA_OPTS
          value: "-Xms512m -Xmx512m"
        - name: cluster.name
          value: "es-aaa"
        - name: node.name
          valueFrom: 
            fieldRef:
              fieldPath: metadata.name
        - name: node.master
          value: "false"
        - name: node.data
          value: "true"
        - name: discovery.seed_hosts
          value: "es-master-0.es-svc,es-master-1.es-svc,es-master-2.es-svc"

  volumeClaimTemplates:
  - metadata:
      name: data
    spec:
      accessModes: ["ReadWriteOnce"]
      storageClassName: "nfs-provisioner-storage"
      resources:
        requests:
          storage: 50Gi

3、headless-svc

[admin@master01 es]$vim 03-es-data.yaml
apiVersion: apps/v1
kind: StatefulSet
metadata:
  name: es-data
  namespace: logging
spec:
  serviceName: "es-svc"
  replicas: 2
  selector:
    matchLabels:
      app: es
      role: data
  template:
    metadata:
      labels:
        app: es
        role: data
    spec:
      imagePullSecrets:
      - name: harbor-admin
      affinity: 
        podAntiAffinity: 
          requiredDuringSchedulingIgnoredDuringExecution:
          - labelSelector:
              matchExpressions:
              - key: app
                operator: In
                values: ["es"]
              - key: role
                operator: In
                values: ["data"]
            topologyKey: "kubernetes.io/hostname"
                   
      initContainers:
      - name: fix-permission
        image: busybox
        command: ["sh","-c","chown 1000:1000 /usr/share/elasticsearch/data; sysctl -w vm.max_map_count=262144; ulimit -n 65535"]
        securityContext: 
          privileged: true
        volumeMounts:
        - name: data
          mountPath: /usr/share/elasticsearch/data
      containers:
      - name: es 
        image: harbor.xingxingcar.com/library/elasticsearch:7.17.6
        ports:
        - name: cluster
          containerPort: 9200
        - name: transport
          containerPort: 9300
        volumeMounts:
        - name: data
          mountPath: /usr/share/elasticsearch/data
        resources: 
          limits:
            cpu: 1000m
            memory: 1024Mi
        env:        
        - name: ES_JAVA_OPTS
          value: "-Xms512m -Xmx512m"
        - name: cluster.name
          value: "es-aaa"
        - name: node.name
          valueFrom: 
            fieldRef:
              fieldPath: metadata.name
        - name: node.master
          value: "false"
        - name: node.data
          value: "true"
        - name: discovery.seed_hosts
          value: "es-master-0.es-svc,es-master-1.es-svc,es-master-2.es-svc"

  volumeClaimTemplates:
  - metadata:
      name: data
    spec:
      accessModes: ["ReadWriteOnce"]
      storageClassName: "nfs-provisioner-storage"
      resources:
        requests:
          storage: 50Gi
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值