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
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