104 lines
2.7 KiB
YAML
104 lines
2.7 KiB
YAML
# A headless service to create DNS records
|
|
apiVersion: v1
|
|
kind: Service
|
|
metadata:
|
|
annotations:
|
|
service.alpha.kubernetes.io/tolerate-unready-endpoints: "true"
|
|
name: nginx
|
|
labels:
|
|
app: nginx
|
|
spec:
|
|
ports:
|
|
- port: 80
|
|
name: web
|
|
# *.nginx.default.svc.cluster.local
|
|
clusterIP: None
|
|
selector:
|
|
app: nginx
|
|
---
|
|
apiVersion: apps/v1alpha1
|
|
kind: PetSet
|
|
metadata:
|
|
name: web
|
|
spec:
|
|
serviceName: "nginx"
|
|
replicas: 2
|
|
template:
|
|
metadata:
|
|
labels:
|
|
app: nginx
|
|
annotations:
|
|
pod.alpha.kubernetes.io/initialized: "true"
|
|
pod.alpha.kubernetes.io/init-containers: '[
|
|
{
|
|
"name": "peerfinder",
|
|
"image": "gcr.io/google_containers/peer-finder:0.1",
|
|
"args": [
|
|
"-on-start=\"\"echo `
|
|
readarray PEERS;
|
|
echo $(hostname) > /usr/share/nginx/html/index.html;
|
|
if [ 1 = ${#PEERS[@]} ]; then
|
|
echo \"events{} http { server{ } }\";
|
|
else
|
|
echo \"events{} http { server{ location / { proxy_pass http://${PEERS[0]}; } } }\";
|
|
fi;` > /conf/nginx.conf\"\"",
|
|
"-service=nginx"
|
|
],
|
|
"env": [
|
|
{
|
|
"name": "POD_NAMESPACE",
|
|
"valueFrom": {
|
|
"fieldRef": {
|
|
"apiVersion": "v1",
|
|
"fieldPath": "metadata.namespace"
|
|
}
|
|
}
|
|
}
|
|
],
|
|
"volumeMounts": [
|
|
{
|
|
"name": "www",
|
|
"mountPath": "/usr/share/nginx/html"
|
|
},
|
|
{
|
|
"name": "conf",
|
|
"mountPath": "/conf"
|
|
}
|
|
]
|
|
}
|
|
]'
|
|
spec:
|
|
terminationGracePeriodSeconds: 0
|
|
containers:
|
|
- name: nginx
|
|
image: gcr.io/google_containers/nginx-slim:0.7
|
|
ports:
|
|
- containerPort: 80
|
|
name: web
|
|
command:
|
|
- nginx
|
|
args:
|
|
- -g
|
|
- "daemon off;"
|
|
- -c
|
|
- "/conf/nginx.conf"
|
|
volumeMounts:
|
|
- name: www
|
|
mountPath: /usr/share/nginx/html
|
|
- name: conf
|
|
mountPath: /conf
|
|
volumes:
|
|
- name: conf
|
|
emptyDir: {}
|
|
volumeClaimTemplates:
|
|
- metadata:
|
|
name: www
|
|
annotations:
|
|
volume.alpha.kubernetes.io/storage-class: anything
|
|
spec:
|
|
accessModes: [ "ReadWriteOnce" ]
|
|
resources:
|
|
requests:
|
|
storage: 1Gi
|
|
|