2016-01-14 203 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。 –