HsinCC987 2025-03-14 15:08 采纳率: 17.6%
浏览 9

K8s ingress用ExternalIP訪問443回應404

我的機器172.1.30.22 已經配置1:1NAT到公網10.63.22.252
透過10.63.22.252:443訪問已經做好的HTTPS Kubesphere console發生404
而172.1.30.22.nip.io:nodeport卻訪問正確

me:~/kubesphere$ kubectl get svc -A
NAMESPACE           NAME                                 TYPE        CLUSTER-IP      EXTERNAL-IP    PORT(S)                      AGE
cert-manager        cert-manager                         ClusterIP   10.233.54.205   <none>         9402/TCP                     21h
cert-manager        cert-manager-webhook                 ClusterIP   10.233.47.21    <none>         443/TCP                      21h
default             kubernetes                           ClusterIP   10.233.0.1      <none>         443/TCP                      23h
ingress-nginx       ingress-nginx-controller             NodePort    10.233.43.61    10.63.22.252   80:32407/TCP,443:31864/TCP   21h
ingress-nginx       ingress-nginx-controller-admission   ClusterIP   10.233.3.0      <none>         443/TCP                      21h
kube-system         coredns                              ClusterIP   10.233.0.3      <none>         53/UDP,53/TCP,9153/TCP       23h
kubesphere-system   extensions-museum                    ClusterIP   10.233.52.234   <none>         443/TCP                      21h
kubesphere-system   ks-apiserver                         ClusterIP   10.233.13.68    <none>         80/TCP                       21h
kubesphere-system   ks-console                           NodePort    10.233.14.199   <none>         80:30880/TCP,443:30881/TCP   21h
kubesphere-system   ks-controller-manager                ClusterIP   10.233.28.81    <none>         443/TCP                      21h
me:~/kubesphere$ kubectl get ingress -A
NAMESPACE           NAME         CLASS   HOSTS                 ADDRESS        PORTS     AGE
kubesphere-system   ks-console   nginx   172.1.30.252.nip.io   10.63.22.252   80, 443   21h

請問是我哪裡設置漏掉了嗎?

  • 写回答

4条回答 默认 最新

  • 阿里嘎多学长 2025-03-14 15:09
    关注

    阿里嘎多学长整理AIGC生成,因移动端显示问题导致当前答案未能完全显示,请使用PC端查看更加详细的解答过程

    K8s ingress用ExternalIP訪問443回應404

    你遇到的問題是,使用 ExternalIP 訪問 K8s ingress 的 443 端口,但卻收到 404 錯誤。

    根據你的描述,172.1.30.22 机器已經配置 1:1 NAT 到公網 10.63.22.252,通過 10.63.22.252:443 訪問已經做好的 HTTPS Kubesphere console,但卻發生 404 錯誤。

    可能的原因是:

    1. Ingress 的 ServiceType 設置為 ClusterIP,而不是 NodePort 或 LoadBalancer。
    2. Ingress 的 Selector 設置錯誤,無法正確地找到對應的 Pod。
    3. Ingress 的 Rules 設置錯誤,無法正確地將流量路由到對應的 Service。

    解決方案:

    1. 檢查 Ingress 的 ServiceType 是否設置為 NodePort 或 LoadBalancer。
    2. 檢查 Ingress 的 Selector 是否正確地設定了對應的 Pod。
    3. 檢查 Ingress 的 Rules 是否正確地設定了流量路由。

    核心部分:

    apiVersion: networking.k8s.io/v1
    kind: Ingress
    metadata:
      name: kubesphere-ingress
    spec:
      rules:
      - host: kubesphere.com
        http:
          paths:
          - path: /
            backend:
              serviceName: kubesphere-console
              servicePort: 443
      selector:
        app: kubesphere-console
      type: LoadBalancer
    

    請注意,這只是一個簡單的範例,實際情況可能需要根據具體情況進行修改。

    评论

报告相同问题?

问题事件

  • 创建了问题 3月14日