- 文档首页
容器服务
容器服务 VKE
用户指南
网络
路由(Ingress)
Nginx Ingress
通过 kubectl 创建 Nginx Ingress
Nginx Ingress
通过 kubectl 创建 Nginx Ingress
通过 kubectl 创建 Nginx Ingress
容器服务提供基于社区版的 Nginx Ingress Controller,它将 Ingress 规则转换成 Nginx 的配置,并基于 Nginx 来进行七层的流量转发。本文为您介绍如何通过 YAML 配置 Nginx Ingress。
前提条件
操作步骤
基于域名转发
Nginx Ingress 支持将不同的域名访问,转发到不同的后端。
- 创建 Ingress 的 YAML 文件,示例nginx-ingress.yaml代码如下:
apiVersion: networking.k8s.io/v1
ingressClassName: nginx
- host: first.example.com
- host: second.example.com
kubectl apply -f nginx-ingress.yaml
基于路径转发
Nginx Ingress 支持将相同域名、不同路径的访问,转发到不同的后端。
- 创建 Ingress 的 YAML 文件,示例nginx-ingress.yaml代码如下:
apiVersion: networking.k8s.io/v1
ingressClassName: nginx
kubectl apply -f nginx-ingress.yaml
使用自定义 Nginx Ingress Controller
您可以基于实际业务需求或场景,使用不同的 Nginx Ingress Controller 对外提供不同的服务访问。配置步骤如下:
- 创建 Ingress 的 YAML 文件,示例nginx-ingress.yaml代码如下。其中,在spec.ingressClassName字段中使用名称指定 Nginx Ingress Controller 服务。本例中以user-ingress-nginx为例。
apiVersion: networking.k8s.io/v1
ingressClassName: user-ingress-nginx
kubectl apply -f nginx-ingress.yaml
结果验证
查看配置
执行以下命令,查看 ingress 配置。
预期返回结果如下,表示 Ingress 创建成功。其中180.xxx.xxx.xxx为 Nginx Ingress 对应 CLB 的公网或私网 IP 地址。
NAME CLASS HOSTS ADDRESS PORTS AGE
nginx-ingress nginx example.com 180.xxx.xxx.xxx 80 74s
访问服务
使用以下命令,通过域名访问服务。
curl -H "Host: example.com" http://180.xxx.xxx.xxx
预期输出如下,表示可以通过域名访问到后端服务。
<title>Welcome to nginx!</title>
html { color-scheme: light dark; }
body { width: 35em; margin: 0 auto;
font-family: Tahoma, Verdana, Arial, sans-serif; }
<h1>Welcome to nginx!</h1>
<p>If you see this page, the nginx web server is successfully installed and
working. Further configuration is required.</p>
<p>For online documentation and support please refer to
<a href="http://nginx.org/">nginx.org</a>.<br/>
Commercial support is available at
<a href="http://nginx.com/">nginx.com</a>.</p>
<p><em>Thank you for using nginx.</em></p>
最近更新时间:2026.04.07 14:29:43