首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Kubernetes -使用nginx-ingress暴露网站

Kubernetes -使用nginx-ingress暴露网站
EN

Stack Overflow用户
提问于 2020-10-15 19:38:55
回答 2查看 86关注 0票数 0

我有一个在kubernetes集群中运行的网站。我可以在本地访问它,但想让它在互联网上可用。(我已经注册了域名),但外部IP一直挂起

我使用的是这个指令:https://dev.to/peterj/expose-a-kubernetes-service-on-your-own-custom-domain-52dd

这是服务和入口的代码

代码语言:javascript
复制
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 get all,但是在那之后nginx控制器的外部IP保持挂起状态。

EN

回答 2

Stack Overflow用户

发布于 2020-10-15 20:20:58

EXTERNAL-IP预计将在非云环境中挂起,例如minikube。您应该能够使用curl www.carina.bernrieder.de访问应用程序

下面是使用nginx入口在minikube上公开应用程序的guide

票数 0
EN

Stack Overflow用户

发布于 2020-10-16 04:06:09

正如@Arghya Sadhu提到的,在当地环境中,这是预期的行为。也许当你更深入地了解它在云环境中的工作方式时,它会更容易理解。不深入细节,如果你在GKEEKSAKS上应用Ingress资源,更多的事情发生在“引擎盖下”。自动创建具有外部IP的负载均衡器,以便您的入口可以使用它将外部流量转发到您的kubernetes集群上部署的Pods

Minikube没有这样的功能,因为它不能调用任何API来创建额外的基础设施资源,就像在云环境中发生的那样。

但让我们从头开始。您在问题中没有提到任何有关您的外部IP或域配置的内容。如果你的域名没有被重定向到的外部静态IP,那么它无论如何都没有机会工作。

关于这一点,我不完全同意:

您应该能够使用curl www.carina.bernrieder.de访问应用程序

可以,您可以通过您的域(实际上是通过您甚至不需要拥有的任何域)访问它,前提是您在/etc/hosts文件中添加了以下条目,这样就不会使用DNS,它将根据此本地定义的映射进行解析:

代码语言:javascript
复制
172.17.0.15 www.carina.bernrieder.de

正如您可以阅读here

注意:如果您在本地运行Minikube,请使用minikube ip获取外部IP。入口列表中显示的IP地址将是内部IP。

但请记住,这两个in都是内网in。入口列表中显示的是内部群集ip,而外部群集仅从Minikube群集的角度来看是外部群集ip。它仍然是本地网络中分配给Minikube vm的IP。

正如你在你的问题中所说的,你想在互联网上提供它。正如你所看到的,如果没有额外的配置,它是没有机会工作的。

另一件重要的事情。你没有提到你的Minikube的实际安装位置,所以我猜你是在你的本地计算机上设置的,很可能你在NAT路由器后面。如果这是你的案例,那么在公共互联网上曝光就不那么容易了。您需要在您的路由器上配置适当的端口转发规则,当然,您还需要一个静态IP,或者您需要配置动态DNS,以便能够通过dynami公共IP访问Internet上的计算机。

kubernetes Minikube主要是为在本地使用kubernetes而不是为生产环境而设计的。当然,您可以使用它来运行您的小应用程序,但然后您可能会考虑将其安装在云环境中的VM或某种VPS服务器上。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64370784

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档