【问题标题】:Nginx ingress controller configuration (gke)Nginx 入口控制器配置 (gke)
【发布时间】:2019-10-29 19:06:06
【问题描述】:

我使用本指南 (https://kubernetes.github.io/ingress-nginx/deploy/) 分两步完成了 Nginx Ingress Controller 的安装:

kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/master/deploy/static/mandatory.yaml

kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/master/deploy/static/provider/cloud-generic.yaml

然后它为我创建了 2 个实体:

第一个实体在service & ingress 部分中称为ingress-nginx,第二个:

内部工作负载部分称为nginx-ingress-controller。我的配置过程的下一步是创建具有 Ingress 类型的服务:

ingress.yaml

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
 annotations:
  kubernetes.io/ingress.class: "nginx-ingress-controller"
  nginx.ingress.kubernetes.io/rewrite-target: /
  nginx.ingress.kubernetes.io/from-to-www-redirect: "true"
  kubernetes.io/ingress.global-static-ip-name: my static ip
 name: booknotes-ingress 
 namespace: 'default'  
spec:
 rules:
 - host: www.domain.com
   http:
     paths:
     - path: /*
       backend:
         serviceName: booknotes-service
         servicePort: 80

然后我用Custer IP 类型从我的booknotes(部署)中暴露了booknotes-service。但是当我访问 www.domain.com 时,它处于待处理状态。我做错了什么?在这种情况下,我并不太了解从请求到我的 pod 的所有流程。

【问题讨论】:

  • 您确定kubernetes.io/ingress.class 设置正确吗?如果在 deployment/pod 中没有指定为 arg,则默认为 nginx
  • 我以为它应该是我的nginx入口控制器的名称,我已经更改了它,但它是一样的。我也尝试通过传递本教程中的所有步骤qwiklabs.com/focuses/… 来运行相同的操作,但结果是一样的
  • 注解应该是这个 {kubernetes.io/ingress.class: "nginx"} 你所说的“待处理”是什么意思是外部 IP 处于 LoadBalancer 的待处理状态?
  • 它加载了一段时间,然后我看到了(无法访问此站点)

标签: kubernetes google-kubernetes-engine nginx-ingress


【解决方案1】:

您是否已将入口控制器的外部 IP 地址绑定到您的 dns?你能解决dns吗?尝试nslookup www.domain.com 并检查 IP 地址是否是您的入口控制器之一。

一旦您解决了 dns 问题,您可能会收到 404 或 502 作为响应。这意味着您正在解决但没有将流量传递给服务。更新您的问题,我们可以继续。

Pd.- 删除入口资源路径定义中的/*。就/

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-03-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-08
    • 2020-03-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多