标签: kubernetes-ingress

如何在Helm NginX Ingress控制器上使用ConfigMap配置-Kubernetes

我找到了有关如何使用ConfigMap配置NginX入口控制器的文档:https : //kubernetes.github.io/ingress-nginx/user-guide/nginx-configuration/configmap/

不幸的是,我不知道并且在任何地方都找不到如何从我的Ingress控制器加载该ConfigMap的信息。

我的入口控制器:

helm install --name ingress --namespace ingress-nginx --set rbac.create=true,controller.kind=DaemonSet,controller.service.type=ClusterIP,controller.hostNetwork=true stable/nginx-ingress
Run Code Online (Sandbox Code Playgroud)

我的配置图:

kind: ConfigMap
apiVersion: v1
metadata:
  name: ingress-configmap
data:
  proxy-read-timeout: "86400s"
  client-max-body-size: "2g"
  use-http2: "false"
Run Code Online (Sandbox Code Playgroud)

我的入口:

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: ingress
  annotations:
    nginx.ingress.kubernetes.io/backend-protocol: "HTTPS"
spec:
  tls:
    - hosts:
        - my.endpoint.net
      secretName: ingress-tls
  rules:
    - host: my.endpoint.net
      http:
        paths:
          - path: /
            backend:
              serviceName: web
              servicePort: 443
          - path: /api
            backend:
              serviceName: api
              servicePort: 443
Run Code Online (Sandbox Code Playgroud)

如何使我的Ingress从ConfigMap加载配置?

kubernetes kubernetes-helm kubernetes-ingress nginx-ingress

8
推荐指数
3
解决办法
3897
查看次数

是否可以使用单个 GKE 入口控制器拥有多个入口资源

GKE Ingress 文档中 指出:

当您创建 Ingress 对象时,GKE Ingress 控制器会创建一个 Google Cloud HTTP(S) 负载均衡器,并根据 Ingress 及其关联服务中的信息对其进行配置。

对我来说,我似乎无法通过单个 GCP 入口控制器拥有多个入口资源。相反,GKE 为每个入口资源创建一个新的入口控制器。

真的是这样吗?或者 GKE 中的单个入口控制器是否可以拥有多个入口资源?

我希望有一个 GCP LoadBalancer 作为配置了静态 IP 和 DNS 的入口控制器,然后在集群中运行多个应用程序,每个应用程序使用应用程序特定的主机和/或路径规范注册自己的入口资源。

请注意,我对 GKE、GCP 和 Kubernetes 总体来说还很陌生,所以我可能误解了一些东西。

google-cloud-platform kubernetes google-kubernetes-engine kubernetes-ingress

8
推荐指数
2
解决办法
6518
查看次数

通过 Ingress 的 Kubernetes 仪表板

我有带有 Ingress/Traefik 控制器的 Kubernetes 集群

另外,我使用这里的标准配置安装了仪表板:https : //raw.githubusercontent.com/kubernetes/dashboard/master/src/deploy/recommended/kubernetes-dashboard.yaml

我正在尝试通过 Ingress 访问仪表板,但出现 404 错误

404 page not found
Run Code Online (Sandbox Code Playgroud)

我的 ingress.yml 文件看起来像这样

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  annotations:
    kubernetes.io/ingress.class: "traefik"
  name: app-ingress-system
  namespace: kube-system
spec:
  tls:
  - hosts:
    - dashboard.domain.com
    secretName: kubernetes-dashboard-certs
  rules:
  - host: dashboard.domain.com
    http:
      paths:
      - path: /
        backend:
          serviceName: kubernetes-dashboard
          servicePort: 443
Run Code Online (Sandbox Code Playgroud)

我尝试了不同的 - 路径:(如 /dashboard、/proxy)相同的结果

kubernetes kubernetes-dashboard kubernetes-ingress

7
推荐指数
1
解决办法
6468
查看次数

同一后端服务中多条路径的 K8s Ingress 规则

我正在尝试设置入口负载平衡器。基本上,我有一个具有多个路径的后端服务。

假设我的后端 NodePort 服务名称是 hello-app。与此服务关联的 pod 公开多个路径,如 /foo 和 /bar。下面是例子

NodePort 服务和相关部署

    apiVersion: v1
    kind: Service
    metadata:
      name: hello-app
    spec:
      selector:
        app: hello-app
      type: NodePort
      ports:
        - protocol: "TCP"
          port: 7799
          targetPort: 7799
    ---
    apiVersion: apps/v1 
    kind: Deployment
    metadata:
      name: hello-app
      labels:
        app: hello-app
    spec:
      replicas: 1
      selector:
        matchLabels:
          app: hello-app
      template:
        metadata:
          labels:
            app: hello-app
        spec:
          containers:
          - name: hello-app
            image: us.gcr.io/hello-app:latest
Run Code Online (Sandbox Code Playgroud)

现在提出如下请求,我面临 404 错误。

http://{ingress-address:port}/foo
http://{ingress-address:port}/bar
Run Code Online (Sandbox Code Playgroud)

我也尝试过以下入口配置,但在这两种情况下都没有帮助。

入口配置 1

http://{ingress-address:port}/foo
http://{ingress-address:port}/bar
Run Code Online (Sandbox Code Playgroud)

入口配置 2

    apiVersion: extensions/v1beta1
    kind: Ingress
    metadata: …
Run Code Online (Sandbox Code Playgroud)

google-kubernetes-engine kubernetes-ingress

7
推荐指数
1
解决办法
1万
查看次数

GKE:入口负载均衡器不使用配置的静态 IP

我在 GCP 中使用 terraform 创建了一个全局静态 IP 地址。但是,当我尝试将其分配给 GKE 集群内的入口控制器时,它会被忽略:

这是我的 kubernetes 配置:

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
    name: homefully-ingress
    annotations:
        kubernetes.io/ingress.global-static-ip-name: "homefully-ingress-root"   
    labels:
        app: homefully-ingress
spec:
    # ...
Run Code Online (Sandbox Code Playgroud)

此处引用的 IP 地址如下所示:

NAME                    REGION        ADDRESS        STATUS
homefully-ingress-root  europe-west3  35.234.83.106  RESERVED
Run Code Online (Sandbox Code Playgroud)

然而,进入并没有使用该IP地址,但另一个随机一个。这是一个相当大的问题,因为我没有使用谷歌的 DNS 服务,所以我需要依赖静态 IP。

相反,这就是我得到的:

Name:             homefully-ingress
Namespace:        default
Address:          35.227.252.112
Default backend:  auth-proxy-staging:4180 (10.4.0.7:4180)
Rules:
  Host                       Path  Backends
  ----                       ----  --------
  adminpanel.homefully.tech
                                homefully-management-frontend-website-staging:80 (10.4.2.7:80)
Annotations:
  kubectl.kubernetes.io/last-applied-configuration:  {"apiVersion":"extensions/v1beta1","kind":"Ingress","metadata":{"annotations":{"kubernetes.io/ingress.class":"gce","kubernetes.io/ingress.global-static-ip-name":"homefully-ingress-root"},"labels":{"app":"homefully-ingress"},"name":"homefully-ingress","namespace":"default"},"spec":{"backend":{"serviceName":"auth-proxy-staging","servicePort":4180},"rules":[{"host":"adminpanel.homefully.tech","http":{"paths":[{"backend":{"serviceName":"homefully-management-frontend-website-staging","servicePort":80}}]}}]}}

  kubernetes.io/ingress.class:                  gce
  kubernetes.io/ingress.global-static-ip-name:  homefully-ingress-root
  ingress.kubernetes.io/backends:               {"k8s-be-31611--026ed6556721059b":"Unknown","k8s-be-32450--026ed6556721059b":"Unknown"}
  ingress.kubernetes.io/forwarding-rule:        k8s-fw-default-homefully-ingress--026ed6556721059b
  ingress.kubernetes.io/target-proxy:           k8s-tp-default-homefully-ingress--026ed6556721059b
  ingress.kubernetes.io/url-map: …
Run Code Online (Sandbox Code Playgroud)

google-cloud-platform google-kubernetes-engine kubernetes-ingress

7
推荐指数
1
解决办法
1651
查看次数

Kubernetes Ingress path rewrites

I am running Ingress for some services on Kubernetes, and although services are re-directing to those cluster IPs (somewhat correctly), I am not sure how to correctly resolve paths after just those basic paths, for example, if I have Tomcat in path / and Nginx on path /nginx, any Tomcat path after / does not resolve and neither does any Nginx path resolve for even /. I already have nginx.ingress.kubernetes.io/rewrite-target: / set in my ingress.yaml:

apiVersion: extensions/v1beta1 …
Run Code Online (Sandbox Code Playgroud)

url-rewriting kubernetes kubernetes-ingress

7
推荐指数
1
解决办法
1万
查看次数

Nginx 入口控制器与 HAProxy 负载均衡器

Kubernetes 中的 Nginx 入口控制器和 HAProxy 负载均衡器有什么区别?

nginx haproxy kubernetes kubernetes-ingress

7
推荐指数
1
解决办法
5242
查看次数

无法将静态 IP 连接到 GKE 上的 Ingress

我正在尝试将我的入口连接到静态 IP。我似乎正在遵循所有教程,但似乎仍然无法将我的静态 ip 附加到入口。我的ingress文件如下(参考静态ip“test-ip”)

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: ingress-web
  annotations:
    kubernetes.io/ingress.global-static-ip-name: "test-ip"
    kubernetes.io/ingress.class: nginx
    nginx.ingress.kubernetes.io/add-base-url: "true"
    nginx.ingress.kubernetes.io/ssl-redirect: "true"
spec:
  rules:
    - http:
        paths:
          - path: /api/
            backend:
              serviceName: api-cluster-ip-service
              servicePort: 5005
          - path: /
            backend:
              serviceName: web-cluster-ip-service
              servicePort: 80
Run Code Online (Sandbox Code Playgroud)

然而,当我跑

kubectl get ingress ingress-web
Run Code Online (Sandbox Code Playgroud)

它返回

kubectl get ingress ingress-web
NAME          HOSTS     ADDRESS   PORTS     AGE
ingress-web   *                   80        4m
Run Code Online (Sandbox Code Playgroud)

不给地址。在 VPC 网络中 [外部 IP 地址] 静态 ip 在那里,它是全局的,但它一直说:In use by None

 gcloud compute addresses describe test-ip --global
Run Code Online (Sandbox Code Playgroud)

address: …
Run Code Online (Sandbox Code Playgroud)

static-ip-address google-cloud-platform kubernetes-ingress nginx-ingress

7
推荐指数
3
解决办法
2797
查看次数

Ingress 如何支持 JWT 认证?

现在我使用 Ingress-Nginx 作为外部流量的路由服务。但是很少有文章介绍Ingress是如何玩JWT认证来保护内部API的。有人可以分享一些有关它的信息吗?

jwt kubernetes kubernetes-ingress nginx-ingress

7
推荐指数
1
解决办法
6764
查看次数

Google Kubernetes Engine:如何为多个命名空间定义一个 Ingress?

在 GKE 上,K8s Ingress 是 Compute Engine 提供的负载均衡器,它们有一定的成本。例如 2 个月我支付了 16.97 欧元。

在我的集群中,我有 3 个命名空间(default,devprod),因此为了降低成本,我想避免产生 3 个 LoadBalancer。问题是如何配置当前的指向正确的命名空间?

GKE 要求入口的目标 Service 类型为NodePort,由于该限制,我被卡住了。

我想做类似的事情:

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
 namespace: dev
 annotations: # activation certificat ssl
   kubernetes.io/ingress.global-static-ip-name: lb-ip-adress     
spec:
 hosts:
    - host: dev.domain.com 
      http:
        paths:
          - path: /*
            backend:
              serviceName: dev-service # This is the current case, 'dev-service' is a NodePort
              servicePort: http

    - host: domain.com 
      http:
        paths:
          - path: /*
            backend:
              serviceName: …
Run Code Online (Sandbox Code Playgroud)

kubernetes google-kubernetes-engine kubernetes-ingress

7
推荐指数
1
解决办法
3592
查看次数