Kubernetes 中配置 Ingress Controller 的正确姿势

阅读时长 4 分钟读完

随着云原生技术的发展,Kubernetes 成为了最流行的容器编排系统。而 Ingress Controller 则是 Kubernetes 中用于将外部流量路由到集群内部服务的一种机制。本文将详细介绍如何在 Kubernetes 中正确配置 Ingress Controller,并提供示例代码以帮助读者更好地理解。

Ingress Controller 简介

Ingress Controller 是 Kubernetes 内置的一个插件,用于在集群外部提供对集群内部服务的访问。一个 Ingress Controller 可以通过一组规则来决定如何将外部流量路由到集群内的服务。在 Ingress Controller 中,规则被表示为 Ingress 资源。每个 Ingress 资源定义了一组路径与相关的服务。当外部请求到达 Ingress Controller 时,Ingress Controller 将根据请求的 URL,查找匹配的路径,并将请求路由到相应的服务上。

部署 Ingress Controller

首先,在 Kubernetes 中部署 Ingress Controller。目前,Kubernetes 支持多种 Ingress Controller,如 Nginx Ingress Controller、Traefik Ingress Controller 等。以 Nginx Ingress Controller 为例,可以通过以下命令进行部署:

执行上述命令后,Kubernetes 将在集群中部署 Nginx Ingress Controller。

配置 Ingress

一旦 Ingress Controller 部署完毕,下一步就是配置 Ingress。在 Kubernetes 中,可以通过 YAML 文件来定义 Ingress 资源。以下是一个示例 Ingress 资源的 YAML 文件:

-- -------------------- ---- -------
----------- --------------------
----- -------
---------
  ----- ---------------
-----
  ------
    - ----- -----------
      -----
        ------
          - ----- -----
            --------- ------
            --------
              --------
                ----- ----
                -----
                  ----- ----
          - ----- -----
            --------- ------
            --------
              --------
                ----- ----
                -----
                  ----- ----

上述 YAML 文件中,定义了一个 Ingress 资源,该资源包含了两个路径规则,分别是 /app1 和 /app2,对应了两个不同的服务 app1 和 app2。此外,还定义了一条 host 规则,将所有请求都重定向到 example.com。

该配置文件中的 pathType 字段定义了路径的匹配方式。目前 Kubernetes 支持两种匹配方式,分别是 Prefix 和 Exact。Prefix 模式表示如果请求的 URL 路径以定义的路径规则为前缀,则匹配成功。Exact 模式表示 URL 路径必须完全匹配才能匹配成功。

验证 Ingress

完成 Ingress 配置后,下一步就是验证 Ingress 是否正确。可以通过以下操作进行验证:

  1. 修改本地 hosts 文件,将 example.com 映射到 Kubernetes 集群的 IP 地址。

  2. 在浏览器中输入 URL:http://example.com/app1,验证是否能访问 app1 服务。

  3. 在浏览器中输入 URL:http://example.com/app2,验证是否能访问 app2 服务。

若能正确访问两个服务,则表示 Ingress Controller 配置成功。

总结

本文介绍了在 Kubernetes 中配置 Ingress Controller 的方法。通过定义 Ingress 资源,可以将外部流量路由到集群内部的服务中。正确配置 Ingress Controller 不仅对于企业的生产环境至关重要,同时对于学习 Kubernetes 也具有重要意义。本文所提供的示例代码和学习指导,有助于读者更好地理解 Kubernetes 中的 Ingress Controller 机制。

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

纠错
反馈