Die Frage: Ich habe eine VOIP-Anwendung in einem kubernetes Pod ausgeführt. Ich muss in dem Code die öffentliche IP des Host-Computers festlegen, auf dem der Pod ausgeführt wird. Wie kann ich diese IP über einen API-Aufruf oder eine Umgebungsvariable in kubernetes bekommen? (Ich verwende Google Container Engine, falls dies relevant ist.) Vielen Dank!Wie bekomme ich öffentliche IP für kubernetes pod?
Warum brauche ich das? Die Anwendung ist eine SIP-basierte VOIP-Anwendung. Wenn eine SIP-Anforderung eingeht und einen Handshake durchführt, muss die Anwendung eine SIP-Einladungsanfrage zurücksenden, die die öffentliche IP und den Port enthält, den der Remoteserver verwenden muss, um eine RTP-Verbindung für den Audioteil des Aufrufs einzurichten.
Bitte beachten Sie: Ich bin mir dessen bewusst Kubernetes Dienstleistungen und die allgemeine empfohlene Vorgehensweise derer über einen Load-Balancer auszusetzen. Allerdings würde ich gerne HostNetwork = True verwenden und Ports auf dem Host für die Remote-Anwendung offen legen, um RTP-Audiopakete (via UDP) direkt zu senden. Dieses kubernetes-Problem (https://github.com/kubernetes/kubernetes/issues/23864) enthält eine Diskussion über verschiedene Leute, die SIP-basierte VOIP-Anwendungen auf Kubernetes laufen lassen und das allgemeine Konzessionsrecht ist, HostNetwork = true zu verwenden (hauptsächlich für die Leistung und aufgrund von Einschränkungen des UDP-Lastausgleichs glaube ich).
Hallo - wie Sie an die Gemeinde neu sind Sie vielleicht zu Lesen Sie den Leitfaden [Was soll ich tun, wenn jemand meine Frage beantwortet?] (http://stackoverflow.com/help/someone-answers), um zu erfahren, wie Kommentare und Abstimmungs-/Akzeptanzsysteme hier funktionieren. – pagid