在k8s中部署的nginx前端服务,调度到node01上运行, 能通过集群外部访问
时间: 2024-09-13 07:05:08 浏览: 32
在 Kubernetes (K8s) 集群中部署 Nginx 前端服务并将其调度到 node01 上运行,首先你需要创建一个 Deployment 或者使用 DaemonSet 来管理和复制你的 Nginx 容器。假设你已经在 Kubernetes 的 manifest 文件(如 YAML 或 JSON 格式)中配置好了 Nginx 服务,比如指定 NodePort 端口以便从集群外部访问:
1. 创建或更新 Deployment 或 DaemonSet manifest,添加 `nodeSelector` 或 `affinity` 属性将 Pod 部署到 node01:
```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-container
image: nginx:latest
ports:
- containerPort: 80
protocol: TCP
nodeSelector:
kubernetes.io/hostname: node01
```
2. 设置 Nginx 的 Service,特别是启用 NodePort 模式:
```yaml
apiVersion: v1
kind: Service
metadata:
name: nginx-service
spec:
type: NodePort
selector:
app: nginx
ports:
- port: 80
targetPort: 80
nodePort: <节点端口> # Kubelet会自动选择一个未使用的外部端口
externalTrafficPolicy: Cluster
```
确保 `<节点端口>` 为你希望在集群外访问的端口。
3. 应用修改后的 manifests 并等待 Nginx 服务在 node01 上启动:
```bash
kubectl apply -f deployment.yaml service.yaml
```
4. 测试外部访问:
可以通过 IP 地址加上分配的 NodePort 访问你的 Nginx 服务,例如:
```
http://<node01-ip>:<nodePort>
```
阅读全文