簡體   English   中英

將 kubernetes 入口暴露給在 Windows 和 WSL2 上運行 KinD 的主機

[英]Exposing kubernetes ingress to host machine running KinD on Windows and WSL2

我通過在 WSL2 上運行的 Docker Destop 在 Windows 上使用 KinD,並嘗試設置入口以在我的主機上公開端口。

我按照指南安裝了集群,配置如下所示: https://kind.sigs.k8s.io/docs/user/ingress/ ,以及 Ingress NGINX 控制器(來自 helm)和一個自定義 Ingress ressource 重定向到我的服務具有正確的類名。

apiVersion: kind.x-k8s.io/v1alpha4
kind: Cluster
nodes:
- role: control-plane
  kubeadmConfigPatches:
  - |
    kind: InitConfiguration
    nodeRegistration:
      kubeletExtraArgs:
        node-labels: "ingress-ready=true"
  extraPortMappings:
  - containerPort: 80
    hostPort: 5180
    protocol: TCP
  - containerPort: 443
    hostPort: 51443
    protocol: TCP

如果我 kubectl 端口轉發到入口服務,它工作正常,我可以訪問服務網站。

但是我無法通過沒有端口轉發(http://localhost:5180)的集群配置上設置的hostPort設置直接訪問它。 KinD 似乎沒有將外部 IP 分配給入口控制器,它保持在 <Pending> 狀態。

知道為什么以及如何進一步診斷嗎? 謝謝!

pod/ingress-nginx-controller-6bf7bc7f94-2r74v                   1/1     Running     0             15h
service/ingress-nginx-controller                         LoadBalancer   10.96.1.208     <pending>     80:30674/TCP,443:30800/TCP              15h
service/ingress-nginx-controller-admission               ClusterIP      10.96.103.184   <none>        443/TCP                                 15h
my-ingress   nginx   *                 80      16h

唔。 我不了解 KinD,但作為一般原則,入口創建具有外部 IP(全局可用)的公共負載均衡器。 同樣在入口(vanilla/nginx 入口)的配置中,您必須配置端點(路徑)。 也嘗試檢查這些東西: https ://kubernetes.io/docs/concepts/services-networking/ingress/#name-based-virtual-hosting

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM