メモ置き場

Deployment マニフェスト構造メモ

マニフェストの階層構造をよく忘れるのでリファレンスへのリンク用としてメモ。 設定している値は適当。

# 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

参考