簡體   English   中英

Kubernetes 服務連接被拒絕

[英]Kubernetes Service connection refused

我想用 Kubernetes 創建一個示例應用程序,但是如果我嘗試連接到 Kubernetes 中的響應式服務,連接被拒絕。

例如,如果我從另一個 pod 連接到http://random-generator-svc:5050/,我會收到一個錯誤,提示連接被拒絕。

這是用於為隨機生成器創建服務和部署的 yaml 文件:

apiVersion: v1
  kind: Service
  metadata:
    name: random-generator-svc
    labels:
      app: rand-gen
 spec:
   selector:
     app: rand-gen
     type: NodePort
     ports:
     - protocol: "TCP"
       port: 5050
       targetPort: 5050
       name: http
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: random-generator-deployment
  labels:
    app: rand-gen
spec:
  replicas: 2
  selector:
    matchLabels:
      app: rand-gen
  template:
    metadata:
    labels:
      app: rand-gen
  spec:
    containers:
    - name: random-generator-container
      image: toky03/random-generator-image:1.2
      ports:
      - containerPort: 5050

這是指定服務和“調用者”應用程序部署的 yaml 文件:

apiVersion: v1
kind: Service
metadata:
  name: middle-tier-svc
  labels:
    app: rand-gen
spec:
  selector:
    app: rand-gen
  type: NodePort
  ports:
  - protocol: "TCP"
    port: 7070
    targetPort: 7070
    name: http

---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: middle-tier-controller
  labels:
    app: rand-gen
spec:
  replicas: 1
  selector:
    matchLabels:
      app: rand-gen
  template:
    metadata:
      labels:
        app: rand-gen
    spec:
      containers:
      - name: random-controller-container
        image: toky03/random-controller-image:1.2
        ports:
        - containerPort: 7070

我將類型更改為NodePort以嘗試那里是否也存在此錯誤,但我能夠從集群外部訪問該服務。 我的 Kubernetes DNS 解析器可能有問題嗎?

非常感謝您的幫助。

默認情況下,kubernetes 創建一個虛擬代理。 然后,您可以在端口轉發后訪問您的服務。

kubectl port-forward svc random-generator-svc 5050:5050

那是因為你的 yaml 縮進中有一個輕微的錯字。 嘗試這個

apiVersion: v1
kind: Service
metadata:
  name: random-generator-svc
  labels:
    app: rand-gen
spec:
  selector:
    app: rand-gen
  type: NodePort
  ports:
  - protocol: "TCP"
    port: 5050
    targetPort: 5050
    name: http
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: random-generator-deployment
  labels:
    app: rand-gen
spec:
  replicas: 2
  selector:
    matchLabels:
      app: rand-gen
  template:
    metadata:
      labels:
        app: rand-gen
    spec:
      containers:
      - name: random-generator-container
        image: toky03/random-generator-image:1.2
        ports:
        - containerPort: 5050

如果您只希望您的應用程序在您的集群中公開,只需刪除type: NodePort例如:

apiVersion: v1
kind: Service
metadata:
  name: random-generator-svc
  labels:
    app: rand-gen
spec:
  selector:
    app: rand-gen
  ports:
  - protocol: "TCP"
    port: 5050
    targetPort: 5050
    name: http

試試 "http://random-generator-svc.default.svc.cluster.local:5050" 。 如果您正在使用任何名稱,則可以將“默認”替換為名稱空間。

暫無
暫無

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

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