2016-04-24 58 views
3

我正在關注如何配置集羣級別日誌記錄的k8s logging instructions。我使用kube-aws cli Tool來配置羣集,而我似乎無法找到使其工作的方法。 我試着在運行kube-aws up之前設置env vars,就像他們在k8s日誌指南(KUBE_ENABLE_NODE_LOGGING和KUBE_LOGGING_DESTINATION)中提到的那樣,但是這似乎沒有改變任何東西。使用kubernetes在aws上配置coreos

在那之後,我已經嘗試通過從K8S GitHub庫的集羣/插件/ fluentd-elasticsearch目錄把他們手動運行ES和kibana RC的服務,但只跑了那些特定的服務,而不是fluentd-elasticsearch本應該運行的服務也由教程示例。

運行kubectl get pods --namespace=kube-system返回如下:

enter image description here

在這裏我們可以看到,fluentd-elasticsearch-kubernetes-node丟失。

還試圖連接到羣集但失敗:

未經授權

k8s logging instructions和運行命令kubectl config view沒有返回任何用戶名和密碼,並試圖訪問ES時網址,我沒有得到任何對話框詢問用戶名和密碼。不確定它是否與第一個問題有關。

不知道我在這裏錯過了什麼。

謝謝。

回答

0

KUBE_ENABLE_NODE_LOGGINGKUBE_LOGGING_DESTINATION env變量被kube-up.sh腳本使用。我不太瞭解你提到的aws cli工具,但是看看代碼,它看起來不像那些env vars影響那個cli。

http://kubernetes.io/docs/getting-started-guides/aws/詳細介紹了使用kube-up腳本在AWS上啓動kubernetes羣集所需的步驟。

+0

嗨,我知道替代方案,但我已經找到了一種方法來處理當前使用的工具。 – OmriToptix

1

如此看來,有上KUBE-AWS目前對此沒有支持,引用的作者之一:

我們目前工作的一個KUBE-是包括Kibana這種方法分佈用於可視化彈性搜索數據。

還建議解決辦法出現在這個問題上頁包括有關其狀態的額外細節:https://github.com/coreos/coreos-kubernetes/issues/320

1

我已經得到了一個小測試羣集上運行羣集級日誌開始通過CoreOS kube-aws工具使用以下步驟。請注意,雖然我已經運行了,但我還沒有真正玩過它,以確保所有工作正常!

啓用節點

日誌收集你需要編輯cloud-config-workercloud-config-controller出口kubelet收集的日誌,並創建日誌目錄

[Service] Environment="RKT_OPTS=--volume var-log,kind=host,source=/var/log --mount volume=var-log,target=/var/log" Environment=KUBELET_VERSION=v1.2.4_coreos.1 ExecStartPre=/usr/bin/mkdir -p /var/log/containers ExecStart=/usr/lib/coreos/kubelet-wrapper \ --api-servers=http://127.0.0.1:8080 \ --config=/etc/kubernetes/manifests ...other flags...

(摘自「使用集羣日誌記錄附件'部分here

Inst所有日誌記錄組件 我使用了here的組件(正如您已經嘗試的那樣)。正如您注意到的那樣,這不會運行流暢,並假定它作爲羣集引導的一部分運行。爲了得到fluentd運行我提取的fluentd Daemonset定義討論here到一個單獨的文件:

{ "apiVersion": "extensions\/v1beta1", "kind": "DaemonSet", "metadata": { "name": "fluent-elasticsearch", "namespace": "kube-system", "labels": { "k8s-app": "fluentd-logging" } }, "spec": { "template": { "metadata": { "name": "fluentd-elasticsearch", "namespace": "kube-system", "labels": { "k8s-app": "fluentd-logging" } }, "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 } ] } ], "terminationGracePeriodSeconds": 30, "volumes": [ { "name": "varlog", "hostPath": { "path": "\/var\/log" } }, { "name": "varlibdockercontainers", "hostPath": { "path": "\/var\/lib\/docker\/containers" } } ] } } } }

這Daemonset運行在每個集羣節點的fluentd。 (注意:雖然我只在集羣已經運行後嘗試添加這些組件,但沒有理由不應該能夠將這些組件添加到cloud-config-controller中,以便同時將這些組件添加到組件中集羣已啓動 - 與參考的issue上討論的集羣更接近)

這些指令都假設您正在使用您很樂意重新啓動或尚未啓動的羣集,以便讓日誌運行 - 我從你的問題中假設的是你所處的情況。我還可以通過手動編輯AWS設置,在預先存在的集羣上運行此工作,並且可以添加關於執行的其他信息這如果這實際上是你想要的這樣做。

相關問題