GKE Pod snapshots are configured with two custom resource definitions (CRDs):
When snapshots are taken, the Pod state is represented by a PodSnapshot resource.
To learn more about Pod snapshots, see About Pod snapshots.
PodSnapshotStorageConfig specification
PodSnapshotStorageConfig defines where Pod snapshots are stored.
spec:
snapshotStorageConfig:
gcs:
bucket: string
path: string
| Fields | |
|---|---|
|
required |
Defines the configuration for the snapshot's underlying storage. |
|
required |
Contains the configuration for Cloud Storage setups. |
|
required |
Defines the bucket name to be used for storing Pod snapshots. |
|
optional |
Defines the path within the bucket to be used as a child directory for storing Pod snapshots. |
PodSnapshotPolicy specification
PodSnapshotPolicy configures the Pod snapshot feature, such as the matching conditions to trigger checkpoints for selected workloads.
spec:
selector:
matchExpressions:
- key: string
operator: string
values: []string
matchLabels:
additionalProperties: string
storageConfigName: string
triggerConfig:
postCheckpoint: string
type: string
| Fields | |
|---|---|
|
required |
Defines the set of Pods managed by this policy. The policy's checkpoint and restore settings will apply to all Pods that match the policy's label selector. |
|
optional |
A list of label selector requirements. The requirements are combined by using an AND statement. |
|
required |
The label key that the selector applies to. |
|
required |
Represents a key's relationship to a set of values. Valid operators are |
|
optional |
An array of string values. If the operator is |
|
optional |
A map of key-value pairs. A single key-value pair in the map is equivalent to an element of |
|
required |
Name of the PodSnapshotStorageConfig this policy depends on. |
|
required |
Configuration for checkpoint triggers. |
|
optional |
Defines Pod behavior after a checkpoint is taken. |
|
required |
Type of checkpoint trigger. |
PodSnapshot specification
PodSnapshot represents a point-in-time snapshot of a Pod's state. It is governed by the PodSnapshotPolicy.
spec:
policyName: string
source: object
| Fields | |
|---|---|
|
required |
The name of the PodSnapshotPolicy in the same namespace that governs the behavior of this snapshot. This field is immutable. |
Status fields
status:
conditions:
- lastTransitionTime: string
message: string
observedGeneration: integer
reason: string
status: string
type: string
lastAccessTime: string
observedCheckpointRetryCount: integer
observedGeneration: integer
storageStatus:
gcs:
observedGCSPath: string
| Fields | |
|---|---|
|
|
Provide detailed observations of the resource's current state. The conditions are updated by the controller to reflect the progress and health of the snapshot process. |
|
|
The last time the condition transitioned from one status to another. This should be when the underlying condition changed. If that is not known, then you can use the time when the API field changed. |
|
|
A human-readable message indicating details about the transition. This can be an empty string. |
|
|
Represents the |
|
|
Contains a programmatic identifier indicating the reason for the condition's last transition. The value should be a CamelCase string. This field cannot be empty. |
|
|
Status of the condition, one of |
|
|
Type of condition in CamelCase or in |
|
optional |
The last time the snapshot was used to restore a Pod. This field is updated by the system when a restore operation occurs and determines expiration for retention policies. |
|
optional |
Represents the .metadata.generation that the status was last updated for. This is used to reconcile changes made to the spec. |
|
optional |
Contains details about the underlying storage resources that have been provisioned for this snapshot. |
|
optional |
Provides status information about the Cloud Storage resources. |
|
optional |
The Cloud Storage bucket path where the snapshot is stored. |