Ingress是Kubernetes中管理外部访问的API资源,通过域名和路径将HTTP/HTTPS请求路由到集群内服务。它需配合Ingress Controller(如Nginx)实现第7层负载均衡,支持TLS加密、路径重写等功能。部署.NET服务时,先创建Deployment和ClusterIP服务,再部署Ingress Controller,最后定义Ingress规则将api.example.com/api转发至后端服务,并配置TLS证书。确保DNS指向Ingress IP后即可通过HTTPS访问,常见问题包括控制器未就绪、服务名称不匹配或路径类型错误,需逐一排查。

Kubernetes 的 Ingress 是一种 API 资源,用于管理对集群内服务的外部访问,通常通过 HTTP/HTTPS 提供基于域名和路径的路由。它充当第7层(应用层)负载均衡器,可以将外部请求转发到不同的后端服务,比如你的 .NET Web API 或前端应用。
Ingress 能够:
注意:Ingress 只是定义规则,需要配合 Ingress Controller(如 Nginx、Traefik、Istio)才能真正生效。
以 ASP.NET Core 应用为例,展示从部署到接入 Ingress 的完整流程。
先确保你的 .NET 服务已容器化,并创建对应的 Deployment 和 ClusterIP 类型的服务。
# deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: dotnet-api
spec:
replicas: 2
selector:
matchLabels:
app: dotnet-api
template:
metadata:
labels:
app: dotnet-api
spec:
containers:
- name: dotnet-api
image: your-registry/dotnet-api:latest
ports:
- containerPort: 80
---
# service.yaml
apiVersion: v1
kind: Service
metadata:
name: dotnet-api-service
spec:
selector:
app: dotnet-api
ports:
- protocol: TCP
port: 80
targetPort: 80
type: ClusterIP
应用配置:
kubectl apply -f deployment.yaml -f service.yaml如果没有安装 Ingress Controller,需先部署。常用的是 Kubernetes 社区版 Nginx Ingress:
helm install nginx-ingress ingress-nginx/ingress-nginx
安装后会创建一个 LoadBalancer 类型的服务,对外暴露 80/443 端口。
编写 Ingress 资源,将外部请求路由到 .NET 服务。
# ingress.yaml
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: dotnet-ingress
annotations:
nginx.ingress.kubernetes.io/rewrite-target: /
nginx.ingress.kubernetes.io/ssl-redirect: "true"
spec:
ingressClassName: nginx # 对应 Ingress Controller 的 class
tls:
- hosts:
- api.example.com
secretName: example-tls-secret # 提前创建 TLS 证书 Secret
rules:
- host: api.example.com
http:
paths:
- path: /api
pathType: Prefix
backend:
service:
name: dotnet-api-service
port:
number: 80
说明:
创建 TLS Secret 示例:
kubectl create secret tls example-tls-secret --cert=tls.crt --key=tls.key应用 Ingress:
kubectl apply -f ingress.yaml确保你的 DNS 将 api.example.com 指向 Ingress Controller 的公网 IP。
访问测试:
https://api.example.com/api/weatherforecast如果一切正常,请求会经过 Ingress 被转发到 .NET 服务。
基本上就这些。只要 Deployment、Service、Ingress 三层配置正确,.NET 服务就能通过域名安全对外提供服务。
以上就是什么是 Kubernetes 的 Ingress,如何配置 .NET 服务?的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号