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

Kubernetes Nginx入口部分ssl终止

马欣荣
2023-03-14

我希望以以下方式分割Kubernetes Nginx中的传入流量:

Client --> Nginx --> {Service A, Service B}
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: ingress-proxy
  annotations:
    nginx.ingress.kubernetes.io/backend-protocol: HTTPS
    nginx.ingress.kubernetes.io/upstream-vhost: example.com
spec:
  tls:
  - hosts:
    - proxy.com
    secretName: secret
  rules:
    - host: proxy.com
      http:
        paths:
          - path: /api/v1/endpoint
            backend:
              serviceName: service-a
              servicePort: 8080
          - path: /
            backend:
              serviceName: service-b
              servicePort: 443

我为服务-B.external:443找到了指向example.com的路由。

此解决方案仅在service-b超过HTTPS的情况下工作,但在我的情况下,由于其他一些内部依赖关系,我无法将此服务更改为HTTPS。

我的问题是backend-protocol注释适用于整个类型,我不能按路径定义它。

附:我正在使用AWS提供程序

共有1个答案

祁绪
2023-03-14

根据建议的解决方案和意见提出的问题。

是的,就像下面提到的,有两个入口项目是可能的。在您的情况下,只有一个应该有后端协议在其中。

根据nginx入口文档:

apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
  name: ingress-myservicea
  annotations:
    # use the shared ingress-nginx
    kubernetes.io/ingress.class: "nginx"
spec:
  rules:
  - host: myservicea.foo.org
    http:
      paths:
      - path: /
        backend:
          serviceName: myservicea
          servicePort: 80
---
apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
  name: ingress-myserviceb
  annotations:
    # use the shared ingress-nginx
    kubernetes.io/ingress.class: "nginx"
spec:
  rules:
  - host: myserviceb.foo.org
    http:
      paths:
      - path: /
        backend:
          serviceName: myserviceb
          servicePort: 80

Kubectl获取服务-n入口-nginx

也可以像这里提到的那样有单独的nginx类。

 类似资料:
  • 我在Kubernetes集群中安装了Kubernetes NGINX入口 我在AWS EC2实例上部署了所有内容,经典负载均衡器位于入口控制器的前面。我可以用http端口访问服务,但不能用HTTPS访问它。 我从godaddy购买了一个有效的域,并从证书管理器获得了AWS SSL证书

  • 删除动态 申请动态置顶 申请动态评论置顶 通过评论置顶 拒绝评论置顶 删除动态 DELETE /feeds/:feed/currency Response Status: 204 No Content 申请动态置顶 POST /feeds/:feed/currency-pinneds Input 名称 类型 描述 amount Integer 必须,置顶总价格,积分。 day Integer

  • 在保持云不可知的情况下创建一些通用组件来部署入口是否重要? 其他公司如何将它们的入口资源部署到k8s集群?

  • 我一直在阅读安全(SSL)路由的Openshift文档。因为我使用免费计划,所以我只能有一个“边缘终止”路由,这意味着当外部请求到达路由器时SSL结束,内容通过HTTP从路由器传输到内部服务。 这安全吗?我的意思是,信息传输的一部分最终是通过HTTP完成的。

  • 问题内容: 在React中,Component定义看起来像这样: 然后定义一个这样的组件: 现在我遇到的问题是,在React API 中应该使用 局部 状态对象来调用,该对象表示要更新的属性,如下所示: 请注意,未声明。我的问题是TypeScript不允许这样做,它给出了类似的赋值错误。据我了解,从这个意义上讲,定义是错误的。但是有解决方案吗? 我尝试了这个: 但这会产生相同的错误,即使它在Pla

  • 我有一个JavaSpring Boot Application,我已经将服务器配置为在SSL上运行,这是强制性的。 我已经为我的域创建了一个证书从LetsEncrypt证书,并通过运行为keystore创建了一个p12文件 我想用Ingress Nginx控制器在Kubernetes上公开它,所以我创建了一个秘密 我已经部署了应用程序,可以看到部署文件,当我将本地8443端口转发到其服务的8443