Kubernetes StatefulSet用于在集群内部署有状态应用程序。StatefulSet 中的每个 Pod 都可以访问即使在重新调度后仍坚持使用的本地持久卷。这使得 Pod 能够维护与其集合中的邻居不同的单独状态。
不幸的是,这些卷有一个很大的限制:Kubernetes 没有提供从 StatefulSet 对象调整它们大小的方法。spec.resources.requests.storageStatefulSet 的属性
volumeClaimTemplates
字段是不可变的,阻止您应用所需的任何容量增加。本文将向您展示如何解决该问题。
创建 StatefulSet
复制此 YAML 并将其保存到
ss.yaml
:
apiVersion: v1kind: Servicemetadata:name: nginxlabels:app: nginxspec:selector:app: nginxports:- name: nginxport: 80clusterIP: None---apiVersion: apps/v1kind: StatefulSetmetadata:name: nginxspec:selector:matchLabels:app: nginxreplicas: 3serviceName: nginxtemplate:metadata:labels:app: nginxspec:containers:- name: nginximage: nginx:latestports:- name: