elasticsearch和kibana部署代码

es-client-deployment.yaml

apiVersion: apps/v1beta1
kind: Deployment
metadata:
  name: es-client
  namespace: ops
  labels:
    component: elasticsearch
    role: client
spec:
  replicas: 2
  template:
    metadata:
      labels:
        component: elasticsearch
        role: client
    spec:
      affinity:
        podAntiAffinity:
          preferredDuringSchedulingIgnoredDuringExecution:
          - weight: 100
            podAffinityTerm:
              labelSelector:
                matchExpressions:
                - key: role
                  operator: In
                  values:
                  - client
              topologyKey: kubernetes.io/hostname
      initContainers:
      - name: init-sysctl
        image: docker.idc.cedu.cn/.../busybox
        command:
        - sysctl
        - -w
        - vm.max_map_count=262144
        securityContext:
          privileged: true
      containers:
      - name: es-client
        image: docker.idc.cedu.cn/.../elasticsearch:6.7.1_v3
        env:
        - name: NAMESPACE
          valueFrom:
            fieldRef:
              fieldPath: metadata.namespace
        - name: NODE_NAME
          valueFrom:
            fieldRef:
              fieldPath: metadata.name
        - name: CLUSTER_NAME
          value: "k8s_elasticsearch_cluster"
        - name: NUMBER_OF_MASTERS
          value: "2"
        - name: HTTP_CORS_ALLOW_ORIGIN
          value: "*"
        - name: HTTP_CORS_ENABLE
          value: "true"
        - name: NETWORK_HOST
          value: "0.0.0.0"
        - name: MAX_LOCAL_STORAGE_NODES
          value: "1"
        - name: NODE_INGEST
          value: "false"
        - name: NODE_MASTER
          value: "false"
        - name: NODE_DATA
          value: "false"
        - name: HTTP_ENABLE
          value: "true"
        - name: ES_JAVA_OPTS
          value: -Xms1024m -Xmx1024m
        - name: NETWORK_HOST
          value: _site_,_lo_
        ports:
        - containerPort: 9200
          name: http
        - containerPort: 9300
          name: transport
        livenessProbe:
          tcpSocket:
            port: transport
        readinessProbe:
          httpGet:
            path: /_cluster/health
            port: http
          initialDelaySeconds: 20
          timeoutSeconds: 5
        volumeMounts:
        - name: storage
          mountPath: /usr/share/elasticsearch/data 
      volumes:
          - emptyDir:
              medium: ""
            name: storage

es-data-stateful.yaml

apiVersion: apps/v1beta2
kind: StatefulSet
metadata:
  name: es-data-stateful
  namespace: ops
  labels:
    component: elasticsearch
    role: data
spec:
  serviceName: elasticsearch-data
  selector:
    matchLabels:
      component: elasticsearch
      role: data
  replicas: 3
  updateStrategy:
    type: RollingUpdate
  template:
    metadata:
      labels:
        component: elasticsearch
        role: data
    spec:
      affinity:
        podAntiAffinity:
          preferredDuringSchedulingIgnoredDuringExecution:
          - weight: 100
            podAffinityTerm:
              labelSelector:
                matchExpressions:
                - key: role
                  operator: In
                  values:
                  - data
              topologyKey: kubernetes.io/hostname
      terminationGracePeriodSeconds: 10
      initContainers:
      - name: init-sysctl
        image: docker.idc.cedu.cn/.../busybox
        command:
        - sysctl
        - -w
        - vm.max_map_count=262144
        securityContext:
          privileged: true
      containers:
      - name: es-data
        image: docker.idc.cedu.cn/.../elasticsearch:6.7.1_v3
        env:
        - name: NAMESPACE
          valueFrom:
            fieldRef:
              fieldPath: metadata.namespace
        - name: NODE_NAME
          valueFrom:
            fieldRef:
              fieldPath: metadata.name
        - name: CLUSTER_NAME
          value: "k8s_elasticsearch_cluster"
        - name: NODE_MASTER
          value: "false"
        - name: NODE_INGEST
          value: "false"
        - name: HTTP_ENABLE
          value: "false"
        - name: NODE_DATA
          value: "true"
        - name: ES_JAVA_OPTS
          value: -Xms1024m -Xmx1024m
        - name: NUMBER_OF_MASTERS
          value: "2"
        - name: HTTP_CORS_ALLOW_ORIGIN
          value: "*"
        - name: HTTP_CORS_ENABLE
          value: "false"
        - name: NETWORK_HOST
          value: "0.0.0.0"
        - name: MAX_LOCAL_STORAGE_NODES
          value: "1"
        ports:
        - containerPort: 9300
          name: transport
        livenessProbe:
          tcpSocket:
            port: transport
          initialDelaySeconds: 20
          periodSeconds: 10
        volumeMounts:
        - name: storage
          mountPath: /usr/share/elasticsearch/data
      #volumes:
      #- name: storage
      #  emptyDir: {}
  volumeClaimTemplates:
  - metadata:
      name: storage
    spec:
      storageClassName: local-storage
      accessModes: [ ReadWriteOnce ]
      resources:
        requests:
          storage: 150Gi

es-master-stateful.yaml

apiVersion: apps/v1beta1
kind: StatefulSet
metadata:
  name: es-master-stateful
  namespace: ops
  labels:
    component: elasticsearch
    role: master
spec:
  serviceName: elasticsearch-master
  selector:
    matchLabels:
      component: elasticsearch
      role: master
  replicas: 3
  template:
    metadata:
      labels:
        component: elasticsearch
        role: master
    spec:
      affinity:
        podAntiAffinity:
          preferredDuringSchedulingIgnoredDuringExecution:
          - weight: 100
            podAffinityTerm:
              labelSelector:
                matchExpressions:
                - key: role
                  operator: In
                  values:
                  - master
              topologyKey: kubernetes.io/hostname
      initContainers:
      - name: init-sysctl
        image: docker.idc.cedu.cn/.../busybox
        command:
        - sysctl
        - -w
        - vm.max_map_count=262144
        securityContext:
          privileged: true
      containers:
      - name: es-master
        image: docker.idc.cedu.cn/.../elasticsearch:6.7.1_v3
        env:
        - name: NAMESPACE
          valueFrom:
            fieldRef:
              fieldPath: metadata.namespace
        - name: NODE_NAME
          valueFrom:
            fieldRef:
              fieldPath: metadata.name
        - name: CLUSTER_NAME
          value: "k8s_elasticsearch_cluster"
        - name: NUMBER_OF_MASTERS
          value: "2"
        - name: HTTP_CORS_ALLOW_ORIGIN
          value: "*"
        - name: HTTP_CORS_ENABLE
          value: "false"
        - name: NETWORK_HOST
          value: "0.0.0.0"
        - name: MAX_LOCAL_STORAGE_NODES
          value: "1"
        - name: NODE_MASTER
          value: "true"
        - name: NODE_INGEST
          value: "false"
        - name: NODE_DATA
          value: "false"
        - name: HTTP_ENABLE
          value: "false"
        - name: ES_JAVA_OPTS
          value: -Xms1024m -Xmx1024m
        ports:
        - containerPort: 9300
          name: transport
        livenessProbe:
          tcpSocket:
            port: transport
        volumeMounts:
        - name: storage
          mountPath: /usr/share/elasticsearch/data
      volumes:
      - name: storage
        emptyDir: {}
  #volumeClaimTemplates:
  #- metadata:
  #    name: storage
  #  spec:
  #    storageClassName: local-storage
  #    accessModes: [ ReadWriteOnce ]
  #    resources:
  #      requests:
  #       storage: 10Gi

es-svc.yaml

apiVersion: v1
kind: Service
metadata:
  name: elasticsearch-discovery
  namespace: ops
  labels:
    component: elasticsearch
    role: master
spec:
  selector:
    component: elasticsearch
    role: master
  ports:
  - name: transport
    port: 9300
    protocol: TCP
---
apiVersion: v1
kind: Service
metadata:
  name: elasticsearch-client
  namespace: ops
  labels:
    component: elasticsearch
    role: client
spec:
  selector:
    component: elasticsearch
    role: client
  ports:
  - name: http
    port: 9200
#type: LoadBalancer
---
apiVersion: v1
kind: Service
metadata:
  name: elasticsearch-master
  namespace: ops
  labels:
    component: elasticsearch
    role: master
spec:
  ports:
  - port: 9300
    name: transport
  clusterIP: None
  selector:
    component: elasticsearch
    role: master
---
apiVersion: v1
kind: Service
metadata:
  name: elasticsearch-data
  namespace: ops
  labels:
    component: elasticsearch
    role: data
spec:
  ports:
  - port: 9300
    name: transport
  clusterIP: None
  selector:
    component: elasticsearch
    role: data

kibana_deployment.yaml

apiVersion: v1
kind: Service
metadata:
  name: kibana
  namespace: ops
  labels:
    app: kibana
spec:
  ports:
  - port: 5601
  selector:
    app: kibana

---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: kibana
  namespace: ops
  labels:
    app: kibana
spec:
  selector:
    matchLabels:
      app: kibana
  template:
    metadata:
      labels:
        app: kibana
    spec:
      containers:
      - name: kibana
        image: docker.idc.cedu.cn/.../kibana:6.7.1_v1
        resources:
          limits:
            cpu: 1000m
          requests:
            cpu: 100m
        env:
          - name: elasticsearch.url
            value: http://elasticsearch-client.ops.svc.idc.cedu.cn:9200
        ports:
        - containerPort: 5601
        readinessProbe:
          tcpSocket:
            port: 5601
          timeoutSeconds: 10
          initialDelaySeconds: 5
        livenessProbe:
          tcpSocket:
            port: 5601
          timeoutSeconds: 10
          initialDelaySeconds: 5
        volumeMounts:
        - name: kibana
          mountPath: "/usr/share/kibana/config" 
      volumes:
      - name: kibana
        configMap:
          name: kibana-config

elasticsearch.yaml

# 生成configmap,进行配置热加载
cluster:
  name: ${CLUSTER_NAME}

node:
  master: ${NODE_MASTER}
  data: ${NODE_DATA}
  name: ${NODE_NAME}
  ingest: ${NODE_INGEST}
  max_local_storage_nodes: ${MAX_LOCAL_STORAGE_NODES}

network.host: ${NETWORK_HOST}

path:
  data: /usr/share/elasticsearch/data
  logs: /usr/share/elasticsearch/logs

bootstrap:
  memory_lock: ${MEMORY_LOCK}

http:
  enabled: ${HTTP_ENABLE}
  compression: true
  cors:
    enabled: ${HTTP_CORS_ENABLE}
    allow-origin: ${HTTP_CORS_ALLOW_ORIGIN}

discovery:
  zen:
    ping.unicast.hosts: ${DISCOVERY_SERVICE}
    minimum_master_nodes: ${NUMBER_OF_MASTERS}

kibana.yaml

# 生成configmap,进行配置热加载
server.name: "kibana"
server.host: "0"
elasticsearch.hosts: [ "http://elasticsearch-client.ops.svc.idc.cedu.cn:9200" ]
xpack.monitoring.ui.container.elasticsearch.enabled: true
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值