我已經得到了一個小測試羣集上運行羣集級日誌開始通過CoreOS kube-aws
工具使用以下步驟。請注意,雖然我已經運行了,但我還沒有真正玩過它,以確保所有工作正常!
啓用節點
日誌收集你需要編輯cloud-config-worker
和cloud-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設置,在預先存在的集羣上運行此工作,並且可以添加關於執行的其他信息這如果這實際上是你想要的這樣做。
嗨,我知道替代方案,但我已經找到了一種方法來處理當前使用的工具。 – OmriToptix