KubeCube
KubeCube copied to clipboard
[Bug]新版的ingress不能直接使用
直接通过界面配置,会报错 找不到ingressClassName: 由于公司是云服务器,使用了两台有外网的做实验 123.123.123.111 10.10.10.31 (添加了虚拟网卡将外网绑定到主机) 123.123.123.222 10.10.10.32 (添加了虚拟网卡将外网绑定到主机) 10.10.10.31 直接使用的all-in-one模式安装 10.10.10.32 node-join-master 最总结果kube get node显示结果为 10.10.10.31 master 123.123.123.222 node (这里估计填写node ip 10.10.10.32 可以使用内网ip也应该没什么问题)
上面括弧重的猜测已经测试: KUBERNETES_BIND_ADDRESS="10.10.10.32" node-join-master 的时候 显示的也是外网Ip 123.123.123.222 我的网卡信息为
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether fa:16:3e:a0:9e:2b brd ff:ff:ff:ff:ff:ff
inet 10.10.10.32/24 brd 10.10.10.255 scope global dynamic eth0
valid_lft 25917702sec preferred_lft 25917702sec
inet 123.123.123.222/24 brd 123.123.123.255 scope global eth0:1
valid_lft forever preferred_lft forever
inet6 fe80::f816:3eff:fea0:9e2b/64 scope link
valid_lft forever preferred_lft forever
eth0:1 为追加虚拟网卡,绑定我的外网ip
然后添加 deployment dep-ng nginx->80 添加 service svc-ng dep-ng 80->80 添加 ingress ing-ng svc-ng 80 域名a.cn 转发规则“/” 将域名 a.cn解析到123.123.123.111 发现不能访问 查看ingress日志 说找不到ingressClassName 修改ingress ing-ng的yml配置,添加了ingressClassName:nginx 再查看日志,发现没有错误日志,但是域名依然无法访问
[root@zpfrltgup4tujpi1-0001 ~]# kubectl get ingress -n wordpress-space
NAME CLASS HOSTS ADDRESS PORTS AGE
ng-1 nginx a.usudo.cn 80 10h
[root@zpfrltgup4tujpi1-0001 ~]# kubectl get ns
NAME STATUS AGE
default Active 18h
elasticsearch Active 18h
hnc-system Active 18h
ingress-nginx Active 18h
kube-node-lease Active 18h
kube-public Active 18h
kube-system Active 18h
kubecube-monitoring Active 18h
kubecube-project-wordpress Active 17h
kubecube-system Active 18h
kubecube-tenant-wordpresstenant Active 17h
local-path-storage Active 18h
wordpress-space Active 17h
[root@zpfrltgup4tujpi1-0001 ~]# kubectl get pod -n ingress-nginx
NAME READY STATUS RESTARTS AGE
ingress-nginx-admission-create-cf6mw 0/1 Completed 0 18h
ingress-nginx-admission-patch-6m5kt 0/1 Completed 1 18h
ingress-nginx-controller-776d88d5c9-vptdm 1/1 Running 0 18h
[root@zpfrltgup4tujpi1-0001 ~]# kubectl get service -n ingress-nginx
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
ingress-nginx-controller LoadBalancer 10.101.198.84 <pending> 80:30621/TCP,443:32469/TCP 18h
ingress-nginx-controller-admission ClusterIP 10.98.28.60 <none> 443/TCP 18h
[root@zpfrltgup4tujpi1-0001 ~]# kubectl logs -n ingress-nginx ingress-nginx-controller-776d88d5c9-vptdm
日志如下
I0524 14:58:21.313531 8 admission.go:149] processed ingress via admission controller {testedIngressLength:3 testedIngressTime:0.048s renderingIngressLength:3 renderingIngressTime:0s admissionTime:26.4kBs testedConfigurationSize:0.048}
I0524 14:58:21.313570 8 main.go:100] "successfully validated configuration, accepting" ingress="wordpress-space/ng-1"
I0524 14:58:21.316134 8 store.go:474] "creating ingress" ingress="wordpress-space/ng-1" ingressclass="nginx"
I0524 14:58:21.316712 8 event.go:285] Event(v1.ObjectReference{Kind:"Ingress", Namespace:"wordpress-space", Name:"ng-1", UID:"17be4121-7f80-4b25-85ee-54fddec1b4fa", APIVersion:"networking.k8s.io/v1", ResourceVersion:"115139", FieldPath:""}): type: 'Normal' reason: 'Sync' Scheduled for sync
W0524 14:58:21.318857 8 controller.go:1110] Service "kubecube-monitoring/kubecube-monitoring-alertmanager" does not have any active Endpoint.
I0524 14:58:21.318970 8 controller.go:166] "Configuration changes detected, backend reload required"
I0524 14:58:21.410338 8 controller.go:183] "Backend successfully reloaded"
I0524 14:58:21.410989 8 event.go:285] Event(v1.ObjectReference{Kind:"Pod", Namespace:"ingress-nginx", Name:"ingress-nginx-controller-776d88d5c9-vptdm", UID:"cd0e9b8a-4cfb-449e-af78-6fe970d7435a", APIVersion:"v1", ResourceVersion:"1032", FieldPath:""}): type: 'Normal' reason: 'RELOAD' NGINX reload triggered due to a change in configuration
cc @tiancandevloper
试着复现了一下,确实存在这个问题,我们修复一下,多谢反馈
暂时不用,已经定位问题,是在于我们ingress的svc没有暴露80端口,下个版本会在安装时增加一个选项,选择ingress svc暴露的端口
暂时不用,已经定位问题,是在于我们ingress的svc没有暴露80端口,下个版本会在安装时增加一个选项,选择ingress svc暴露的端口 还有443
暂时不用,已经定位问题,是在于我们ingress的svc没有暴露80端口,下个版本会在安装时增加一个选项,选择ingress svc暴露的端口
现在是在ingress的svc 添加nodeport的80暴露就行了是吧
是的,或者更推荐使用hostnetwork的模式重新安装ingress controller
除此之外,新版本还需额外指定默认的IngressClass,该问题也会在1.2.1中修复。
注意:设置完IngressClass后,需删除已有ingress资源,重新创建才会生效。
期待1.21,不过每次调试一次都会学到不少东西