我已经使用本指南 ( 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
然后,我从我的booknotes
(部署)中使用Custer IP
类型公开了booknotes-service
。但是当我访问 www.domain.com 时,它处于挂起状态。我做错了什么?在这种情况下,我不太了解从请求到我的 pod 的所有流程。
最佳答案
你的ingress controller的外网ip地址绑定(bind)到你的dns了吗?你能解决dns吗?尝试 nslookup www.domain.com
并检查 IP 地址是否是您的入口 Controller 之一。
一旦您解决了 dns 问题,您可能会收到 404 或 502 作为响应。这意味着您正在解析但不将流量传递给服务。用那个更新你的问题,我们可以继续。
Pd.- 删除入口资源路径定义中的/*
。只是 /
关于kubernetes - Nginx 入口 Controller 配置 (gke),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58613895/