1
0
Files
terraform.examples/EksIp6Nginxpod/k8s-manifests/2-webservers.yaml
T
2026-02-13 17:48:17 +08:00

59 lines
1.4 KiB
YAML

apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-web
spec:
replicas: 10
selector:
matchLabels:
app: nginx-web
template:
metadata:
labels:
app: nginx-web
annotations:
# Require dedicated ENI per pod
vpc.cni.amazonaws.com/network-mode: "IPV4"
vpc.cni.amazonaws.com/eniMode: "per-pod" # One ENI per pod
vpc.cni.amazonaws.com/eniPrefixMode: "GLOBAL" # Prefix mode for efficiency
spec:
initContainers:
- name: unique-index
image: busybox:1.35
command: ['sh', '-c']
args:
- |
echo "<h1>Web Server $(POD_NAME)</h1><p>Deployed at $(date)</p>" > /usr/share/nginx/html/index.html
env:
- name: POD_NAME
valueFrom:
fieldRef:
fieldPath: metadata.name
volumeMounts:
- name: nginx-html
mountPath: /usr/share/nginx/html
containers:
- name: nginx
image: nginx:1.27-alpine
ports:
- containerPort: 80
volumeMounts:
- name: nginx-html
mountPath: /usr/share/nginx/html
readOnly: true
volumes:
- name: nginx-html
emptyDir: {}
---
apiVersion: v1
kind: Service
metadata:
name: nginx-service
spec:
selector:
app: nginx-web
ports:
- port: 80
targetPort: 80
type: ClusterIP