簡體   English   中英

Kubernetes中如何獲取服務IP?

[英]How to get the service IP in Kubernetes?

我根據這里的官方文檔運行了一個本地集群。 我按照步驟操作並且它正常工作,直到我設置了一個副本並嘗試暴露它。 我的意思是:

./kubectl expose rc nginx --port=80

輸出是這樣的:

NAME      LABELS      SELECTOR    IP(S)     PORT(S)
nginx     run=nginx   run=nginx             80/TCP

當我再次嘗試時,它說正在運行相同的服務。 我怎么知道IP?

kubectl get service/servicename -o jsonpath='{.spec.clusterIP}'
kubectl get svc <your-service> -o yaml | grep ip

IP 應該是您的主節點的外部 IP。 如果您在本地運行,它應該是 localhost 或您的 VM。

當然,添加給定的端口。

127.0.0.1:80

例如。

PS:通過運行以下命令確保您已經運行了容器/pod:

kubectl get pods

如果這不起作用,我建議代理它,至少用於測試目的。

Kubectl 代理

有幾種方法可以做到這一點:

kubectl get svc <service-name> -o yaml | grep clusterIP

或者例如:

kubectl describe svc <service-name> | grep IP

方便參考:

curl `kc describe svc nginx | grep IP | awk '{print $2}'`

並且作為kurl bash 函數......


## for curling services by name...
kurl() {
  name=$1
  path=$2
  add=`kc describe svc $name | grep IP | awk '{print $2}'`$path
  # echo "hitting $add"
  curl $add
}
# kurl nginx :8080/some/path/you/want

暫無
暫無

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

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