k8s中ingress訪問不到服務

一条java狗發表於2024-06-07

情況:透過k8s部署nacos,部署之後,測試透過service進行訪問,但是透過ingress域名訪問失敗。
原因:
1、我的ingress-controller部署時使用的是deployment,該方式,只會在一個節點上部署pod,而不是全部的pod上進行部署。
2、採用的網路使用的hostNetwork:true,這種方式使用的是本機的網路,除非我採用的域名對應的ip,否則將無法訪問
解決方案一:
1、將ingress-controller.yaml中的service的type改成nodeport
2、並且將deployment中的hostNetwork:true刪除
3、訪問時需要將時格式:域名:埠/地址
例如:nacosdemo.com:30848/nacos
解決方案二:
1、部署ingress-controller時,採用DasemonSet控制器進行部署,這樣將會在每個節點中都會部署ingress-controller的pod,這樣無論訪問哪個節點ip,都可以透過ingress進行訪問
解決方案三:
1、使用nodeName或者NodeSelector進行節點選擇,將ingress-controller的pod固定到某個節點上
2、直接使用任意節點的ip配置域名,進行訪問即可,無需外加埠號格式:域名/地址
nacosdemo.com/nacos

相關文章