Difference between revisions of "StatefulSets"

From wikieduonline
Jump to navigation Jump to search
Line 5: Line 5:
  
 
== Official example ==
 
== Official example ==
<pre>
+
 
apiVersion: v1
+
apiVersion: v1
kind: Service
+
kind: Service
metadata:
+
metadata:
  name: nginx
+
  name: nginx
  labels:
+
  labels:
    app: nginx
+
    app: nginx
spec:
+
spec:
  ports:
+
  ports:
  - port: 80
+
  - port: 80
    name: web
+
    name: web
  clusterIP: None
+
  clusterIP: None
  selector:
+
  selector:
    app: nginx
+
    app: nginx
---
+
---
apiVersion: apps/v1
+
apiVersion: apps/v1
kind: StatefulSet
+
kind: StatefulSet
metadata:
+
metadata:
  name: web
+
  name: web
spec:
+
spec:
  selector:
+
  selector:
    matchLabels:
+
    matchLabels:
      app: nginx # has to match .spec.template.metadata.labels
+
      app: nginx # has to match .spec.template.metadata.labels
  serviceName: "nginx"
+
  serviceName: "nginx"
  replicas: 3 # by default is 1
+
  replicas: 3 # by default is 1
  minReadySeconds: 10 # by default is 0
+
  minReadySeconds: 10 # by default is 0
  template:
+
  template:
    metadata:
+
    metadata:
      labels:
+
      labels:
        app: nginx # has to match .spec.selector.matchLabels
+
        app: nginx # has to match .spec.selector.matchLabels
    spec:
+
    spec:
      terminationGracePeriodSeconds: 10
+
      terminationGracePeriodSeconds: 10
      containers:
+
      containers:
      - name: nginx
+
      - name: nginx
        image: k8s.gcr.io/nginx-slim:0.8
+
        image: k8s.gcr.io/nginx-slim:0.8
        ports:
+
        ports:
        - containerPort: 80
+
        - containerPort: 80
          name: web
+
          name: web
        volumeMounts:
+
        volumeMounts:
        - name: www
+
        - name: www
          mountPath: /usr/share/nginx/html
+
          mountPath: /usr/share/nginx/html
  volumeClaimTemplates:
+
  [[volumeClaimTemplates:]]
  - metadata:
+
  - metadata:
      name: www
+
      name: www
    spec:
+
    spec:
      accessModes: [ "ReadWriteOnce" ]
+
      accessModes: [ "ReadWriteOnce" ]
      storageClassName: "my-storage-class"
+
      storageClassName: "my-storage-class"
      resources:
+
      resources:
        requests:
+
        requests:
          storage: 1Gi
+
          storage: 1Gi
</pre>
 
  
  

Revision as of 12:53, 4 July 2022


Official example

apiVersion: v1
kind: Service
metadata:
  name: nginx
  labels:
    app: nginx
spec:
  ports:
  - port: 80
    name: web
  clusterIP: None
  selector:
    app: nginx
---
apiVersion: apps/v1
kind: StatefulSet
metadata:
  name: web
spec:
  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: k8s.gcr.io/nginx-slim:0.8
        ports:
        - containerPort: 80
          name: web
        volumeMounts:
        - name: www
          mountPath: /usr/share/nginx/html
  volumeClaimTemplates:
  - metadata:
      name: www
    spec:
      accessModes: [ "ReadWriteOnce" ]
      storageClassName: "my-storage-class"
      resources:
        requests:
          storage: 1Gi


See also

Advertising: