Upgrade Portworx on Kubernetes using the Operator
If you’re using the Portworx Operator, you can upgrade or change your Portworx version at any time by modifying the
In addition to managing a Portworx cluster, the Operator also manages the following other components in the Portworx platform:
For simplicity, the Portworx Operator handles the component upgrades without user intervention. When Portworx upgrades, the Operator upgrades the installed components to the recommended version as well.
- You must already be running Portworx through the Operator, this method will not work for other Portworx deployments
- You must be running the latest available version of the Operator
Prepare Anthos environments
If you’re not running Portworx on Anthos, skip this section.
If your Portworx cluster is managing the underlying storage devices in an Anthos deployment, add the following annotation to the
StorageCluster spec to ensure that during an Anthos or a Portworx upgrade, Portworx does not failover the internal KVDB to a storageless node:
portworx.io/misc-args: "-rt_opts wait-before-retry-period-in-secs=360"
kubectl getcommand to identify your storage cluster name:
kubectl get storagecluster -n kube-system
NAME CLUSTER UUID STATUS VERSION AGE px-cluster-2dc24b8d-dcf5-46d7-b4ea-0477837b54c7 9443277e-ea51-40da-b9b1-7b4739f27cf3 Online 2.10.3 43dNOTE: If your cluster is not installed in
kube-system, specify your own namespace with the
kubectl editcommand to modify your storage cluster:
kubectl edit storagecluster -n kube-system <storagecluster-name>
spec.imagevalue to the version you want to update Portworx to:
apiVersion: core.libopenstorage.org/v1 kind: StorageCluster metadata: name: portworx namespace: kube-system spec: image: portworx/oci-monitor:<your-desired-version>
storagecluster.core.libopenstorage.org/px-cluster-2dc24b8d-dcf5-46d7-b4ea-0477837b54c7 editedNOTE: To look up recent versions, refer to the Portworx release notes
Verify your upgrade using
kubectl getcommand and make note of the version displayed under
kubectl get storagenodes -n kube-system -l name=portworx
"NAME ID STATUS VERSION AGE", "node-1-1 2326f09a-73fb-440a-b059-06c81b607226 Online 2.11.3-8a0b7a8 10d", "node-1-2 5a21ad81-4db9-4d44-ba30-cf8908228900 Online 2.11.3-8a0b7a8 10d", "node-1-3 4b5e3f46-fc14-442e-adc8-c3239f8428d6 Online 2.11.3-8a0b7a8 10d"