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

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

时衡虑
2023-03-14

遵循Kubernetes的教程(在我的GKE案例中)https://docs.traefik.io/v2.0/user-guides/crd-acme/我一直在研究如何分配全局静态IP(GKE需要一个转发规则)。我是否遗漏了什么(例如,添加另一个入口)?我知道IngressRoute中不可能有注释。那么,如何分配全局保留IP?

关于这个问题的问题3的答案

共有1个答案

卫阳曜
2023-03-14

就像其他入口控制器一样。

nginx Ingress的网站上提供了关于如何为入口分配静态IP地址的详细说明。

遵循“将临时IP升级为静态IP”一节

如果要遵循Traefik 2.0为Kubernetes制作的示例清单文件,请在修补Traefik的K8S服务(使用kubectl patch Traefik…)后,您可以使用以下命令验证IngressRoute是否生效:

 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>"}}'
 类似资料:
  • 有没有办法在Java中创建一个可以从其他类访问的方法,而不必使该方法成为静态的?正如我在网上看到的所有解决方案所说,使方法成为静态的方法对我不起作用,因为我试图从方法中引用一个非静态变量。我引用的变量是(指它所在的类)。

  • 我有一个简单的静态日志记录类。但是,它肯定不是线程安全的,因为每个调用都试图写入同一个文件。我得到了这些例外情况: 什么是最好的方法使它的线程安全? 作为一个日志记录函数,我希望能够从代码的许多不同部分访问它(因此,我选择它为静态的原因)。然而,我想要使它成为线程安全的,我总是必须向它传递一个公共对象来lock(),我认为这违背了静态函数的目的。还是事实并非如此?

  • 我想创建一个全局状态(数据对象,而不是服务对象)。 我创建了类。 我想避免常规的全局状态, 但是,所有的教程都展示了如何为服务对象设置一个DI,并注册到接口。 如何根据需要使用注入? 编辑 我试过: 公共类AppInjector扩展了AbstractModule{ 但是我看到中没有新的long值。

  • 问题内容: 我想将Calendar用于某些静态方法并使用一个静态字段: 现在,我读到java.util.Calendar不是线程安全的。如何使该线程安全(应该是 静态的 )? 问题答案: 如果不是,则不能创建线程安全的东西。在的情况下,即使从中 读取 数据也不是线程安全的,因为它可以更新内部数据结构。 如果有可能,我建议改用Joda Time: 大多数类型是不可变的 不可变类型是线程安全的 无论如

  • 问题内容: 有什么方法可以将分配给容器。因此,容器具有公共IP。客户端可以使用IP访问容器。 问题答案: 对于当前发布的Docker版本,这是不可能的(无需在Docker背后进行大量手动工作),尽管它几乎没有必要。 Docker通过使用端口映射在容器中公开网络服务,并且端口映射可以绑定到主机上的特定IP地址。所以,如果你想有一个在Web服务器,并在另一个网站服务器,首先确保该地址可在主机上: 然后

  • 问题内容: 我想为容器分配一个端口,以便在每次重新启动容器后都获得相同的端口。 示例:我有一个容器,其中有一个Apache。Apache在容器内的端口80上运行。现在,在启动容器后,docker将一个主机端口分配给该容器端口,例如:49154->80。但是该主机端口在重新启动后会更改,具体取决于正在运行的容器的数量。我试图在容器的config.json文件中指定端口,但该端口被覆盖。 是否可以手动