Kubernetes 配置 Ingress Controller 的详细教程

阅读时长 4 分钟读完

简介

在 Kubernetes 中,Ingress 可以用于将外部的流量引入到 Kubernetes 集群中不同的服务中。而 Ingress Controller 则是负责将 Ingress 规则映射到集群中的不同服务上的实体。

要配置 Ingress Controller,需要使用类似 Nginx、Traefik 等反向代理服务器,它们将负责流量接入和路由。本篇文章将详细讲解如何使用 Nginx Ingress Controller。

安装 Ingress Controller

在使用 Ingress Controller 之前,首先需要将其安装并部署到 Kubernetes 集群上。这里我们使用 Nginx Ingress Controller 举例,它是 Kubernetes 广泛使用的 Ingress Controller。

安装 Helm

在使用 Helm 安装 Nginx Ingress Controller 的时候,需要先安装 Helm。Helm 是 Kubernetes 官方提供的包管理系统,可以帮助我们方便地部署应用,管理依赖关系及版本升级等。下载地址:https://github.com/kubernetes/helm/releases

安装 Nginx Ingress Controller

安装 Ingress Controller 之前,需要先创建一个 namespace。执行以下命令,创建一个名为 "nginx-ingress" 的 namespace。

接下来就开始部署 Ingress Controller。在终端中输入以下命令:

安装成功后,通过以下命令查看 Nginx Ingress Controller 的启动情况:

如果出现如下图所示的输出,则说明 Ingress Controller 已经成功部署。

配置 Ingress

配置 Ingress 需要创建一个 Ingress 资源对象。下面是一个简单的示例,其中 serviceNameservicePort 分别对应 Kubernetes 中 Service 的名称和端口号。

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

我们可以通过以下命令部署这个 Ingress:

注意:为了测试,最好先创建一个名为 hello-world 的 Deployment 和 Service,然后将它们暴露给外部。这样我们才能够测试这个 Ingress 是否正常工作。

测试 Ingress Controller

为了测试 Ingress Controller,我们可以执行以下命令,获取 Ingress Controller 的 IP 地址:

输出的结果中包含了 Ingress Controller 的 IP 地址,将它们添加到 "/etc/hosts" 文件中:

然后使用一个类似 Postman 等工具,访问 hello.world.com/hello,如果一切正常,将会看到 hello-world Pod 的输出。

这里是一个 PHP 的示例代码,用于测试 Ingress Controller 的功能:

总结

本文介绍了如何安装和配置 Nginx Ingress Controller,并且演示了一个简单的 Ingress 示例,向你展示了如何将外部流量引入到 Kubernetes 中的不同服务中。希望这篇文章对于想要学习 Kubernetes 的读者是有指导意义的。

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

纠错
反馈