Difference between revisions of "StatefulSets"
Jump to navigation
Jump to search
(22 intermediate revisions by 3 users not shown) | |||
Line 1: | Line 1: | ||
+ | [[StatefulSet]] | ||
+ | * https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/ | ||
+ | |||
+ | * <code>[[kubectl get statefulsets]]</code> | ||
+ | * <code>[[kubectl describe statefulsets]]</code> | ||
+ | |||
+ | kubectl get statefulsets -n your_namespace | ||
+ | NAME READY AGE | ||
+ | your-elasticsearch-master 0/2 2y88d | ||
+ | |||
+ | 33m Warning [[CalculateExpectedPodCountFailed]] poddisruptionbudget/xxxx-[[pdb]] Failed to calculate the number of expected pods: statefulsets.apps does not implement the scale subresource | ||
− | |||
− | + | == Official example == | |
− | apiVersion: v1 | + | |
− | kind: Service | + | apiVersion: v1 |
− | metadata: | + | [[kind: Service]] |
− | + | metadata: | |
− | + | name: nginx | |
− | + | labels: | |
− | spec: | + | app: nginx |
− | + | spec: | |
− | + | ports: | |
− | + | - port: 80 | |
− | + | name: web | |
− | + | clusterIP: None | |
− | + | selector: | |
− | --- | + | app: nginx |
− | apiVersion: apps/v1 | + | --- |
− | kind: StatefulSet | + | apiVersion: apps/v1 |
− | metadata: | + | [[kind: StatefulSet]] |
− | + | metadata: | |
− | spec: | + | 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 | |
+ | == Related == | ||
+ | * [[Peloton]] | ||
+ | * <code>[[kubectl rollout]]</code> | ||
+ | * [[Elastic Cloud on Kubernetes (ECK)]] (May 2019) | ||
+ | * [[Kubernetes storage]] | ||
== See also == | == See also == | ||
− | * {{ | + | * {{StatefulSets}} |
+ | * {{Kubernetes workloads}} | ||
[[Category:K8s]] | [[Category:K8s]] |
Latest revision as of 08:05, 24 July 2024
kubectl get statefulsets -n your_namespace NAME READY AGE your-elasticsearch-master 0/2 2y88d
33m Warning CalculateExpectedPodCountFailed poddisruptionbudget/xxxx-pdb Failed to calculate the number of expected pods: statefulsets.apps does not implement the scale subresource
Official 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: 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
Related[edit]
See also[edit]
Advertising: