KubeCube icon indicating copy to clipboard operation
KubeCube copied to clipboard

[Bug]新版的ingress不能直接使用

Open snpyeso opened this issue 2 years ago • 10 comments

直接通过界面配置,会报错 找不到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 再查看日志,发现没有错误日志,但是域名依然无法访问

snpyeso avatar May 24 '22 15:05 snpyeso

[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

snpyeso avatar May 25 '22 01:05 snpyeso

cc @tiancandevloper

weilaaa avatar May 29 '22 15:05 weilaaa

试着复现了一下,确实存在这个问题,我们修复一下,多谢反馈

tiancandevloper avatar May 30 '22 09:05 tiancandevloper

试着复现了一下,确实存在这个问题,我们修复一下,多谢反馈

如果需要实验环境我可以提供,可以发送email 至 [email protected]

snpyeso avatar May 30 '22 14:05 snpyeso

暂时不用,已经定位问题,是在于我们ingress的svc没有暴露80端口,下个版本会在安装时增加一个选项,选择ingress svc暴露的端口

tiancandevloper avatar May 31 '22 01:05 tiancandevloper

暂时不用,已经定位问题,是在于我们ingress的svc没有暴露80端口,下个版本会在安装时增加一个选项,选择ingress svc暴露的端口 还有443

snpyeso avatar May 31 '22 03:05 snpyeso

暂时不用,已经定位问题,是在于我们ingress的svc没有暴露80端口,下个版本会在安装时增加一个选项,选择ingress svc暴露的端口

现在是在ingress的svc 添加nodeport的80暴露就行了是吧

snpyeso avatar May 31 '22 03:05 snpyeso

是的,或者更推荐使用hostnetwork的模式重新安装ingress controller

tiancandevloper avatar May 31 '22 04:05 tiancandevloper

除此之外,新版本还需额外指定默认的IngressClass,该问题也会在1.2.1中修复。 注意:设置完IngressClass后,需删除已有ingress资源,重新创建才会生效。 image

zhujf1989 avatar May 31 '22 06:05 zhujf1989

期待1.21,不过每次调试一次都会学到不少东西

snpyeso avatar May 31 '22 08:05 snpyeso