首先部署 Nginx Ingress Controller,推荐使用 Helm 安装并创建专用命名空间;接着验证 Pod 和 Service 状态确保控制器运行正常;然后创建 Ingress 资源定义路由规则,通过 host 和 path 将流量转发至对应服务,并可利用 rewrite-target 实现路径重写;最后通过 Secret 配置 TLS 证书并在 Ingress 中引用以启用 HTTPS,结合 DNS 解析、防火墙和网络策略保障外部访问畅通。

配置 Kubernetes Ingress 控制器(基于 Nginx)是实现外部访问集群内服务的关键步骤。核心在于部署 Nginx Ingress Controller 并创建正确的 Ingress 资源来路由流量。以下是具体操作流程。
Nginx Ingress Controller 不是默认组件,需手动安装。最常用方式是通过官方 Helm Chart 或 Kubernetes 提供的 manifest 文件部署。
使用 Helm 安装(推荐):
helm repo add ingress-nginx https://kubernetes.github.io/ingress-nginx
helm repo update
helm install ingress-nginx ingress-nginx/ingress-nginx -n ingress-nginx --create-namespace
该命令会自动创建 Deployment、Service 和必要的 RBAC 规则。Service 类型通常为 LoadBalancer(云环境)或 NodePort(本地测试)。
部署完成后,检查 Pod 和 Service 状态:
kubectl get pods -n ingress-nginx
kubectl get svc -n ingress-nginx
若 Pod 处于 Running 状态且 Service 分配了 IP 或端口,说明控制器已准备就绪。
Ingress 资源用于定义域名和路径如何转发到后端服务。以下是一个典型示例:
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: example-ingress
namespace: default
annotations:
nginx.ingress.kubernetes.io/rewrite-target: /$1
spec:
ingressClassName: nginx
rules:
- host: app.example.com
http:
paths:
- path: /service-a(/|$)(.*)
pathType: Prefix
backend:
service:
name: service-a
port:
number: 80
- path: /service-b(/|$)(.*)
pathType: Prefix
backend:
service:
name: service-b
port:
number: 80
说明:
ingressClassName: nginx 明确指定使用 Nginx 控制器host 定义访问域名path 使用正则捕获组配合 rewrite-target 实现路径重写通过 Secret 配置 HTTPS:
kubectl create secret tls example-tls --cert=tls.crt --key=tls.key -n default
spec 下添加:
tls: - hosts: - app.example.com secretName: example-tls
这样所有匹配的主机将自动启用 HTTPS,HTTP 请求可由控制器重定向至 HTTPS(需开启对应 annotation)。
基本上就这些。部署控制器、定义 Ingress 规则、配置 TLS,三步完成对外暴露服务。注意网络策略、防火墙和 DNS 解析也要同步设置,才能确保访问畅通。
以上就是Linux 运维:如何配置 Kubernetes Ingress 控制器 (Nginx)的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号