zoukankan      html  css  js  c++  java
  • kubernetes elasticsearch2.4 集群安装

    一、制作docker镜像:

    Dockerfile文件:

    FROM alpine:latest
    MAINTAINER chengcuichao
    RUN apk update && apk add openjdk8 shadow sudo
    RUN wget https://download.elastic.co/elasticsearch/release/org/elasticsearch/distribution/tar/elasticsearch/2.4.6/elasticsearch-2.4.6.tar.gz
    RUN tar zxvf elasticsearch-2.4.6.tar.gz -C /usr/local/ && rm -f elasticsearch-2.4.6.tar.gz && /usr/local/elasticsearch-2.4.6/bin/plugin install mobz/elasticsearch-head
    RUN useradd elastic && chown -R elastic:elastic /usr/local/elasticsearch-2.4.6
    
    COPY ./run.sh  /root/
    RUN chmod +x /root/run.sh
    
    CMD /root/run.sh

    run.sh文件:

    #!/bin/sh
    sed -i "s/node.name: node-1/node.name: $HOSTNAME/g" /usr/local/elasticsearch-2.4.6/config/elasticsearch.yml
    sudo -H -u elastic sh /usr/local/elasticsearch-2.4.6/bin/elasticsearch

    上传镜像:

    docker build -t elastic:2.4
    docker tag elastic:1 192.168.78.4/es/elasticsearch:2.4.6
    docker push 192.168.78.4/es/elasticsearch:2.4.6

    二、在kubernetes上创建:

    创建配置文件:

    # ======================== Elasticsearch Configuration =========================
    #
    # NOTE: Elasticsearch comes with reasonable defaults for most settings.
    #       Before you set out to tweak and tune the configuration, make sure you
    #       understand what are you trying to accomplish and the consequences.
    #
    # The primary way of configuring a node is via this file. This template lists
    # the most important settings you may want to configure for a production cluster.
    #
    # Please see the documentation for further information on configuration options:
    # <http://www.elastic.co/guide/en/elasticsearch/reference/current/setup-configuration.html>
    #
    # ---------------------------------- Cluster -----------------------------------
    #
    # Use a descriptive name for your cluster:
    #
    cluster.name: my-application
    #
    # ------------------------------------ Node ------------------------------------
    #
    # Use a descriptive name for the node:
    #
    node.name: node-1
    #
    # Add custom attributes to the node:
    #
    # node.rack: r1
    #
    # ----------------------------------- Paths ------------------------------------
    #
    # Path to directory where to store the data (separate multiple locations by comma):
    #
    # path.data: /path/to/data
    #
    # Path to log files:
    #
    # path.logs: /path/to/logs
    #
    # ----------------------------------- Memory -----------------------------------           
    #                                                                                          
    # Lock the memory on startup:                                                              
    #                                                                                          
    # bootstrap.memory_lock: true                                                              
    #                                                                                          
    # Make sure that the `ES_HEAP_SIZE` environment variable is set to about half the memory   
    # available on the system and that the owner of the process is allowed to use this limit.  
    #                                                                                          
    # Elasticsearch performs poorly when the system is swapping the memory.                    
    #                                                                                        
    # ---------------------------------- Network -----------------------------------         
    #                                                                                        
    # Set the bind address to a specific IP (IPv4 or IPv6):                                          
    #                                                                                                
    network.host: 0.0.0.0                                                                  
    #                                                                                                
    # Set a custom port for HTTP:                                                                    
    #                                                                                                
    http.port: 9200                                                                                
    #                                                                                                
    # For more information, see the documentation at:                                                
    # <http://www.elastic.co/guide/en/elasticsearch/reference/current/modules-network.html>          
    #
    # --------------------------------- Discovery ----------------------------------           
    #                                                                                          
    # Pass an initial list of hosts to perform discovery when new node is started:             
    # The default list of hosts is ["127.0.0.1", "[::1]"]                                      
    #                                                                                        
    discovery.zen.ping.unicast.hosts: ["es-service"]                                   
    #                                                                                        
    # Prevent the "split brain" by configuring the majority of nodes (total number of nodes / 2 + 1):
    #                                                                                                
    discovery.zen.minimum_master_nodes: 2                                                          
    #                                                                                                
    # For more information, see the documentation at:                                                
    # <http://www.elastic.co/guide/en/elasticsearch/reference/current/modules-discovery.html>        
    #                                                                                                
    # ---------------------------------- Gateway -----------------------------------                 
    #                                                                                                
    # Block initial recovery after a full cluster restart until N nodes are started:                 
    #                                                                                                
    # gateway.recover_after_nodes: 3                                                                 
    #                                                                                                
    # For more information, see the documentation at:                                                
    # <http://www.elastic.co/guide/en/elasticsearch/reference/current/modules-gateway.html>          
    #                                                                                                
    # ---------------------------------- Various -----------------------------------                 
    #                                                                                                
    # Disable starting multiple nodes on a single system:                                            
    #                                                                                                
    # node.max_local_storage_nodes: 1                                                                
    #                                                                                                
    # Require explicit names when deleting indices:                                                  
    #                                                                                                
    # action.destructive_requires_name: true                                                         
    elasticsearch.yml
    # you can override this using by setting a system property, for example -Des.logger.level=DEBUG
    es.logger.level: INFO
    rootLogger: ${es.logger.level}, console, file
    logger:
      # log action execution errors for easier debugging
      action: DEBUG
    
      # deprecation logging, turn to DEBUG to see them
      deprecation: INFO, deprecation_log_file
    
      # reduce the logging for aws, too much is logged under the default INFO
      com.amazonaws: WARN
      # aws will try to do some sketchy JMX stuff, but its not needed.
      com.amazonaws.jmx.SdkMBeanRegistrySupport: ERROR
      com.amazonaws.metrics.AwsSdkMetrics: ERROR
    
      org.apache.http: INFO
    
      # gateway
      #gateway: DEBUG
      #index.gateway: DEBUG
    
      # peer shard recovery
      #indices.recovery: DEBUG
    
      # discovery
      #discovery: TRACE
    
      index.search.slowlog: TRACE, index_search_slow_log_file
      index.indexing.slowlog: TRACE, index_indexing_slow_log_file
    
    additivity:
      index.search.slowlog: false
      index.indexing.slowlog: false
      deprecation: false
    
    appender:
      console:
        type: console
        layout:
          type: consolePattern
          conversionPattern: "[%d{ISO8601}][%-5p][%-25c] %m%n"
    
      file:
        type: dailyRollingFile
        file: ${path.logs}/${cluster.name}.log
        datePattern: "'.'yyyy-MM-dd"
        layout:
          type: pattern
          conversionPattern: "[%d{ISO8601}][%-5p][%-25c] %.10000m%n"
    
      # Use the following log4j-extras RollingFileAppender to enable gzip compression of log files. 
      # For more information see https://logging.apache.org/log4j/extras/apidocs/org/apache/log4j/rolling/RollingFileAppender.html
      #file:
        #type: extrasRollingFile
        #file: ${path.logs}/${cluster.name}.log
        #rollingPolicy: timeBased
        #rollingPolicy.FileNamePattern: ${path.logs}/${cluster.name}.log.%d{yyyy-MM-dd}.gz
        #layout:
          #type: pattern
          #conversionPattern: "[%d{ISO8601}][%-5p][%-25c] %m%n"
    
      deprecation_log_file:
        type: dailyRollingFile
        file: ${path.logs}/${cluster.name}_deprecation.log
        datePattern: "'.'yyyy-MM-dd"
        layout:
          type: pattern
          conversionPattern: "[%d{ISO8601}][%-5p][%-25c] %m%n"
    
      index_search_slow_log_file:
        type: dailyRollingFile
        file: ${path.logs}/${cluster.name}_index_search_slowlog.log
        datePattern: "'.'yyyy-MM-dd"
        layout:
          type: pattern
          conversionPattern: "[%d{ISO8601}][%-5p][%-25c] %m%n"
    
      index_indexing_slow_log_file:
        type: dailyRollingFile
        file: ${path.logs}/${cluster.name}_index_indexing_slowlog.log
        datePattern: "'.'yyyy-MM-dd"
        layout:
          type: pattern
          conversionPattern: "[%d{ISO8601}][%-5p][%-25c] %m%n"
    logging.yml

    deployment文件:

    kind: Service
    apiVersion: v1
    metadata:
      labels:
        elastic-app: elasticsearch
      name: es-service
    spec:
      ports:
        - name: business
          port: 9200
          targetPort: 9200
        - name: sync
          port: 9300
          targetPort: 9300
      selector:
        app: elasticsearch
    ---
    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: elasticsearch2.4
      labels:
        app: elasticsearch
    spec:
      replicas: 3
      selector:
        matchLabels:
          app: elasticsearch
      template:
        metadata:
          labels:
            app: elasticsearch
        spec:
            containers:
            - name: es
              image: 192.168.78.4/es/elasticsearch:2.4.6
              volumeMounts:
              - name: elasticsearch-yml
                mountPath: /usr/local/elasticsearch-2.4.6/config/
              env:
              - name: NODE_NAME
                valueFrom:
                  fieldRef:
                    fieldPath: spec.nodeName
              ports:
              - containerPort: 9200
              - containerPort: 9300
            volumes:
            - name: elasticsearch-yml
              configMap:
                name: esconfig
            imagePullSecrets:
            - name: regsecret
  • 相关阅读:
    PTA —— 基础编程题目集 —— 函数题 —— 61 简单输出整数 (10 分)
    PTA —— 基础编程题目集 —— 函数题 —— 61 简单输出整数 (10 分)
    练习2.13 不用库函数,写一个高效计算ln N的C函数
    练习2.13 不用库函数,写一个高效计算ln N的C函数
    练习2.13 不用库函数,写一个高效计算ln N的C函数
    迷宫问题 POJ 3984
    UVA 820 Internet Bandwidth (因特网带宽)(最大流)
    UVA 1001 Say Cheese(奶酪里的老鼠)(flod)
    UVA 11105 Semiprime Hnumbers(H半素数)
    UVA 557 Burger(汉堡)(dp+概率)
  • 原文地址:https://www.cnblogs.com/chimeiwangliang/p/8862229.html
Copyright © 2011-2022 走看看