Difference between revisions of "Kubernetes StatefulSet"
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/ |
− | |||
− | |||
[[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]] | ||
− | + | == 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: 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]
statefulset.apps
kubectl get all -A | grep statefulset.apps
kubectl get sts -A
kind: StatefulSet
VolumeClaimTemplate
statefulset-controller
kubectl get all
See also[edit]
Advertising: