当前位置: 首页 > 知识库问答 >
问题:

将 kubernetes 入口公开给在 Windows 和 WSL2 上运行 KinD 的主机

岳炎彬
2023-03-14

我通过在WSL2上运行的Docker Destop在Windows上使用KinD,并尝试设置入口以公开主机上的端口。

我按照指南并使用如下所示的配置安装了集群:https://kind.sigs.k8s.io/docs/user/ingress/,以及入口NGINX控制器(来自helm)和一个自定义入口资源,该资源使用正确的类名重定向到我的服务。

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),我无法通过集群配置上设置的< code>hostPort直接访问它。KinD似乎没有将外部ip归属于入口控制器,而是保留在

任何想法为什么以及如何进一步诊断?谢谢!

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

共有1个答案

商焕
2023-03-14

嗯。我不知道KinD,但作为一般原则,入口创建具有外部ip(globaly可用)的公共负载均衡器。此外,在入口配置(vanilla/nginx入口)中,您必须配置endpoint(路径)。还要尝试检查以下内容:https://kubernetes.io/docs/concepts/services-networking/ingress/#name-based-virtual-hosting

 类似资料:
  • 我对Kubernetes是新来的。我跟随Kubernetes艰难的方式从凯斯利Hightower,也是为了建立Kubernetes在Azure。现在所有的服务都启动了,运行良好。但是我不能使用负载平衡器公开流量。我试图添加类型的对象,但外部IP显示为。我需要添加入口来暴露流量。

  • 我在AWS上使用kube-up.sh脚本创建了一个3节点Kubernetes集群(版本:1.5.8),遵循以下演练: https://ryaneschinger.com/blog/building-a-kubernetes-cluster-on-aws/ 我能够成功地访问集群并查看UI。命令的输出: 服务描述符: 我已经为其他3个类似的Spring Boot微服务遵循了相同的过程。 入口描述符:

  • 我正在尝试在Kubernetes上设置Istio作为入口控制器。问题是,我的两个应用程序似乎可以从Istio ingress controllers节点端口访问(例如,http://[host]:31380/application1和http://[host]:31380/application2),但不能从443/80访问。 我是Kubernetes和Istio的新手,所以我使用https://

  • 我正在Azure上设置Kubernetes集群(使用AKS)来托管Elasticsearch、Kibana、自定义api、UI、nginx等。 由于我不希望每个服务都有单独的公共IP,因此我需要一种方法来设置一个公共负载平衡器/入口,然后只需在其中添加端口号并设置路由。 我尝试使用stackoverflow问题中提到的方法-如何在kubernetes中使用负载平衡器服务公开多个端口,但没有成功。

  • 我已经安装了火花图表在我的k8s集群掌舵,我有3个豆荚运行1个主和2个执行,但仍然能够提交火花作业...在“提交应用程序”一节https://github.com/bitnami/charts/tree/master/bitnami/spark中提到我们可以使用。/bin/spark-submit--class org.apache.spark.examples.sparkpi--master s

  • 我正在尝试在本地使用wsl2和docker desk运行bookinfo示例。由于连接被拒绝,我试图通过网关访问productpage服务时遇到问题。我不确定我是否错过了什么。以下是我在网上搜索了很多次后所做的事情 部署了bookinfo示例中的所有服务,并且所有服务都处于运行状态,我可以使用kubectl exec从其他服务中创建productpage 使用示例中的文件部署bookinfo网关,