# 03-03: Nginx + 工作节点 + Ingress(M3) # 路径 /demo-m3,随机一台工作节点(nodeSelector: node-role.kubernetes.io/worker) # ConfigMap:首页 + default.conf,X-Backend: M3 便于区分 --- apiVersion: v1 kind: ConfigMap metadata: name: nginx-m3-html namespace: default data: index.html: |
工作节点 + Ingress
default.conf: | server { listen 80; server_name localhost; root /usr/share/nginx/html; index index.html; location / { add_header X-Backend "M3"; try_files $uri $uri/ /index.html; } } --- apiVersion: apps/v1 kind: Deployment metadata: name: nginx-m3 namespace: default labels: app: nginx-m3 matrix: "02-05-m3" spec: replicas: 1 selector: matchLabels: app: nginx-m3 template: metadata: labels: app: nginx-m3 spec: nodeSelector: node-role.kubernetes.io/worker: "" volumes: - name: html configMap: name: nginx-m3-html containers: - name: nginx image: nginx:alpine ports: - containerPort: 80 volumeMounts: - name: html mountPath: /usr/share/nginx/html/index.html subPath: index.html readOnly: true - name: html mountPath: /etc/nginx/conf.d/default.conf subPath: default.conf readOnly: true --- apiVersion: v1 kind: Service metadata: name: nginx-m3 namespace: default spec: selector: app: nginx-m3 ports: - port: 80 targetPort: 80 --- apiVersion: traefik.io/v1alpha1 kind: Middleware metadata: name: stripprefix-m3 namespace: default spec: stripPrefix: prefixes: - /demo-m3 --- apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: nginx-m3 namespace: default annotations: traefik.ingress.kubernetes.io/router.middlewares: default-stripprefix-m3@kubernetescrd spec: rules: - http: paths: - path: /demo-m3 pathType: Prefix backend: service: name: nginx-m3 port: number: 80