[英]Kubernetes Internal Service IP cannot find pod
我有以下 pod 定義來運行 nginx 的基本實例
---
apiVersion: v1
kind: Pod
metadata:
name: basic
labels:
appName: static-website
spec:
containers:
- image: nginx
name: basic
我做了以下服務定義
apiVersion: v1
kind: Service
metadata:
name: web-service-local
spec:
type: NodePort
ports:
- targetPort: 80
port: 80
nodePort: 30080
selector:
appName: static-website
❌ 當我嘗試通過服務 IP 訪問 nginx 頁面時,它卡住了
kubectl exec --stdin --tty basic -- /bin/bash
curl web-service-local
我已成功驗證
kubectl get pods
時,pod 運行正常NAME READY STATUS RESTARTS AGE
basic 1/1 Running 0 7m22s
kubectl describe svc web-service-local | grep Selector | awk '{print $2}'
kubectl describe pod basic | grep Labels | awk '{print $2}'
kubectl exec --stdin --tty basic -- /bin/bash
curl localhost
檢索標准 nginx 主頁。kubectl get pods -l appName=static-website -o go-template='{{range.items}}{{.status.podIP}}{{"\n"}}{{end}}'
,返回POD IPkubectl exec --stdin --tty basic -- /bin/bash
apt update && apt upgrade && apt install dnsutils -y
curl **POD IP**
( POD IP ) 來自第一個命令kubectl get pod basic --namespace default
顯示 podkubectl get svc web-service-local --namespace default
kubectl exec --stdin --tty basic -- /bin/bash
apt update && apt upgrade && apt install dnsutils -y
nslookup web-service-local
, nslookup web-service-local.default
和nslookup web-service-local.default.svc.cluster.local
都返回相同的Server: 10.96.0.10
Address: 10.96.0.10#53
Name: web-service-local.default.svc.cluster.local
Address: 10.106.61.252
✅ 我已驗證我可以通過端點 IP 訪問 nginx
kubectl describe svc web-service-local | grep Endpoints | awk '{print $2}'
kubectl describe svc web-service-local | grep Endpoints | awk '{print $2}'
端點 IPkubectl exec --stdin --tty basic -- /bin/bash
curl **Endpoint IP**
由於您有 NodePort 服務類型實現,請嘗試使用瀏覽器中的 nodeIP:NodePort 或執行 curl 作為 NodePort 服務是將外部流量直接獲取到您的服務的最原始方式。 顧名思義,NodePort 在所有節點(VM)上打開一個特定端口,發送到該端口的任何流量都將轉發到該服務。
curl -kvv Nodeip:NodePort
配置有效。 問題出在我的本地 Minikube 設置上。 一旦我搬到 AKS 就好了
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.