マニフェストの階層構造をよく忘れるのでリファレンスへのリンク用としてメモ。 設定している値は適当。
# https://kubernetes.io/docs/reference/kubernetes-api/workload-resources/deployment-v1/
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deployment
spec:
selector:
matchLabels:
app: nginx
replicas: 1
minReadySeconds: 0
strategy:
type: RollingUpdate
rollingUpdate:
maxSurge: 25%
maxUnavailable: 25%
revisionHistoryLimit: 10
progressDeadlineSeconds: 600
template:
metadata:
labels:
app: nginx
spec:
# https://kubernetes.io/docs/reference/kubernetes-api/workload-resources/pod-v1/#Container
containers:
- name: nginx
image: nginx:stable
imagePullPolicy: "Always"
command: ["nginx", "-g", "daemon off;"]
ports:
- containerPort: 80
# https://kubernetes.io/docs/reference/kubernetes-api/workload-resources/pod-v1/#environment-variables
env:
- name: VAR_NAME
value: VAR_VALUE
# https://kubernetes.io/docs/reference/kubernetes-api/workload-resources/pod-v1/#resources
resources:
limits:
cpu: 1000m
memory: 256M
requests:
cpu: 500m
memory: 128M
# https://kubernetes.io/docs/reference/kubernetes-api/workload-resources/pod-v1/#lifecycle-1
lifecycle:
postStart:
exec:
command: ["/bin/echo", "postStart"]
preStop:
exec:
command: ["/bin/echo", "preStop"]
livenessProbe:
httpGet:
scheme: "HTTP"
path: "/"
port: 80
initialDelaySeconds: 10
periodSeconds: 10
failureThreshold: 3
successThreshold: 1
readinessProbe:
exec:
command: ["/usr/bin/curl", "http://localhost/"]
initialDelaySeconds: 10
periodSeconds: 1
failureThreshold: 3
successThreshold: 1
startupProbe:
tcpSocket:
port: 80
initialDelaySeconds: 10
periodSeconds: 10
failureThreshold: 3
successThreshold: 1
参考