K8s Lab 把当前仓库文档整理成一个可阅读的网页站点

Repository Reading Site

20-web-statefulset.yaml

manifests/09-statefulset/20-web-statefulset.yaml

Text Assetmanifests/09-statefulset/20-web-statefulset.yaml1.9 KB2026年4月10日 02:17查看原始内容
apiVersion: apps/v1
kind: StatefulSet
metadata:
  name: web
  namespace: stateful-lab
  labels:
    lesson: statefulset
spec:
  podManagementPolicy: OrderedReady
  persistentVolumeClaimRetentionPolicy:
    whenDeleted: Retain
    whenScaled: Retain
  replicas: 3
  serviceName: web-hl
  selector:
    matchLabels:
      app: web
      lesson: statefulset
  template:
    metadata:
      labels:
        app: web
        lesson: statefulset
    spec:
      terminationGracePeriodSeconds: 10
      initContainers:
      - name: bootstrap
        image: busybox:1.36
        command:
        - sh
        - -c
        - |
          sleep 8
          pod_name="$(hostname)"
          ordinal="${pod_name##*-}"
          if [ ! -f /data/index.html ]; then
            printf 'pod=%s\nordinal=%s\nfirst_boot=%s\nnode=%s\n' \
              "${pod_name}" \
              "${ordinal}" \
              "$(date '+%Y-%m-%dT%H:%M:%S%z')" \
              "${NODE_NAME}" > /data/index.html
          fi
        env:
        - name: NODE_NAME
          valueFrom:
            fieldRef:
              fieldPath: spec.nodeName
        volumeMounts:
        - name: data
          mountPath: /data
      containers:
      - name: web
        image: busybox:1.36
        command:
        - sh
        - -c
        - |
          httpd -f -p 8080 -h /data
        ports:
        - containerPort: 8080
          name: http
        readinessProbe:
          httpGet:
            path: /
            port: http
          initialDelaySeconds: 1
          periodSeconds: 2
        resources:
          requests:
            cpu: 10m
            memory: 32Mi
        volumeMounts:
        - name: data
          mountPath: /data
  volumeClaimTemplates:
  - metadata:
      name: data
    spec:
      accessModes:
      - ReadWriteOnce
      storageClassName: nfs-dynamic
      resources:
        requests:
          storage: 1Gi