在同一Kubernets集群上安装两个traefik入口控制器

问题描述 投票:0回答:1

我有一种情况,我打算在Kubernetes集群中使用两个单独的traefik入口控制器。

我有一些URL仅想通过VPN访问,而很少一些可以公开访问。

[在当前体系结构中,我有一个traefik-inress控制器,以及两个单独的ALB,一个是内部的,一个是面向互联网的,都指向traefik。假设我有一个网址public.example.comprivate.example.compublic.example.com指向面向Internet的ALB,private.example.com指向内部ALB。但是,如果有人知道public.example.com的指向并将private.example.com指向其/etc/hosts中的相同指向,那他将能够访问我的私人网站。

为避免这种情况,我计划运行两个单独的traefik-ingress-controller,一个将仅提供私有URL,一个将提供公共URL。能做到吗?还是有其他方法可以避免这种情况

security kubernetes kubernetes-ingress traefik traefik-ingress
1个回答
0
投票

您可以通过集群内的单个Ingress控制器来实现,但是可以通过创建各种Ingress Kubernetes对象来实现。

对于私有站点:-考虑入口资源中的whitelist-source-range批注。

https://kubernetes.github.io/ingress-nginx/user-guide/nginx-configuration/annotations/#whitelist-source-range

apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
  name: test-ingress
  annotations:
    nginx.ingress.kubernetes.io/whitelist-source-range: 10.0.0.0/24,172.10.0.1
    nginx.ingress.kubernetes.io/rewrite-target: /
spec:
  rules:
  - host: foo.bar.com
    http:
      paths:
      - path: /testpath
        pathType: Prefix
        backend:
          serviceName: test
          servicePort: 80

对于公共站点:-

https://kubernetes.io/docs/concepts/services-networking/ingress/#the-ingress-resource

apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
  name: test-ingress
  annotations:
    nginx.ingress.kubernetes.io/rewrite-target: /
spec:
  rules:
  - host: foo.bar.com
    http:
      paths:
      - path: /testpath
        pathType: Prefix
        backend:
          serviceName: test
          servicePort: 80
© www.soinside.com 2019 - 2024. All rights reserved.