Service Ingress Nginx Controller未能找到部署在Google云平台上的第二个服务

Service Ingress Nginx Controller未能找到部署在Google云平台上的第二个服务,service,google-cloud-platform,nginx-ingress,Service,Google Cloud Platform,Nginx Ingress,我在GCP上部署了以下2个服务(内置Java): mply6(服务1,侦听GCP外部的8080端口),对应于URL: gami6(服务2,侦听GCP外部端口8081),对应于URL: 要部署和公开服务1的yaml: kind: Service apiVersion: v1 metadata: name: mply6 spec: selector: app: mply6 ports: - protocol: "TCP" port: 80

我在GCP上部署了以下2个服务(内置Java):

  • mply6(服务1,侦听GCP外部的8080端口),对应于URL:

  • gami6(服务2,侦听GCP外部端口8081),对应于URL:

要部署和公开服务1的yaml:

kind: Service
apiVersion: v1
metadata:
  name: mply6
spec:
  selector: 
      app: mply6
  ports:
     - protocol: "TCP"
       port:  80
       targetPort:  8080
  type: LoadBalancer
  loadBalancerIP: "35.223.241.9"

---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: mply6
spec:
  replicas: 1
  selector: 
    matchLabels:
      app: mply6
  template:
    metadata:
      labels:
        app: mply6
    spec:
      containers:
      - name: mply6
        image: gcr.io/mply6-271000/mply6:latest
        ports:
        - containerPort: 8080
部署和公开服务2的yaml:

kind: Service
apiVersion: v1
metadata:
  name: gami6
spec:
  selector: 
      app: gmai6
  ports:
     - protocol: "TCP"
       port:  81
       targetPort:  8081
  type: LoadBalancer
  loadBalancerIP: "35.223.241.9"

---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: gami6
spec:
  replicas: 1
  selector: 
    matchLabels:
      app: gami6
  template:
    metadata:
      labels:
        app: gami6
    spec:
      containers:
      - name: gami6
        image: gcr.io/mply6-271000/gami6:latest
        ports:
        - containerPort: 8081
以及创建入口资源的yaml:

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: basic-ingress
  annotations:
    kubernetes.io/ingress.global-static-ip-name: "35.223.241.9"
spec:
  rules:
  - http:
      paths:
      - path: /path1
        backend:
          serviceName: mply6
          servicePort: 80
      - path: /path2
        backend:
          serviceName: gami6
          servicePort: 81
此外,“kubectl描述入口基本入口”的结果:

Name:             basic-ingress
Namespace:        default
Address:          35.244.199.199
Default backend:  default-http-backend:80 (10.60.1.4:8080)
Rules:
  Host  Path  Backends
  ----  ----  --------
  *
        /multiplications/random   mply6:80 (10.60.0.32:8080)
        /results                  mply6:80 (10.60.0.32:8080)
        /leaders                  gami6:81 (10.60.0.32:8081)
        /stats                    gami6:81 (10.60.0.32:8081)
Annotations:
  kubernetes.io/ingress.global-static-ip-name:  35.223.241.9
Events:
  Type     Reason     Age                   From                      Message
  ----     ------     ----                  ----                      -------
  Normal   CREATE     35m                   nginx-ingress-controller  Ingress default/basic-ingress
  Warning  Translate  21m                   loadbalancer-controller   error while evaluating the ingress spec: could not find service "default/gami6"; could not find service"
default/gami6"
  Warning  Translate  6m17s (x34 over 77m)  loadbalancer-controller   error while evaluating the ingress spec: could not find port "8081" in service "default/gami6"; could no
t find port "8081" in service "default/gami6"
  Normal   CREATE     44s (x1153 over 22h)  loadbalancer-controller   ip: 35.244.199.199
  Normal   UPDATE     7s (x13 over 35m)     nginx-ingress-controller  Ingress default/basic-ingress

基本上,我希望当我给出URL“”时,Ingress Nginx控制器会找到第二个服务“gami6”,但为什么上面的错误消息是:找不到服务“default/gami6”?(在本例中可以找到没有问题的情况)

我无法对上述部署添加任何备注。但是,此部署与


我尝试了文档中提到的部署,并且能够实现您正在尝试的操作。有一个基于路径的负载平衡器路由请求。

首先,我注意到第二个服务yaml有一个输入错误:

规格: 选择器:
应用程序:gmai6感谢卢卡斯发现了打字错误(我愚蠢的错误)!这是根本原因,导致服务gami6无法连接到运行映像文件的pod。使用NodePort公开多个后端服务也是一个好主意,我们将尝试一下!再次感谢!