Kubernetes 中使用 Nginx Ingress Controller 的方法

阅读时长 8 分钟读完

前言

在 Kubernetes 中,Ingress 是一种将进入集群的外部流量路由到相应后端服务的 API 对象。Ingress Controller 则是接收到这些 Ingress 规则并处理它们的实际服务。Nginx Ingress Controller 是 Ingress Controller 中的一种,可以在 Kubernetes 中托管 Nginx 实例以处理 Ingress 流量。本文将介绍如何在 Kubernetes 中使用 Nginx Ingress Controller。

安装 Nginx Ingress Controller

1. 创建配置文件

首先,我们需要创建一个 Kubernetes 配置文件来安装 Nginx Ingress Controller。在创建之前,你需要做一些准备工作:

  • 确保你有一个 Kubernetes 群集并拥有 kubectl 命令行工具。
  • 你需要在集群中有一个为 Nginx Ingress Controller 分配的 IP 地址,可以采用 NodePort 方式暴露服务,也可以使用 LoadBalancer 或 HostPort 方式暴露服务。在这个例子中,我们将使用 NodePort 方式。

接下来,创建一个名为 nginx-ingressController.yaml 的文件:

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

2. 应用配置文件

接下来,运行以下命令来部署配置文件:

等待一些时间,直到所有 Pod 和 Service 均在运行状态。你可以运行以下命令来检查部署的状态:

创建 Ingress 路由规则

一旦 Nginx Ingress Controller 在集群中运行了,就可以开始使用 Ingress 规则将流量路由到后端服务。在这个例子中,我们将创建一个 Ingress 规则,将流量路由到一个运行在 Kubernetes 中的 Nginx 实例。

1. 创建服务

首先,我们需要创建一个 Nginx 服务,即将被路由到的后端服务。在 Kubernetes 中,你可以使用一个 yaml 配置文件来创建一个服务。在这个例子中,我们将创建一个名为 nginx.yaml 的文件。

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

然后应用该文件:

等待一些时间,让服务运行起来。

2. 创建 Ingress 规则

在将流量路由到 Nginx 服务之前,我们需要创建 Ingress 对象。在 Kubernetes 中,你可以使用一个 yaml 配置文件来创建一个 Ingress 对象。在这个例子中,我们将创建一个名为 nginx-ingress.yaml 的文件。

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

然后应用该文件:

等待一些时间,让 Ingress 规则生效。

3. 测试 Ingress 规则

一旦 Ingress 规则生效,就可以使用一个 HTTP 客户端来测试它。记得将 nginx.example.com 替换为你的实际域名或 IP 地址。

你应该会看到 Nginx 的欢迎页面。

结论

在本文中,我们学习了如何在 Kubernetes 中使用 Nginx Ingress Controller 将流量路由到后端服务。我们创建了一个 Nginx Ingress Controller,并使用 Ingress 规则将流量路由到一个运行在 Kubernetes 中的 Nginx 服务。希望这篇文章对你有帮助,谢谢!

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

纠错
反馈