我有一个网站在kubernetes集群中运行。我可以在本地访问它,但希望通过internet访问它。(我有一个注册域),但外部IP一直挂起
我按照以下指示工作:https://dev.to/peterj/expose-a-kubernetes-service-on-your-own-custom-domain-52dd
这是服务和入口的代码
kind: Service
apiVersion: v1
metadata:
name: app-service
spec:
selector:
app: website
ports:
- name: http
protocol: TCP
port: 3000
targetPort: 3000
---
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: app-ingress
annotations:
kubernetes.io/ingress.class: nginx
spec:
rules:
- host: www.carina.bernrieder.de
http:
paths:
- path: /
backend:
serviceName: app-service
servicePort: 3000
因此,我正在使用helm安装nginx控制器,但在那之后,Kubectl获取nginx控制器的所有外部IP仍然挂起。
正如@Arghya Sadhu提到的,在当地环境中,这是预期的行为。如果您更深入地了解它在云环境中的工作方式,可能会更容易理解。如果您在GKE、EKS或AKS上应用了Ingress资源,那么在“引擎罩下”还会发生一些事情,不必详细说明。将自动创建带有外部IP的负载平衡器,以便入口可以使用它将外部流量转发到部署在kubernetes群集上的POD。
Minikube没有这样的功能,因为它无法调用任何API来创建额外的基础设施资源,就像在云环境中一样。
但让我们从头开始。您在问题中没有提到任何有关外部IP或域配置的内容。如果您的域没有重定向到的外部静态IP,那么它无论如何都不会工作。
关于这一点,我并不完全同意:
您应该能够使用curl访问应用程序www.carina.bernrieder.de
是的,如果您在/etc/host
文件中添加以下条目,您将能够通过您的域(实际上是通过您甚至不需要拥有的任何域)访问它,因此DNS将不会被使用,它将根据此本地定义的映射来解决:
172.17.0.15 www.carina.bernrieder.de
正如你可以在这里读到的:
注意:如果您在本地运行Minikube,请使用Minikube ip获取外部ip。入口列表中显示的IP地址将是内部IP。
但请记住,这两个IP都是私有IP。入口列表中显示的是内部集群ip,外部集群ip仅从Minikube集群的角度来看是外部的。它仍然是本地网络中分配给Minikube vm的IP。
正如你在问题中所说,你想让它在互联网上可用。正如你所看到的,如果没有额外的配置,它就没有机会工作。
另一件重要的事。你没有提到Minikube的实际安装位置,所以我猜你是在本地计算机上安装的,很可能你在NAT路由器后面。如果这是你的情况,那么在公共互联网上公开它就不那么容易了。您需要在路由器上配置正确的端口转发规则,当然您需要静态IP,或者您需要配置动态DNS,以便能够通过dynamic public IP访问Internet上的计算机。
Minikube主要设计用于与kubernetes在本地进行游戏,而不是用于生产环境。当然,你可以使用它来运行你的小应用程序,但你可能会考虑将其安装在云环境中的VM或某种VPS服务器上。
在minikube等非云环境中,预计将挂起外部IP。您应该能够使用curl www.carina访问应用程序。伯纳德。de
下面是使用nginx入口在minikube上公开应用程序的指南
我是整个Kubernetes社区的新手,目前我正在尝试使用Ingress Nginx来暴露仪表板。我试过几种方法,但我找不到一个很好的解释如何暴露仪表板入口。我现在拥有的只是一个仪表板,可以通过“kubectl port forward”访问。我还安装了Ingress Nginx,控制器正在运行。我应该如何开始为kubernetes仪表板创建入口?
所以我已经使用库伯内特斯在Google云上设置了我的应用程序。我有一个Pod,我想从需要TCP请求的集群中公开它。 我通过ingress nginx了解到这是可能的,并对此进行了研究。如本文所述,可以通过如下方式设置configMap来完成: ,但它的完整用法没有明确描述,也没有在文档中找到完整的示例。 我已经安装了《安装指南》中提到的ingress nginx,但我不确定下一步将如何暴露我的Po
我在K8S集群中面临一个奇怪的问题 基本上我有两个应用程序: identity manager(基于WSO2,但该问题与WSO2无关) 将管理X509身份验证的外部SAML2 IDP 为了使用这个外部SAML2 IDP,我配置了WSO2 当我尝试通过X509登录时,WSO2显示登录页面,我单击智能卡,重定向到外部SAML IDP。 在这种情况下,nginx入口为我提供了502个坏网关。如果我复制U
我的公司有一个伪造的CA证书。实例com和一张伪造地图的唱片。实例com连接到我们的负载平衡器的IP 负载平衡器正在将流量转发到我们的Kubernetes群集。 在集群中,我部署了nginx ingress helm图表,在30200处公开了https节点端口 我根据上述证书创建了一个名为test secret的k8s TLS机密。 我部署了一个带有服务“test”的应用程序,并安装了以下入口:
我试图设置Kubernetes入口,将外部http流量路由到前端pod(路径/)和后端pod(路径/rest/*),但我总是得到400错误,而不是主nginx索引。html。 所以我在第https://cloud.google.com/kubernetes-engine/docs/tutorials/http-balancer页尝试了谷歌库伯内特斯的例子,但我总是得到400个错误。有什么想法吗?
为了在minikube的k8s上运行php fpm应用程序,我缺少一些kubernetes ingress nginx配置。 k8s配置文件: 先前docker开发环境的docker Nginx映像上使用的Nginx服务器工作配置文件(Nginx位于docker中,是与php容器分离的容器): 在浏览器上访问minikube ip时,出现502错误。 我已经安装了运行以下命令的ingress ng