add storage_resize_mode mixed to opConfig CRD
This commit is contained in:
parent
5e4badd99c
commit
dc68a7cd6d
|
|
@ -321,6 +321,7 @@ spec:
|
|||
type: string
|
||||
enum:
|
||||
- "ebs"
|
||||
- "mixed"
|
||||
- "pvc"
|
||||
- "off"
|
||||
default: "pvc"
|
||||
|
|
|
|||
|
|
@ -196,7 +196,7 @@ configKubernetes:
|
|||
# whether the Spilo container should run with additional permissions other than parent.
|
||||
# required by cron which needs setuid
|
||||
spilo_allow_privilege_escalation: true
|
||||
# storage resize strategy, available options are: ebs, pvc, off
|
||||
# storage resize strategy, available options are: ebs, pvc, off or mixed
|
||||
storage_resize_mode: pvc
|
||||
# pod toleration assigned to instances of every Postgres cluster
|
||||
# toleration:
|
||||
|
|
|
|||
|
|
@ -486,10 +486,10 @@ configuration they are grouped under the `kubernetes` key.
|
|||
* **storage_resize_mode**
|
||||
defines how operator handles the difference between the requested volume size and
|
||||
the actual size. Available options are:
|
||||
1. `ebs` : operator resizes EBS volumes directly and executes `resizefs` within a pod
|
||||
2. `pvc` : operator only changes PVC definition
|
||||
3. `off` : disables resize of the volumes.
|
||||
4. `mixed` :operator uses AWS API to adjust size, throughput, and IOPS, and calls pvc change for file system resize
|
||||
1. `ebs` : operator resizes EBS volumes directly and executes `resizefs` within a pod
|
||||
2. `pvc` : operator only changes PVC definition
|
||||
3. `off` : disables resize of the volumes.
|
||||
4. `mixed` : operator uses AWS API to adjust size, throughput, and IOPS, and calls pvc change for file system resize
|
||||
Default is "pvc".
|
||||
|
||||
## Kubernetes resource requests
|
||||
|
|
|
|||
39
docs/user.md
39
docs/user.md
|
|
@ -1029,9 +1029,9 @@ specified but globally disabled in the configuration. The
|
|||
|
||||
## Increase volume size
|
||||
|
||||
Postgres operator supports statefulset volume resize if you're using the
|
||||
operator on top of AWS. For that you need to change the size field of the
|
||||
volume description in the cluster manifest and apply the change:
|
||||
Postgres operator supports statefulset volume resize without doing a rolling
|
||||
update. For that you need to change the size field of the volume description
|
||||
in the cluster manifest and apply the change:
|
||||
|
||||
```yaml
|
||||
spec:
|
||||
|
|
@ -1040,22 +1040,29 @@ spec:
|
|||
```
|
||||
|
||||
The operator compares the new value of the size field with the previous one and
|
||||
acts on differences.
|
||||
acts on differences. The `storage_resize_mode` can be configured. By default,
|
||||
the operator will adjust the PVCs and leave it to K8s and the infrastructure to
|
||||
apply the change.
|
||||
|
||||
You can only enlarge the volume with the process described above, shrinking is
|
||||
not supported and will emit a warning. After this update all the new volumes in
|
||||
the statefulset are allocated according to the new size. To enlarge persistent
|
||||
volumes attached to the running pods, the operator performs the following
|
||||
actions:
|
||||
When using AWS with gp3 volumes you should set the mode to `mixed` because it
|
||||
will also adjust the IOPS and throughput that can be defined in the manifest.
|
||||
Check the [AWS docs](https://aws.amazon.com/ebs/general-purpose/) to learn
|
||||
about default and maximum values. Keep in mind that AWS rate-limits updating
|
||||
volume specs to no more than once every 6 hours.
|
||||
|
||||
* call AWS API to change the volume size
|
||||
```yaml
|
||||
spec:
|
||||
volume:
|
||||
size: 5Gi # new volume size
|
||||
iops: 4000
|
||||
throughput: 500
|
||||
```
|
||||
|
||||
* connect to pod using `kubectl exec` and resize filesystem with `resize2fs`.
|
||||
|
||||
Fist step has a limitation, AWS rate-limits this operation to no more than once
|
||||
every 6 hours. Note, that if the statefulset is scaled down before resizing the
|
||||
new size is only applied to the volumes attached to the running pods. The
|
||||
size of volumes that correspond to the previously running pods is not changed.
|
||||
The operator can only enlarge volumes. Shrinking is not supported and will emit
|
||||
a warning. However, it can be done manually after updating the manifest. You
|
||||
have to delete the PVC, which will hang until you also delete the corresponding
|
||||
pod. Proceed with the next pod when the cluster is healthy again and replicas
|
||||
are streaming.
|
||||
|
||||
## Logical backups
|
||||
|
||||
|
|
|
|||
|
|
@ -319,6 +319,7 @@ spec:
|
|||
type: string
|
||||
enum:
|
||||
- "ebs"
|
||||
- "mixed"
|
||||
- "pvc"
|
||||
- "off"
|
||||
default: "pvc"
|
||||
|
|
|
|||
|
|
@ -1428,6 +1428,9 @@ var OperatorConfigCRDResourceValidation = apiextv1.CustomResourceValidation{
|
|||
{
|
||||
Raw: []byte(`"ebs"`),
|
||||
},
|
||||
{
|
||||
Raw: []byte(`"mixed"`),
|
||||
},
|
||||
{
|
||||
Raw: []byte(`"pvc"`),
|
||||
},
|
||||
|
|
|
|||
Loading…
Reference in New Issue