2017-10-12 82 views
1

我的場景是,目前,我將我的應用程序作爲守護程序集運行,並且希望將Datadog集成到我的基礎架構中。 正如我的理解是,守護進程設置的目的是確保每個節點上運行每個集合的一個吊艙。Kubernetes Daemonset和Nodeports

在這裏,我想指出我的應用程序在datadog代理,因此它會將數據提供給它。 我已經定義了Nodeport類型的Service以顯示代理的端口。 我在我的應用程序定義中提供了服務名稱,它起作用。對於一個節點。 現在當我有更多的節點時會發生什麼? k8s是否足夠聰明,可以在同一節點上路由到代理,或者存在與我的應用程序一起使用pod可能會在不同節點上調用代理的情況?這是一個正確的設置?

回答

0

比使用DaemonSet運行應用程序更好的方法是使用部署,這樣您就不會將應用程序綁定到羣集中的節點數量。

然後,您可以將數據代理代理映像作爲配置爲spec.template.spec.affinity的DaemonSet進行部署,以選擇運行應用程序窗口的節點。這將確保您的應用程序運行的每個節點中都有一個datadog代理。

另一種選擇是在與應用程序容器相同的窗格中部署datadog代理容器。在這種情況下,您可以通過本地主機訪問代理並一起擴展,但每個節點的代理最終可能不止一個,因此我偏好具有親和性的DaemonSet。

0

我的團隊將它作爲一個守護進程運行,用於收集節點度量標準,但僅將其作爲普通羣集IP服務公開,以便通過編程從羣集中的其他應用程序發送數據。除非需要從集羣外部訪問它,並且沒有入口控制器之類的服務感知負載平衡器,否則無需將其公開在節點端口上。 (這將是一個非常奇怪的用例,因此您不必將其暴露在節點端口上。)