通过使用本指南(https://kubernetes.github.io/ingress-nginx/deploy/)的2个步骤,我完成了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个实体:
第一个实体在ingress-nginx
部分中称为service & ingress
,第二个实体:
内部工作负载部分,称为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-service
类型的booknotes
(部署)中暴露了Custer IP
。但是当我访问www.domain.com时,它处于待处理状态。我做错了什么?在这种情况下,我对从请求到我的pod的所有流程都不是很了解。
答案 0 :(得分:1)
您是否已将入口控制器的外部IP地址绑定到dns?您可以解析DNS吗?尝试nslookup www.domain.com
并检查ip地址是否是您的入口控制器之一。
一旦您解决了DNS问题,您可能会收到404或502作为响应。这意味着您正在解决但没有将流量传递给服务。以此来更新您的问题,我们可以继续。
Pd。-删除入口资源的路径定义中的/*
。只是/