当前位置: 首页 > 知识库问答 >
问题:

在nginx入口控制器后面启用tls时,keydepeat停止工作

郤玉书
2023-03-14

我需要关于如何使用TLS在eks kubernetes上配置nginx入口控制器和keydepage的建议。

我的第一次尝试是在没有TLS的情况下让Keyclope工作。这很好用。但是,当我将TLS添加到入口定义中时,keyClope给出了一个无效参数:redirect\u uri error。

这是工作示例:

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: keycloak-tls-test
  namespace: keycloak-tls-test
spec:
  rules:
  - host: keycloak.test.myhops.com
    http:
      paths:
      - backend:
          serviceName: keycloak
          servicePort: 80

当我添加tls部分时,我得到了上述错误。请参阅下面的yaml文件

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: keycloak-tls-test
  namespace: keycloak-tls-test
spec:
  tls:
  - hosts:
    - keycloak.test.myhops.com
    secretName: test-myhops-tls
  rules:
  - host: keycloak.test.myhops.com
    http:
      paths:
      - backend:
          serviceName: keycloak
          servicePort: 80

有什么建议可以解决这个问题吗?一个在线建议是添加https://keycloak.test.myhops.com/*到主域中安全管理控制台客户端的有效重定向URL。这解决了无效的redirect\u uri错误,但我只得到了空白页面。我在keydeport日志中找不到提示。

共有1个答案

应和光
2023-03-14

我找出了问题的原因。似乎当在终止TLS的反向代理后面使用key斗篷时,key斗篷需要设置代理地址转发。对于docker容器,这意味着env var PROXY\u ADDRESS\u FORWARDING=true起到了作用。因此,入口是正确的,keybeapt部署需要一个额外的环境变量。

请不要认为ingress-nginx已经为它设置了正确的标头:

  • X-Forwarded-For
  • X-Forwarded-Proto

Docker文档[Keyclope documentation 2

 类似资料:
  • 我使用nginx入口控制器在GKE上设置了一个新的kubernetes集群。TLS不起作用,它在使用假证书。 有很多配置细节,所以我做了一个回购https://github.com/jobevers/test_ssl_ingress 简而言之,步骤是 创建一个没有GKE负载均衡器的新集群 用我的密钥和证书创建一个tls秘密 创建一个nginx入口部署/pod 创建入口控制器 nginx-ingre

  • NGINX入口控制器不在Amazon EKS上工作 我使用eksctl在私有子网上创建了一个Amazon EKS集群。 我必须标记私有子网,否则无法创建负载均衡器 然后,我使用以下安装说明安装了NGINX入口控制器:https://docs.nginx.com/nginx-ingress-controller/installation/installation-with-manifests/ 我使

  • 操作系统:RHEL7|k8s版本:1.12/13|kubes祈祷|裸机 我部署了一个标准的kubespray裸机集群,我正在尝试了解部署nginx ingress controller的最简单推荐方法是什么,它将允许我部署简单的服务。没有提供负载平衡器。我希望我的主公共IP作为我的服务的endpoint。 Github k8s ingress nginx建议将节点端口服务作为“强制”步骤,这似乎不

  • 我在RedHat EC2实例上安装了Minikube v1.3.1以进行一些测试。 由于nginx-ingress-控制器默认使用的端口已经在使用中,我正在尝试在部署中更改它们,但没有结果。有人能建议如何做吗? 如何知道端口已在使用? 当我使用命令kubectl-n kube system get deployment | grep nginx列出系统吊舱时,我得到: nginx入口控制器0/1

  • 我在Ubuntu虚拟机上使用kubeadm(V1.18)建立了一个k8s集群。现在我需要添加一个入口控制器。我决定使用nginx(但我对其他解决方案持开放态度)。我根据文档中的“裸机”部分安装了它: 安装在我看来很好: 我怀疑是DNS,但其他NodePort服务正按预期工作,而DNS在集群内工作。 我唯一能看到的是,我没有default-http-backend,这里的文档中提到了这个defaul

  • 我试图创建一个入口控制器,它指向我通过Nodeport公开的服务。 以下是入口控制器的yaml文件(摘自https://kubernetes.io/docs/tasks/access-application-cluster/ingress-minikube/):