标签: nginx-ingress

如何在不同的命名空间上使用 nginx 入口 TCP 服务

我在 kubernetes 集群中部署了两个命名空间。命名空间 A 主机 mysql 和命名空间 B 运行 postgress 并在这些端口上公开他们的服务部署

Namespace(A) - mysql - port (3306)
Namespace(B) - postgress - port (5432)
Run Code Online (Sandbox Code Playgroud)

我需要使用 nginx-ingress kubernetes 集群来路由基于流量,这里是入口的示例 YAML 文件

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: mysql-ingress
  annotations:
    kubernetes.io/ingress.class: nginx
spec:
  rules:
  - host: mysql-ingress
    http:
      paths:
      - path: /mysql
        backend:
          serviceName: mysql
          servicePort: 3306
Run Code Online (Sandbox Code Playgroud)

这个YAML文件更适合HTTP类的服务,如何使用nginx-ingress实现TCP服务

nginx kubernetes nginx-reverse-proxy nginx-ingress

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

如何使用nginx-ingress进行proxy_pass?

我想设置一个 k8s 集群,但我对 nginx-ingress 控制器和我需要设置的一些特殊设置感到绝望:尤其是 proxy_pass。

我已经尝试使用“server-snippet”-snippet 来实现这一点,但是没有用。

apiVersion: networking.k8s.io/v1beta1 # for versions before 1.14 use extensions/v1beta1
kind: Ingress
metadata:
    name: ingress
    annotations:
        nginx.ingress.kubernetes.io/rewrite-target: /$1
        nginx.ingress.kubernetes.io/affinity: "cookie"
        nginx.ingress.kubernetes.io/session-cookie-name: "route"
        nginx.ingress.kubernetes.io/session-cookie-expires: "172800"
        nginx.ingress.kubernetes.io/session-cookie-max-age: "172800"
        nginx.ingress.kubernetes.io/force-ssl-redirect: "false"
        nginx.ingress.kubernetes.io/ssl-redirect: "false"
        nginx.ingress.kubernetes.io/hsts: "false"
        nginx.ingress.kubernetes.io/server-snippet: |
            location / {
                internal;
                proxy_set_header X-Forwarded-Host $host;
                proxy_set_header X-Forwarded-Server $host;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_set_header X-Forwarded-Proto $scheme;
                proxy_set_header X-Real-IP $remote_addr;
                proxy_buffering off;

                proxy_pass http://localhost:30022/site/;
                proxy_redirect default;
                proxy_cookie_path /site/ /;
            }
spec:
    rules:
        - host: preview.test.de
          http:
              paths:
                  - path: / …
Run Code Online (Sandbox Code Playgroud)

kubernetes nginx-ingress

3
推荐指数
1
解决办法
7876
查看次数

将参数向下传递到 ingress-nginx 中的永久重定向

我正在使用nginx.ingress.kubernetes.io/permanent-redirect: https://www.google.com但想在重定向中的 / 之后传递参数。但是不能让它与纯 ingress-nginx 一起工作,如果你可以设置 /$1 或类似的东西,那就太好了。这是否可以与其他注释或技巧混合使用?

例如 https://www.example.com/hello

应该重定向到 https://www.google.com/hello

nginx kubernetes nginx-ingress

3
推荐指数
2
解决办法
4091
查看次数

使用 helm 向 nginx 入口提供 nodeSelector

我花了一些时间研究如何将参数传递给 helm 以便nodeSelector正确配置。

不同的尝试导致不同的错误,例如:

Error: unable to build kubernetes objects from release manifest: error validating "": error validating data: ValidationError(Deployment.spec.template.spec.nodeSelector.kubernetes): invalid type for io.k8s.api.core.v1.PodSpec.nodeSelector: got "map", expected "string"
Run Code Online (Sandbox Code Playgroud)
coalesce.go:196: warning: cannot overwrite table with non table for nodeSelector (map[])
Run Code Online (Sandbox Code Playgroud)

kubernetes nginx-ingress

3
推荐指数
1
解决办法
2220
查看次数

Kubectl - 如何从配置变量中读取入口主机?

我有一个ConfigMap与我的域变量:

apiVersion: v1
kind: ConfigMap
metadata:
  name: config
data:
  MY_DOMAIN: mydomain.com
Run Code Online (Sandbox Code Playgroud)

我的目标是使用MY_DOMAINIngress 配置中的变量

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: myingress
spec:
  tls:
    - hosts:
?       - config.MY_DOMAIN
      secretName: mytls
  rules:
?   - host: config.MY_DOMAIN
      http:
        paths:
          - backend:
              serviceName: myservice
              servicePort: 3000

Run Code Online (Sandbox Code Playgroud)

但显然上面的配置无效。那么如何实现呢?

kubernetes kubectl kubernetes-ingress configmap nginx-ingress

3
推荐指数
1
解决办法
1146
查看次数

是否需要使用 DaemonSet 部署 Ingress Controller?

这是我目前的解决方案:

LoadBalancer Instance with cloud -> Cluster NodePort Service -> Ingress Controller Service -> Ingress Controller Pod。

是否有必要使用 DaemonSet 部署 Ingress Controller?

kubernetes kubernetes-ingress nginx-ingress

3
推荐指数
1
解决办法
1284
查看次数

支持 TLS 的通配符域:GKE 上的 Kubernetes Ingress

我正在开发一个动态部署 kubernetes 资源的应用程序,我希望能够为所有这些资源提供一个共享的 SSL 证书。在任何给定时间,所有服务都有路径*.*.*.example.com

我听说 cert-manager 会自动配置/重新配置证书,但如果开销太大,我不一定需要自动配置。该解决方案还需要能够处理这些嵌套的 url 子域。

关于最简单的方法有什么想法吗?

ssl https kubernetes kubernetes-ingress nginx-ingress

3
推荐指数
1
解决办法
5546
查看次数

有和没有主机的入口

真的很难理解和调试 ingress 的规则。谁能分享一个好的参考?

问题是入口如何在不指定主机的情况下工作?

    apiVersion: extensions/v1beta1
    kind: Ingress
    metadata:
      annotations:
         nginx.ingress.kubernetes.io/force-ssl-redirect: \"false\"
      name: my-app
    spec:
      rules:
        http:
          paths:
          - backend:
            path: /
              serviceName: my-app
              servicePort: http
Run Code Online (Sandbox Code Playgroud)

分配主机(例如- host: aws-dsn-name.org)后,它不起作用。更改路径后path: /v1/也不起作用:(。

如何调试/检查映射是否正确完成?

此外,何时使用extensions/v1beta1networking.k8s.io/v1beta1

kubernetes-ingress nginx-ingress

3
推荐指数
1
解决办法
4781
查看次数

无法从浏览器访问 Kubernetes MetalLB 外部 IP

我有一个服务类型为 LoadBalancer 的 nginx 部署。我有一个可以从主节点和工作节点访问的外部 IP。我无法从浏览器访问它。

我错过了什么?

kubernetes kubernetes-ingress nginx-ingress metallb kubernetes-networking

3
推荐指数
1
解决办法
137
查看次数

NGINX Ingress 控制器后端协议注释如何在基于路径的路由中工作?

我目前正在 k8s 集群中使用 NGINX 入口控制器。我试图使端到端加密工作,并且我能够使连接一直安全到 pod。

为了实现 HTTPS 一直到 pod,不得不使用注解

nginx.ingress.kubernetes.io/backend-protocol: "HTTPS"
Run Code Online (Sandbox Code Playgroud)

样本入口:

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: foo-api-ingress
  annotations:
    kubernetes.io/ingress.class: "nginx"
    nginx.ingress.kubernetes.io/backend-protocol: "HTTPS"
spec:
  tls:
  - hosts:
    - foo.example.com
    secretName: foo-cert
  rules:
  - host: foo.example.com
    http:
      paths:
      - path: /path1
        backend:
          serviceName: foo-api-path1-service
          servicePort: 443
      - path: /path2
        backend:
          serviceName: foo-api-path2-service
          servicePort: 443
Run Code Online (Sandbox Code Playgroud)

我很困惑这到底是怎么发生的,因为当我们加密连接路径时也会被加密,那么 NGINX 如何进行基于路径的路由?它是否在入口解密连接并重新加密它?另外,使用这种方法会影响性能吗?

ssl nginx kubernetes kubernetes-ingress nginx-ingress

3
推荐指数
1
解决办法
505
查看次数