2016-01-14 262 views
8

對不起,小白的問題,而是從https://github.com/kubernetes/kubernetes/blob/release-1.1/docs/getting-started-guides/logging-elasticsearch.md 它說:設置環境變量(kubernetes)

要使用Elasticsearch和Kibana羣集日誌,你應該設置 以下環境變量,如下圖所示:

KUBE_LOGGING_DESTINATION=elasticsearch 

在哪裏以及如何設置此Env Var?我在想,我應該使用

gcloud container clusters create 

,並通過選項那裏,但沒有options ...

回答

3

該文件被用戶認爲是通過開源shell腳本進行GCE轉向了集羣。目前不支持Elasticsearch爲羣集創建的一部分,谷歌集裝箱引擎命令。羣集創建完成後,您可以手動將其添加到羣集中。

12

正如羅伯特的回答已經提到的Elasticsearch/Kibana棧需要在集羣應該在谷歌集裝箱引擎(GKE)運行手動添加。使用這個post給出的信息,我能得到它的工作執行以下步驟:

  1. 啓動GKE集羣沒有云的日誌記錄

    gcloud container --project <PROJECT_ID> clusters create <CLUSTER_ID> --no-enable-cloud-logging 
    
  2. 添加配置fluentd容器各通過使用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. 添加elasticsearch和kibana豆莢和服務。

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

    注意低於該kubernetes.io/cluster-service: "true"標籤(在原始files本 )已被刪除。 有在定義這個標籤,導致在運行莢終止。

    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服務。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. 創建kubectl代理

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

+2

手錶kibana你的日誌你知道,如果是可以運行的兩個版本fluentd,@哈里​​哈勒。 1個用於ELK,1個用於GCL。 –