域名后面加ingress-nginx-controller的svc暴露端口,举个例子
时间: 2024-09-25 19:03:14 浏览: 50
在Kubernetes中,通过Ingress-NGINX控制器暴露服务是一种常见的方法。假设你有一个域名`example.com`,并且你想通过该域名访问你的Kubernetes集群中的一个服务(例如:名为`my-service`的服务),你可以按照以下步骤进行配置:
1. **安装Ingress-NGINX控制器**:
确保你已经在你的Kubernetes集群中安装了Ingress-NGINX控制器。如果还没有安装,可以使用以下命令进行安装:
```bash
kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/main/deploy/static/provider/cloud/deploy.yaml
```
2. **创建Service和Ingress资源**:
首先,你需要创建一个Service来暴露你的应用服务,然后创建一个Ingress规则来定义如何通过域名访问这个服务。
**Service示例**:
```yaml
apiVersion: v1
kind: Service
metadata:
name: my-service
namespace: default
spec:
selector:
app: my-app
ports:
- protocol: TCP
port: 80
targetPort: 8080
type: ClusterIP
```
**Ingress示例**:
```yaml
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: my-ingress
namespace: default
annotations:
nginx.ingress.kubernetes.io/rewrite-target: /
spec:
rules:
- host: example.com
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: my-service
port:
number: 80
```
3. **配置DNS**:
将域名`example.com`指向你的Ingress-NGINX控制器服务的外部IP地址或者负载均衡器的DNS名。这通常需要通过你的DNS提供商的管理界面来完成。
4. **测试访问**:
一旦DNS配置完成并且Ingress资源生效后,你应该能够通过浏览器访问`http://example.com`来访问你的Kubernetes服务。
通过上述步骤,你就可以实现通过域名`example.com`访问Kubernetes集群中的服务,并且使用`my-service`作为后端服务。这种方式不仅简化了域名管理,还提供了灵活的路由规则。
阅读全文