Traefik 2.0:如何使用IngressRoute(CRD)分配全局静态IP?

时间:2019-05-16 03:04:13

标签: kubernetes google-kubernetes-engine traefik traefik-ingress

按照Kubernetes的教程(在我的情况下,在GKE上)https://docs.traefik.io/v2.0/user-guides/crd-acme/,我坚持如何分配全局静态IP(GKE需要转发规则)。我是否缺少某些内容(例如添加另一个入口)?我了解在IngressRoute中无法使用注释。那么如何分配全局保留IP?

在此问答在线聚会(https://gist.github.com/dduportal/13874113cf5fa1d0901655e3367c31e5)上,对问题3的回答提到,版本2.x也可以实现“经典入口”。这是否意味着我可以像1.x一样设置traefik(例如:https://docs.traefik.io/user-guide/kubernetes/),使用2.x配置并且不需要CRD?

1 个答案:

答案 0 :(得分:1)

您可以像使用其他所有Ingress Controller一样进行操作。

nginx-ingress网站上提供了有关如何为Ingress分配静态IP地址的良好分步说明。

遵循称为“ Promote ephemeral to static IP”的部分

如果要遵循Traefik 2.0的exemplary清单文件(为Kubernetes创建),一旦对Traefik的K8S服务(使用kubectl补丁traefik ...)进行了修补,就可以通过以下命令验证IngressRoute是否生效:< / p>

 curl -i http://<static-ip-address>:8000/notls -H 'Host: your.domain.com'

更新

apiVersion: v1
kind: Service
metadata:
  name: traefik
spec:
  ports:
    - protocol: TCP
      name: web
      port: 8000
    - protocol: TCP
      name: admin
      port: 8080
    - protocol: TCP
      name: websecure
      port: 4443
  selector:
    app: traefik
  type: LoadBalancer

并使用以下命令对其进行修补:

kubectl patch svc traefik -p '{"spec": {"loadBalancerIP": "<your_static_ip>"}}'