簡體   English   中英

如何將kubernetes pod的主機名設置為其IP地址?

[英]How to set a kubernetes pod's hostname to its IP address?

因此,我有一個部署,該部署創建了N個工作人員Pod,並且提供了一種在內部平衡流量的服務。 我從VM訪問服務。 VM發出請求,然后Pod用其主機名進行響應,以便VM可以與其直接建立連接(用於將結果從實際完成工作的Pod中拉回)。

我遇到的問題是,我的Pod返回的主機名是my-pod-5ff75ddd86-2xdjq,VM無法解析該主機名。 我想知道是否可以將Pod的主機名設置為其IP,因為這意味着我不必更改Pod或VM中運行的工具的任何代碼。

如果您不想更改代碼,則需要公開群集的內部kube-dns ,並將其設置為VM的默認DNS服務器。

關於另一個問題有一些信息

如何為集群外的查詢公開kube-dns服務?

在nginx-controller文檔上,您有一個很好的示例,公開了UDP上的53端口

https://kubernetes.github.io/ingress-nginx/user-guide/exposing-tcp-udp-services/

通過啟動並運行nginx-controller,您必須正確創建一個供該控制器使用的入口,並只需添加以下configMap

apiVersion: v1
kind: ConfigMap
metadata:
  name: udp-services
  namespace: ingress-nginx
data:
  53: "kube-system/kube-dns:53"

根據您的群集設置,您的VM可能甚至無法使用其IP連接到Pod。 默認情況下,pod IP位於覆蓋網絡上,該網絡只能通過集群內部的形式訪問。

如果VM在群集中,您確定針對kube DNS正確引用了pods主機名嗎? 這是有關Pod的DNS的文檔

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM