簡體   English   中英

無法在外部 ip Kube.netes 訪問服務

[英]Cannot access service at external ip Kubernetes

我有一個問題,雖然我有外部 IP,但我無法使用 curl 訪問服務。我遇到超時請求。 這是我的服務

NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE crawler-manager-1 NodePort 10.103.18.210 192.168.0.10 3001:30029/TCP 2h redis NodePort 10.100.67.138 192.168.0.11 6379:30877/TCP 5h TPER文件:

apiVersion: v1
kind: Service
metadata:
  annotations:
    kompose.cmd: C:\ProgramData\chocolatey\lib\kubernetes-kompose\tools\kompose.exe
      convert -f docker-compose.yml
    kompose.version: 1.17.0 (a74acad)
  creationTimestamp: null
  labels:
    io.kompose.service: crawler-manager-1
  name: crawler-manager-1
  namespace: cbpo-example
spec:
  type: NodePort
  externalIPs:
    - 192.168.0.10
  ports:
  - name: "3001"
    port: 3001
    targetPort: 3001
  selector:
    io.kompose.service: crawler-manager-1
    run: redis
status:
  loadBalancer: {}

這是我的部署 yml 文件

apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  annotations:
    kompose.cmd: C:\ProgramData\chocolatey\lib\kubernetes-kompose\tools\kompose.exe
      convert -f docker-compose.yml
    kompose.version: 1.17.0 (a74acad)
  creationTimestamp: null
  labels:
    io.kompose.service: crawler-manager-1
  name: crawler-manager-1
  namespace: cbpo-example
spec:
  replicas: 1
  strategy: {}
  template:
    metadata:
      creationTimestamp: null
      labels:
        io.kompose.service: crawler-manager-1
    spec:
      hostNetwork: true
      containers:
      - args:
        - npm
        - start
        env:
        - name: DB_HOST
          value: mysql
        - name: DB_NAME
        - name: DB_PASSWORD
        - name: DB_USER
        - name: REDIS_URL
          value: redis://cbpo-redis
        image: localhost:5000/manager
        name: crawler-manager-1
        ports:
        - containerPort: 3001
        resources: {}
      restartPolicy: Always
status: {}

在使用 kube.netes 時,有人遇到過像我這樣的問題嗎? 我需要訪問以檢查我的命名空間中的 2 個服務是否可以相互連接,非常感謝。

與其通過IP地址進行服務通信,不如使用其DNS名稱進行通信。

為“普通”(非無頭)服務分配了DNS A記錄,該記錄的格式為my-svc.my-namespace.svc.cluster.local。 這解析為服務的群集IP。

還為“無頭”(無群集IP)服務分配了DNS A記錄,該記錄的格式為my-svc.my-namespace.svc.cluster.local。 與普通服務不同,這解析為該服務選擇的Pod的IP集。 希望客戶使用該集合,或者使用該集合中的標准循環選擇。

有關更多信息,請檢查Kubernetes DNS for Services

確保您看到應用程序的端點。 發生這種情況的原因之一是 pod 名稱不匹配。如果我記得的話,它是selector.name

 kubectl get endpoints
 NAME         ENDPOINTS            AGE
 kubernetes   192.168.63.13:8080   1d

暫無
暫無

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

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