k8s创建ingress,没有生成EXTERNAL-IP

前提,本地VMware 搭建了一master两node节点的集群
master:192.168.89.100
node3:192.168.89.103
node4:192.168.89.104
image

一.
按照官网提供的yaml安装nginx-ingress-controller,


kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.1.1/deploy/static/provider/cloud/deploy.yaml

二.
查看 ingress-nginx名称空间的pod


image

三.
创建deploy,svc,ingress


创建deploy
image
创建svc,并访问
image
创建ingress
image

四.
在本地电脑C:\Windows\System32\drivers\etc\hosts配置192.168.89.100 demo.localdev.me(模仿dns解析)

五.
本地浏览器访问,结果报错

六.
查询很多资料也不知道为啥,后面在群里咨询了@sam大佬
发现ingress-nginx的svc中的ingress-nginx-controller,EXTERNAL-IP为空,集群外无法访问

七.
修改ingress-nginx-controller,在如下位置添加EXTERNAL-IP
kubectl edit -n ingress-nginx service/ingress-nginx-controller


EXTERNAL-IP已经存在

再次访问,还是不行

八.
经sam大佬提醒,EXTERNAL-IP需要填写ingress-nginx-controller安装机器的ip,而不是master的ip
pod是安装在node4节点


修改EXTERNAL-IP为node4的ip
kubectl edit -n ingress-nginx service/ingress-nginx-controller

修改hosts

九.
终于访问成功

发个帖子记录一下这个坑
疑问点:
为啥官方提供的nginx-ingress-controller的yaml安装会没有指定EXTERNAL-IP呢?

你好!我遇到跟你这边一样的问题了。EXTERNAL-IP这个是ip修改成容器的ip吗?还是容器所在节点的节点ip。我这边修改为节点ip。目前还是访问不到。

EXTERNAL-IP修改成ingress-nginx-controller所在的node4节点地址,我的是:192.168.89.104,查看命令看八的截图

关闭