Skip to content

Instantly share code, notes, and snippets.

@paoloyx
Created February 9, 2021 11:00
Show Gist options
  • Save paoloyx/1f75ef29cc61a9ee6851e5192497e093 to your computer and use it in GitHub Desktop.
Save paoloyx/1f75ef29cc61a9ee6851e5192497e093 to your computer and use it in GitHub Desktop.
Nginx StatefulSet
apiVersion: v1
kind: Service
metadata:
name: nginx-headless
labels:
app: nginx
spec:
ports:
- port: 80
name: web
- port: 90
name: non-existent-port
clusterIP: None
selector:
app: nginx
---
apiVersion: v1
kind: Service
metadata:
name: nginx-srv
labels:
app: nginx
spec:
ports:
- port: 80
name: web
- port: 90
name: non-existent-port
type: ClusterIP
selector:
app: nginx
---
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: web
spec:
selector:
matchLabels:
app: nginx # has to match .spec.template.metadata.labels
serviceName: "nginx"
replicas: 3 # by default is 1
template:
metadata:
labels:
app: nginx # has to match .spec.selector.matchLabels
spec:
terminationGracePeriodSeconds: 10
containers:
- name: nginx
image: k8s.gcr.io/nginx-slim:0.8
ports:
- containerPort: 80
name: web
volumeMounts:
- name: www
mountPath: /usr/share/nginx/html
volumeClaimTemplates:
- metadata:
name: www
spec:
accessModes: [ "ReadWriteOnce" ]
storageClassName: "standard"
resources:
requests:
storage: 1Gi
@paoloyx
Copy link
Author

paoloyx commented Feb 9, 2021

Still need to create some html page on nginx nodes, for example

for replica in {0..2} 
do
 kubectl exec -ti web-$replica -- /bin/sh -c "echo \"<html><title>Test Page</title><body><p>Test</p></body></html>\" > 
 /usr/share/nginx/html/index.html"
done

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment