簡體   English   中英

Kubernetes 服務 NodePort 未連接

[英]Kubernetes Service NodePort not connected

我在 Windows 10 上使用 minikube。我生成 kubernetes NodePort 服務以從客戶端 Web 瀏覽器訪問。 首先下面的代碼是資源配置文件。

apiVersion: v1
kind: Pod
metadata:
  name: blog-system 
  labels:
    app: blog-pod 
spec:
  containers:
  - name: blog-app
    image: app:latest 
    imagePullPolicy: Never 
    ports:
      - containerPort: 8080
    args: ["-t", "-i"]
  - name: blog-mysql
    image: mysql:latest 
    env:
      - name: MYSQL_ROOT_PASSWORD
        value: password
      - name: MYSQL_PASSWORD
        value: password
      - name: MYSQL_DATABASE
        value: test
    ports:
      - containerPort: 3306

---
apiVersion: v1
kind: Service
metadata:
  name: blog-app-svc
spec:
  type: NodePort   
  selector:
    app: blog-pod  
  ports:
  - name: http
    port: 8080
    protocol: TCP
    targetPort: 80
    nodePort: 31000

Kubernetes Pod 和服務已成功生成。

> kubectl get services
NAME           TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)          AGE
blog-app-svc   NodePort    10.100.32.119   <none>        8080:31000/TCP   79s
kubernetes     ClusterIP   10.96.0.1       <none>        443/TCP          5m54s

> minikube service blog-app-svc --url
http://192.168.5.25:31000

然而,即使使用所有這些 url,對這個 kubernetes nodeport 服務的訪問也被拒絕。

http://10.100.32.119:31000
http://10.100.32.119:8080
http://192.168.5.25:31000

我不知道資源配置文件、服務部分或 pod 部分的錯誤在哪里。 任何想法,請。

您的 Service 的targetPort與您的 Pod 的containerPort不匹配。

您的服務聲明表示,集群中任何節點上的nodePort 31000,或集群內特殊主機名blog-app-svc.default.svc.cluster.local上的port 8080,將轉發到具有app: blog-pod某個 pod 中的targetPort 80 app: blog-pod標簽。 您有那個 pod,但它正在偵聽端口 8080 和 3306 而不是端口 80。

如果您交換porttargetPort port ,那么服務上的默認 HTTP 端口 80 將轉發到您的 pod 中的端口 8080,這可能是您所追求的。

看來您的 NodePort 配置是正確的。 一些故障排除建議是,這可能是由 Kubernetes 工作節點上運行的防火牆引起的。

因此,請確保 31000 已打開,並且您應該能夠從 Kubernetes API 服務器解析該 IP。

其次,您應該考慮將 LoadBalancer 控制器添加到您的集群中,這樣您就不必使用 NodePorts。 除了調試之外,它們並沒有真正用於任何其他用途。

暫無
暫無

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

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