首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Nginx Ingress

Nginx Ingress
EN

Stack Overflow用户
提问于 2019-03-02 14:45:16
回答 1查看 91关注 0票数 0

我对nginx和Kubernetes的入境感到困惑。我已经能够在"basic“中使用它了( oauth2还不能这样做)。

我是通过头盔安装的:

helm install stable/nginx-ingress --name app-name --set rbac.create=true

这将创建两个服务,一个nginx-ingress-controller和一个nginx-ingress-backend

当我创建入口时,这个入口只针对一个nginx-ingress-controller,但我不知道如何:

代码语言:javascript
复制
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: tomcat
  annotations:
    nginx.ingress.kubernetes.io/auth-type: basic
    nginx.ingress.kubernetes.io/auth-secret: basic-auth
    nginx.ingress.kubernetes.io/auth-realm: "Authentication Required - foo"
    nginx.ingress.kubernetes.io/rewrite-target: /
  namespace: kube-system
spec:
  rules:
  - host:
    http:
      paths:
      - path: /
        backend:
          serviceName: tomcat-deployment-service 
          servicePort: 8080

当我从kubectl get ingress -n kube-system的输出中得到这个信息时,它有一个公共的、外部的IP。

有关的是,basic-auth 没有将应用于外部IP;它是完全开放的!只有当我试图访问nginx-ingress-controller的IP时,Nginx认证才会启动。

我有很多问题。

  1. 如何使从kubectl apply -f ingress.yaml目标创建的入口成为特定的nginx入口控制器?
  2. 如何防止这个新的ingress具有外部IP?
  3. 为什么没有启动nginx身份验证?
  4. 我应该使用什么IP ( nginx-ingress-controller还是生成的IP?)
  5. 如果我要使用生成的IP,那么来自控制器的IP呢?

几天来,我一直在寻找下降、工作示例(以及大量的稀疏、更改文档和github问题)。

编辑:

在这个“官方”文档中,http://10.2.29.4/是来自ingresscontroller的IP,它不清楚天气是否合适。我假设是controller,因为当我运行这个程序时,另一个甚至不进行身份验证(它让我们在不询问密码的情况下进入)。我使用的两个IP都是GCP上的外部IP(可公开获取)。

EN

回答 1

Stack Overflow用户

发布于 2019-03-03 07:20:20

我想你可能有一些概念定义上的误解。

  1. 进场不是工作(也不是服务,也不是豆荚)。这只是一种配置。它不可能有"IP“。将入口视为群集中的路由规则或路由表。
  2. Nginx-ingress-controller是一个类型为Loadbalancer的服务,它后面有实际运行的豆荚,它为您为集群创建的入口规则提供了便利。
  3. 如果没有找到匹配的路由,Nginx-ingress-backend很可能是nginx-ingress-controller路由到的一个default-backend。请参阅
  4. 一般来说,nginx-ingress-controller应该是集群中唯一的条目。集群中的其他服务应该具有ClusterIP类型,这样它们就不会暴露在集群之外,并且只能通过nginx-ingress-controller访问。在这种情况下,由于您的服务可以直接从外部访问,所以它不应该是ClusterIP类型的。只需更改服务类型以获得保护即可。

基于上述理解,我很乐意为您的问题提供进一步的帮助。

一些读数:

  1. 什么是入口:https://kubernetes.io/docs/concepts/services-networking/ingress/
  2. K8s服务和外部可访问性:https://kubernetes.io/docs/concepts/services-networking/service/#publishing-services-service-types
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54959706

复制
相关文章

相似问题

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