apiVersion: v1 kind: Service metadata: name: nginx namespace: test labels: app: nginx spec: ports: - port: 80 name: web clusterIP: None selector: app: nginx template: spec: nodeSelector: node.longhorn.io/create-default-disk: "true" # this is required to create a disk on the node --- apiVersion: apps/v1 kind: StatefulSet metadata: name: web namespace: test spec: nodeSelector: node.longhorn.io/create-default-disk: "true" # this is required to create a disk on the node selector: matchLabels: app: nginx # has to match .spec.template.metadata.labels serviceName: "nginx" replicas: 3 # by default is 1 minReadySeconds: 10 # by default is 0 template: metadata: labels: app: nginx # has to match .spec.selector.matchLabels spec: terminationGracePeriodSeconds: 10 containers: - name: nginx image: registry.k8s.io/nginx-slim:0.24 ports: - containerPort: 80 name: web volumeMounts: - name: www mountPath: /usr/share/nginx/html volumeClaimTemplates: - metadata: name: www spec: accessModes: [ "ReadWriteOnce" ] storageClassName: "longhorn" resources: requests: storage: 1Gi