2016-01-14 13 views
8

przepraszam za pytanie noob ale z https://github.com/kubernetes/kubernetes/blob/release-1.1/docs/getting-started-guides/logging-elasticsearch.md ona mówi:Ustawianie zmiennych środowiskowych na GCE (kubernetes)

Aby korzystać Elasticsearch i Kibana dla klastra zalogowaniu należy ustawić po zmiennej środowiskowej, jak pokazano poniżej:

KUBE_LOGGING_DESTINATION=elasticsearch 

Gdzie i jak ustawić ten Env Var? Myślałam, że powinienem użyć

gcloud container clusters create 

i przejść do opcji tam, ale nie ma opcji ...

Odpowiedz

3

Dokumentacja ta jest dla użytkowników, którzy stawili się klastrów poprzez otwarte źródła skryptów powłoki dla GCE. Elasticsearch nie jest obecnie obsługiwany jako część poleceń tworzenia klastra dla Google Container Engine. Możesz ręcznie dodać go do swojego klastra po utworzeniu klastra.

12

Jak już wspomniano w odpowiedzi Roberta, stos Elasticsearch/Kibana należy dodać ręcznie, jeśli klaster ma działać w Google Container Engine (GKE). Wykorzystując informacje podane w niniejszym post, udało mi się dostać do pracy, wykonując następujące kroki:

  1. Rozpocznij GKE Cluster bez cloud rejestrowania

    gcloud container --project <PROJECT_ID> clusters create <CLUSTER_ID> --no-enable-cloud-logging 
    
  2. Dodaj skonfigurowany fluentd pojemnik do siebie działający węzeł za pomocą zestawu daemon kubernetes.

    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. Dodaj elasticsearch i Kibana strąków i usług.

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

    uwaga poniżej że kubernetes.io/cluster-service: "true" etykietę ( obecny w oryginalnym files) została usunięta. Posiadanie tej etykiety w definicjach spowodowało zakończenie działania strąków.

    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 
    

    usługa 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. Tworzenie proxy kubectl

    kubectl proxy 
    
  5. Oglądaj swoje logi z Kibana na

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

+2

Czy wiesz, jeśli to możliwe, aby uruchomić dwie wersje fluentd, @Harry Haller. 1 dla ELK i 1 dla GCL. –

Powiązane problemy