Difference between revisions of "Kubernetes StatefulSet"

From wikieduonline
Jump to navigation Jump to search
 
(5 intermediate revisions by the same user not shown)
Line 1: Line 1:
[[StatefulSets]] available since [[K8s v1.9]] (Dec/2017)
+
[[StatefulSets]] available since [[K8s v1.9]] (Dec/2017) https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/
 
 
* https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/
 
  
 
  [[kubectl get sts -A]]
 
  [[kubectl get sts -A]]
 
 
  [[kubectl scale sts]] yourstatefulset [[--replicas]]=X
 
  [[kubectl scale sts]] yourstatefulset [[--replicas]]=X
 +
[[kubectl describe sts -A]]
 +
[[kubectl patch sts elastic-operator]]
  
[[kubectl describe sts -A]]
+
== Example ==
  
  [[kubectl patch sts elastic-operator]]
+
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: 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: "my-storage-class"
 +
      resources:
 +
        requests:
 +
          storage: 1Gi
  
 
== Related ==
 
== Related ==

Latest revision as of 10:58, 2 October 2024

StatefulSets available since K8s v1.9 (Dec/2017) https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/

kubectl get sts -A
kubectl scale sts yourstatefulset --replicas=X
kubectl describe sts -A
kubectl patch sts elastic-operator

Example[edit]

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: 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: "my-storage-class"
     resources:
       requests:
         storage: 1Gi

Related[edit]

See also[edit]

Advertising: