2017-10-06 1 views
1

Lassen Sie uns sagen, Sie brauchen eine benutzerdefinierte App hören auf einen festen Port auf jedem Arbeiter Knoten ?, wie ein Überwachungsmittel laufen, hier ist mein POC für den Fall:Kubernetes daemonset bestimmten Port hören

apiVersion: extensions/v1beta1 
kind: DaemonSet 
metadata: 
    name: monitor 
spec: 
    updateStrategy: 
    type: RollingUpdate 
    rollingUpdate: 
     maxUnavailable: 1 
    template: 
    metadata: 
     labels: 
     app: monitor-nginx 
    spec: 
     # nodeSelector: 
     # app: node-monitor-nginx 
     containers: 
     - name: node-monitor-nginx-container 
      image: nginx:alpine 
      ports: 
      - containerPort: 80 
      hostPort: 31179 
      protocol: TCP 

Lasst uns sagen dass mein Agent den Knotenstatus auf einem Nginx-Pod meldet, damit Sie die Daten auf dem TCP31179 auf jedem Knoten abrufen können.

Warum die Pod es nicht auf den Port auf den Arbeiter Knoten hört?

[email protected]:~# telnet 10.0.1.109 31179 
Trying 10.0.1.109... 
telnet: Unable to connect to remote host: Connection refused 
+0

jeder POD erhält seine eigene IP-Adresse und Anwendung hören auf dieser IP: Port. Sie müssen einen Dienst definieren, um auf den Pod zuzugreifen. wir können mehr als einen Pod im selben Host ausführen, wir können uns an den Host-Port binden. – sfgroups

Antwort

1

Es ist ein Thema, über hostport wenn CNI verwendet wird, Sie informative Diskussion in diesem GitHub issue finden.

Andere als das, können Sie auch in hostNetwork: true als Workaround suchen.

Verwandte Themen