Prepare your Portworx cluster for asynchronous DR in ROSA
You must configure an external load balancer for the Portworx API service on your source and destination clusters, as you are running Portworx in the cloud. An external load balancer is necessary because it assigns a public IP address for accessing Portworx on port 9001 from your worker nodes.
It is recommended that you enable authorization on your Portworx cluster before enabling a load balancer.
Enable load balancing by running the oc edit stc
command and adding the annotation to change service type value from nodePort
to LoadBalancer
as shown below:
oc edit stc <stc-name> -n <namespace>
apiVersion: core.libopenstorage.org/v1
kind: StorageCluster
metadata:
annotations:
portworx.io/service-type: "portworx-api:LoadBalancer"
...
You can verify the changes using the oc get service
command.
oc get service -n <px-namespace>
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
portworx-api LoadBalancer 10.233.56.13 192.0.2.10 9001:30278/TCP,9020:30908/TCP,9021:32598/TCP 18h
Install storkctl
Stork is Portworx's storage scheduler for your orchestrator, offering seamless integration between Portworx and OpenShift. It allows you to co-locate pods with their data, provides seamless migration of pods in case of storage issues and makes it easier to create and restore snapshots of Portworx volumes. storkctl
is a command-line tool for interacting with Stork. Install storkctl
on both clusters after installing Portworx.
Always use the latest storkctl
binary tool by downloading it from the current running Stork container.
Perform the following steps to download storkctl
from the Stork pod:
-
Linux:
STORK_POD=$(oc get pods -n <namespace> -l name=stork -o jsonpath='{.items[0].metadata.name}') &&
oc cp -n <px-namespace> $STORK_POD:/storkctl/linux/storkctl ./storkctl
sudo mv storkctl /usr/local/bin &&
sudo chmod +x /usr/local/bin/storkctl -
OS X:
STORK_POD=$(oc get pods -n <namespace> -l name=stork -o jsonpath='{.items[0].metadata.name}') &&
oc cp -n <px-namespace> $STORK_POD:/storkctl/darwin/storkctl ./storkctl
sudo mv storkctl /usr/local/bin &&
sudo chmod +x /usr/local/bin/storkctl -
Windows:
-
Copy
storkctl.exe
from the stork pod:STORK_POD=$(oc get pods -n <px-namespace> -l name=stork -o jsonpath='{.items[0].metadata.name}') &&
oc cp -n <px-namespace> $STORK_POD:/storkctl/windows/storkctl.exe ./storkctl.exe -
Move
storkctl.exe
to a directory in your PATH.
-