在Kubernetes(K8S)中,Ingress是一种资源对象,它允许管理外部访问到Kubernetes集群内部的服务。当结合使用NGINX Ingress Controller时,可以实现更复杂的路由规则、负载均衡和SSL终止。在本篇文章中,我将详细介绍如何使用K8S Ingress和NGINX Controller,实现对服务的外部访问。

### K8S Ingress NGINX 用法

#### 流程概述

下表列出了实现K8S Ingress NGINX用法的主要步骤:

| 步骤 | 描述 |
| ------ | ------ |
| 1 | 安装NGINX Ingress Controller |
| 2 | 创建Ingress对象 |
| 3 | 配置Ingress规则 |
| 4 | 测试访问 |

#### 详细步骤

**Step 1: 安装NGINX Ingress Controller**

首先需要安装NGINX Ingress Controller。可以使用Helm包管理工具来快速部署Controller:

```bash
helm repo add ingress-nginx https://kubernetes.github.io/ingress-nginx
helm install my-release ingress-nginx/ingress-nginx
```

**Step 2: 创建Ingress对象**

创建一个Ingress对象,将外部流量路由到集群内的服务:

```yaml
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: my-ingress
spec:
rules:
- host: mydomain.com
http:
paths:
- path: /app
pathType: Prefix
backend:
service:
name: my-service
port:
number: 80
```

**Step 3: 配置Ingress规则**

配置Ingress规则,将外部流量导向到特定的服务。在上面的示例中,当请求`mydomain.com/app`时,将会被路由到名为`my-service`的服务的端口80。

**Step 4: 测试访问**

在浏览器中输入`mydomain.com/app`,如果一切配置正确,您应该能够看到您服务的响应。

#### 总结

通过上述步骤,您可以成功实现使用K8S Ingress和NGINX Controller来管理外部流量访问您的Kubernetes集群内的服务。这样的设置使得您可以更加灵活地管理外部流量的路由规则和负载均衡。

特别是NGINX Ingress Controller的强大功能,使得管理和配置Ingress规则变得更加简单和高效。希望本文对您理解K8S Ingress NGINX用法有所帮助!