Nginx入口Kube

时间:2019-03-02 14:45:17

标签: kubernetes nginx-ingress

我对使用Kubernetes的Nginx入口感到困惑。我已经可以将其与“ basic nginx auth”一起使用(尚不能与oauth2一起使用)。

我已经通过头盔安装了

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

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

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

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的输出获得此Ingress时,它具有公共的外部IP。

有关 的是,basic-auth 未应用于该外部IP ;它是敞开的!仅当我尝试访问nginx-ingress-controller的IP时,Nginx身份验证才会启动。

我有很多问题。

  1. 如何使从kubectl apply -f ingress.yaml创建的入口定位到特定的nginx-ingress-controller?
  2. 如何防止新的ingress使用外部IP?
  3. 为什么不启用nginx身份验证?
  4. 我应该使用什么IP(nginx-ingress-controller或 生成一个?)
  5. 如果我想使用生成的IP,那么来自控制器的IP呢?

我一直在寻找文字天的血统,工作实例(以及稀疏的文档,不断变化的文档和github问题)。

编辑:

在这个“官方” documentation中,尚不清楚http://10.2.29.4/是来自ingress还是controller的IP。我假设使用controller是因为当我运行此命令时,另一个甚至都不进行身份验证(无需输入密码即可让我进入)。我正在使用的两个IP都是GCP上的外部IP(公开可用)。

1 个答案:

答案 0 :(得分:1)

我认为您可能对概念定​​义有些误解。

  1. 入口不是一项工作(既不是服务,也不是pod)。这只是一个配置。它不能有“ IP”。将入口视为群集中的路由规则或路由表。
  2. shift是类型为meta的服务,其后有实际运行的Pod,可简化您为集群创建的入口规则。
  3. Nginx-ingress-controller可能是Loadbalancer会路由到的Nginx-ingress-backend,如果找不到匹配的路由。参见this
  4. 通常,default-backend应该是集群中的唯一条目。群集中的其他服务应具有类型nginx-ingress-controller,这样它们就不会暴露在群集外部,只能通过您的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