This blog shows how to prepare RHACM and manage the cluster on AWS.
- Install the RHACM operator from OperatorHub.
- Create the
MultiClusterHub
object. - Import an existing cluster into RHACM.
- Deploy a New Cluster
Installing Red Hat Advanced Cluster Management
Using OperatorHub, install the Advanced Cluster Management for Kubernetes operator in the cluster-bn7z2.sandbox1558.opentlc.com cluster.
Navigate to Operators → OperatorHub and type Advanced Cluster Management
in the Filter by keyword field.
Click Advanced Cluster Management for Kubernetes, and then click Install.
In the Update Channel, ensure that the release-2.
6 radio button is selected. In the Update approval section, select the Manual radio button to select a manual approval strategy. Then, click Install.
Next, you must approve the installation or updates to the RHACM operator manually.
Click Approve in the next step. The installation can take a few minutes to complete.
When the operator is installed, you see the following message:
Click Create MulticlusterHub.
On the Create MulticlusterHub
page, leave the default values, and click Create. You are redirected to the MultiClusterHubs
tab.
Initially, the multiclusterhub
object has a Phase: Installing
status.
After some minutes, the status Phase: Running
displays in the Status
column.
Retrieve the route to the RHACM web console, named multicloud-console
on hub cluster
$ oc get route multicloud-console -n open-cluster-management
NAME HOST/PORT PATH SERVICES PORT TERMINATION WILDCARD
multicloud-console multicloud-console.apps.cluster-bn7z2.sandbox1558.opentlc.com management-ingress https reencrypt/Redirect None
Open the RHACM web console at https://multicloud-console.apps.cluster-bn7z2.sandbox1558.opentlc.com with the hub “kubeadmin” credential.
Import an existing cluster
Explore the Infrastructure → Clusters menu.
From the Infrastructure menu, click Clusters. Scroll down to locate the managed clusters. Notice that the local-cluster
cluster-bn7z2.sandbox1558.opentlc.com
cluster, where the hub cluster runs, is automatically managed.
On the Import an existing cluster page, type the name to identify this cluster as follows:
- Name: bn7z2-m-prod-01
Leave the rest of the values unchanged and click Save import and generate code.
The Save import and generate code button now displays the Code generated successfully
message.
Click Copy command.
From the terminal, log in to the bn7z2-m-pod.sandbox1558.opentlc.com
cluster as the admin
user. The API server address is https://api.bn7z2-m-pod.sandbox1558.opentlc.com:6443
Paste the import code into the terminal and then press Enter to run it. The paste command is quite long and most of it is base64
encoded.
$ echo "Ci0tLQphcGlWZXJzaW9uOiB...CBhZ2Fpbi4=" | base64 -d
Deploy Managed OpenShift Clusters
Set Up Credentials for AWS
Create a new Namespace called opentlc-aws to hold the configuration for AWS.
$ oc create namespace opentlc-aws
In the RHACM console, click Credentials.
Click Add Credentials and select Amazon Web Services.
Specify the following values:
- Name: opentlc-aws
- Namespace: opentlc-aws
- Base DNS Domain:
sandbox1558
.opentlc.com (set to your domain)
Click Next.
For Access key ID, paste the access key ID
For Secret access key, paste the secret access key
Click Next and skip the Proxy settings.
Click Next and specify your OpenShift pull secret for the Pull Secret field.
For SSH Private Key, paste the output from the cat HOME/.ssh/{GUID}key.pem command—your private key.
For SSH Public Key, paste the output from the cat HOME/.ssh/{GUID}key.pub; echo command—your public key.
Click Next.
Verify that your entries are correct, then click Add.
Deploy New Development Cluster
I deploy one managed OpenShift cluster for development. Because you do not actually use these clusters for any productive work, you deploy single-node OpenShift (SNO) clusters. These clusters consist of only a single VM that acts as the control plane and worker.
- Under Infrastructure on the left, select Clusters, and then click Create Cluster.
- Select Amazon Web Services as the provider.
- Select the credential you created earlier as your Infrastructure provider credential (opentlc-aws).
- Click Next.
- Cluster Name: bn7z2-m-dev
- Base DNS Domain: sandbox1558.opentlc.com
- Release Image: 4.9.51 (or the latest available OpenShift 4.9 image)
- Additional Labels: purpose=development
- For Node pools, specify the following parameters, and then click Next:
- Region: ap-southeast-2
- Architecture: (do not set)
- Control plane pool → Zones: (do not set)
- Control plane pool → Instance type: m5.2xlarge
- Control plane pool → Root storage: 100 (do not change)
- Worker pool 1 → Pool name: (do not change)
- Worker pool 1 → Zones: (do not set)
- Worker pool 1 → Instance Type: m5.xlarge (do not change)
- Node Count: 0
- For Networking, click Next.
- For Proxy, click Next.
- For Automation, click Next.
- For Review, specify the following parameters:
- At the top, select YAML to show the YAML editor on the right.
- Find the MachinePool YAML resource in the editor and add skipMachinePools: true under the MachinePool spec.
- In the YAML editor switch to the install-config tab, then change the number of replicas for the control plane to 1 and verify that the number of replicas for workers is set to 0.
- Click Create.
Watch the deployment logs until the production cluster is successfully deployed.
Remove a managed cluster
# Managed Cluster
$ oc login -u admin -p redhat https://api.<cluster name>.<base domain>:6443
$ oc delete clusterrole klusterlet
$ oc delete clusterrole open-cluster-management:klusterlet-admin-aggregate-clusterrole
Now we have a “playground” to test RHACM GitOps. I will talk about it in the next Blog.