Kubernetes Ingress Controller 之 Traefik 的使用实践

前言

在 Kubernetes 中,Ingress 是一种 API 对象,用于管理对 Kubernetes 集群中服务的外部访问。但是,Ingress 对象本身只是一种规范,需要 Ingress Controller 才能实现对 Ingress 规范的解释和操作。Traefik 是一种常见的 Ingress Controller,它具有高可用性、可插拔性和易于配置等优点,因此本文将介绍 Traefik 在 Kubernetes 中的使用实践。

安装 Traefik

在 Kubernetes 中安装 Traefik 有多种方式,例如 Helm Chart、YAML 文件等。本文将以 Helm Chart 的方式进行安装。

首先,需要添加 Traefik Helm Chart 的仓库:

然后,使用如下命令安装 Traefik:

安装完成后,可以使用如下命令查看 Traefik 的状态:

配置 Traefik

在 Traefik 中,配置文件是通过 Kubernetes 的 ConfigMap 实现的。在本文中,我们将使用 YAML 文件来创建 ConfigMap。

首先,创建一个名为 traefik-config.yaml 的文件,内容如下:

在上述 YAML 文件中,我们定义了以下内容:

  • Traefik API 的 Dashboard 功能开启。
  • 使用 Kubernetes CRD 作为 Traefik 的 Provider。
  • 定义了两个 EntryPoints,分别监听 80 和 443 端口。
  • 定义了 TLS 配置,包括使用的协议版本和加密套件。

接下来,使用如下命令创建 ConfigMap:

部署应用

在 Traefik 中,应用的部署需要使用 Kubernetes 的 Deployment 对象。在本文中,我们将使用一个简单的示例应用来演示 Traefik 的使用。

首先,创建一个名为 nginx-deployment.yaml 的文件,内容如下:

在上述 YAML 文件中,我们定义了一个名为 nginx 的 Deployment,使用了 nginx:1.21.0 镜像,并监听了 80 端口。

接下来,使用如下命令创建 Deployment:

创建 Ingress 规则

在 Traefik 中,Ingress 规则用于将外部请求路由到 Kubernetes 集群中的应用。在本文中,我们将使用一个简单的示例 Ingress 规则来演示 Traefik 的使用。

首先,创建一个名为 nginx-ingress.yaml 的文件,内容如下:

在上述 YAML 文件中,我们定义了一个名为 nginx-ingress 的 Ingress 规则,使用了 example.com 作为 Host,并将请求路由到名为 nginx 的 Service 上。

annotations 部分,我们使用了 traefik.ingress.kubernetes.io/rule-type 注解来指定路由规则类型。在本文中,我们使用了 PathPrefixStrip 类型,表示从请求 URL 中去除匹配的前缀后再进行路由。

rules 部分,我们定义了一个路径为 /nginx 的路由规则,并将请求路由到名为 nginx 的 Service 上。

接下来,使用如下命令创建 Ingress 规则:

测试

在完成上述步骤后,可以通过浏览器访问 http://example.com/nginx 来测试 Traefik 是否正常工作。

总结

本文介绍了 Traefik 在 Kubernetes 中的使用实践,包括安装、配置、部署应用和创建 Ingress 规则等步骤。通过本文的学习,读者可以了解到 Traefik 的基本使用方法,并能够在实际项目中使用 Traefik 来实现 Kubernetes 集群中应用的外部访问。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/65075e8e95b1f8cacd2cd883


纠错
反馈