2016-01-14 20 views
8

Xin lỗi cho câu hỏi noob nhưng từ https://github.com/kubernetes/kubernetes/blob/release-1.1/docs/getting-started-guides/logging-elasticsearch.md nó nói:Biến Setting Môi trường về GCE (kubernetes)

Để sử dụng Elasticsearch và Kibana cho cụm đăng nhập bạn nên thiết lập các sau biến môi trường như hình dưới đây:

KUBE_LOGGING_DESTINATION=elasticsearch 

Tôi làm cách nào để đặt Env này? Tôi đã suy nghĩ rằng tôi nên sử dụng

gcloud container clusters create 

và vượt qua các tùy chọn có nhưng không có tùy chọn ...

Trả lời

3

tài liệu đó là dành cho những người dùng đang chuyển lên các cụm thông qua kịch bản nguồn vỏ mở cho GCE. Elasticsearch hiện không được hỗ trợ như một phần của lệnh tạo cụm cho Google Container Engine. Bạn có thể thêm thủ công nó vào cụm của bạn sau khi cụm đã được tạo.

12

Như đã đề cập trong câu trả lời của Robert, ngăn xếp Elasticsearch/Kibana cần được thêm thủ công nếu cụm được cho là chạy trên Google Container Engine (GKE). Sử dụng thông tin đưa ra trong post này, tôi đã có thể có được nó để làm việc thực hiện các bước sau:

  1. Bắt đầu Cluster GKE mà không cần đám mây khai thác gỗ

    gcloud container --project <PROJECT_ID> clusters create <CLUSTER_ID> --no-enable-cloud-logging 
    
  2. Thêm một container fluentd cấu hình để mỗi chạy nút bằng cách sử dụng một kubernetes DaemonSet.

    kubectl create -f fluentd-es.yaml 
    

    fluentd-es.yaml

    apiVersion: extensions/v1beta1 
    kind: DaemonSet 
    metadata: 
        name: fluentd-elasticsearch 
        namespace: kube-system 
        labels: 
        app: fluentd-logging 
    
    spec: 
        template: 
        metadata: 
         labels: 
         app: fluentd-es 
        spec: 
         containers: 
         - name: fluentd-elasticsearch 
         image: gcr.io/google_containers/fluentd-elasticsearch:1.15 
         resources: 
          limits: 
          memory: 200Mi 
          requests: 
          cpu: 100m 
          memory: 200Mi 
         volumeMounts: 
         - name: varlog 
          mountPath: /var/log 
         - name: varlibdockercontainers 
          mountPath: /var/lib/docker/containers 
          readOnly: true 
         volumes: 
         - name: varlog 
         hostPath: 
          path: /var/log 
         - name: varlibdockercontainers 
         hostPath: 
          path: /var/lib/docker/containers 
    
  3. Thêm elasticsearch và kibana vỏ và dịch vụ.

    kubectl create -f es-controller.yaml 
    kubectl create -f es-service.yaml 
    kubectl create -f kibana-controller.yaml 
    kubectl create -f kibana-service.yaml 
    

    Lưu ý dưới đây rằng kubernetes.io/cluster-service: "true" nhãn (hiện trong bản gốc files) đã bị xoá. Có nhãn này trong các định nghĩa dẫn đến chấm dứt các nhóm đang chạy.

    es-controller.yaml

    apiVersion: v1 
    kind: ReplicationController 
    metadata: 
        name: elasticsearch-logging-v1 
        namespace: kube-system 
        labels: 
        k8s-app: elasticsearch-logging 
        version: v1 
    spec: 
        replicas: 2 
        selector: 
        k8s-app: elasticsearch-logging 
        version: v1 
        template: 
        metadata: 
         labels: 
         k8s-app: elasticsearch-logging 
         version: v1 
         kubernetes.io/cluster-service: "true" 
        spec: 
         containers: 
         - image: gcr.io/google_containers/elasticsearch:1.8 
         name: elasticsearch-logging 
         resources: 
          limits: 
          cpu: 100m 
          requests: 
          cpu: 100m 
         ports: 
         - containerPort: 9200 
          name: db 
          protocol: TCP 
         - containerPort: 9300 
          name: transport 
          protocol: TCP 
         volumeMounts: 
         - name: es-persistent-storage 
          mountPath: /data 
         volumes: 
         - name: es-persistent-storage 
         emptyDir: {} 
    

    es-service.yaml

    apiVersion: v1 
    kind: Service 
    metadata: 
        name: elasticsearch-logging 
        namespace: kube-system 
        labels: 
        k8s-app: elasticsearch-logging 
        kubernetes.io/name: "Elasticsearch" 
    spec: 
        ports: 
        - port: 9200 
        protocol: TCP 
        targetPort: db 
        selector: 
        k8s-app: elasticsearch-logging 
    

    kibana-controller.yaml

    apiVersion: v1 
    kind: ReplicationController 
    metadata: 
        name: kibana-logging-v1 
        namespace: kube-system 
        labels: 
        k8s-app: kibana-logging 
        version: v1 
    spec: 
        replicas: 1 
        selector: 
        k8s-app: kibana-logging 
        version: v1 
        template: 
        metadata: 
         labels: 
         k8s-app: kibana-logging 
         version: v1 
         kubernetes.io/cluster-service: "true" 
        spec: 
         containers: 
         - name: kibana-logging 
         image: gcr.io/google_containers/kibana:1.3 
         resources: 
          limits: 
          cpu: 100m 
          requests: 
          cpu: 100m 
         env: 
          - name: "ELASTICSEARCH_URL" 
          value: "http://elasticsearch-logging:9200" 
         ports: 
         - containerPort: 5601 
          name: ui 
          protocol: TCP 
    

    kibana-service.yaml

    apiVersion: v1 
    kind: Service 
    metadata: 
        name: kibana-logging 
        namespace: kube-system 
        labels: 
        k8s-app: kibana-logging 
        kubernetes.io/name: "Kibana" 
    spec: 
        ports: 
        - port: 5601 
        protocol: TCP 
        targetPort: ui 
        selector: 
        k8s-app: kibana-logging 
    
  4. Tạo một proxy kubectl

    kubectl proxy 
    
  5. Xem các bản ghi của bạn với kibana tại

    http://localhost:8001/api/v1/proxy/namespaces/kube-system/services/kibana-logging/

+2

Bạn có biết nếu nó có thể chạy hai phiên bản của fluentd, @Harry Haller. 1 cho ELK và 1 cho GCL. –