k8s集群中部署nginx限制域名访问
时间: 2024-10-29 10:10:33 浏览: 7
云原生k8s集群中部署微服务项目前端代理服务 Nginx
在Kubernetes (k8s) 集群中部署 Nginx 并限制对特定域名的访问,通常涉及到创建Nginx服务和配置Ingress资源。以下是一个简化的步骤:
1. **创建Nginx部署**:
- 创建一个名为`nginx-deployment.yaml`的文件,定义Nginx的Pod模板。例如:
```yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deployment
spec:
replicas: 1
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:latest
ports:
- containerPort: 80
```
运行`kubectl apply -f nginx-deployment.yaml`。
2. **创建Nginx服务**:
如果你想让Nginx对外部可见,需要创建一个服务如`nginx-service.yaml`:
```yaml
apiVersion: v1
kind: Service
metadata:
name: nginx-service
spec:
type: LoadBalancer
selector:
app: nginx
ports:
- protocol: TCP
port: 80
targetPort: 80
```
再次运行`kubectl apply -f nginx-service.yaml`。
3. **配置Ingress(可选)**:
使用Ingress控制器(如NGINX Ingress Controller),可以限制特定域名访问。创建一个`ingress.yaml`:
```yaml
apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
name: nginx-ingress
annotations:
nginx.ingress.kubernetes.io/rewrite-target: /
spec:
rules:
- host: "example.com"
http:
paths:
- path: /
backend:
serviceName: nginx-service
servicePort: 80
```
`example.com`是限制访问的域名。运行`kubectl apply -f ingress.yaml`。
现在,只有域名为`example.com`的请求会被Nginx处理。如果还有其他问题或需要更详细的配置说明,请随时提问。
阅读全文