|
| 1 | +// Module included in the following assemblies: |
| 2 | +// |
| 3 | +// * updating/updating_a_cluster/migrating-to-multi-payload.adoc |
| 4 | + |
| 5 | +:_mod-docs-content-type: PROCEDURE |
| 6 | +[id="migrating-from-x86-to-arm64-cp_{context}"] |
| 7 | += Migrating the x86 control plane to arm64 architecture on {aws-full} |
| 8 | + |
| 9 | +You can migrate the control plane in your cluster from `x86` to `arm64` architecture on {aws-first}. |
| 10 | + |
| 11 | +.Prerequisites |
| 12 | + |
| 13 | +* You have installed the {oc-first}. |
| 14 | +* You logged in to `oc` as a user with `cluster-admin` privileges. |
| 15 | +
|
| 16 | +.Procedure |
| 17 | + |
| 18 | +. Check the architecture of the control plane nodes by running the following command: |
| 19 | ++ |
| 20 | +[source,terminal] |
| 21 | +---- |
| 22 | +$ oc get nodes -o wide |
| 23 | +---- |
| 24 | ++ |
| 25 | +.Example output |
| 26 | +[source,terminal] |
| 27 | +---- |
| 28 | +NAME STATUS ROLES AGE VERSION INTERNAL-IP EXTERNAL-IP OS-IMAGE KERNEL-VERSION CONTAINER-RUNTIME |
| 29 | +worker-001.example.com Ready worker 100d v1.30.7 10.x.x.x <none> Red Hat Enterprise Linux CoreOS 4xx.xx.xxxxx-0 5.x.x-xxx.x.x.el9_xx.x86_64 cri-o://1.30.x |
| 30 | +worker-002.example.com Ready worker 98d v1.30.7 10.x.x.x <none> Red Hat Enterprise Linux CoreOS 4xx.xx.xxxxx-0 5.x.x-xxx.x.x.el9_xx.x86_64 cri-o://1.30.x |
| 31 | +worker-003.example.com Ready worker 98d v1.30.7 10.x.x.x <none> Red Hat Enterprise Linux CoreOS 4xx.xx.xxxxx-0 5.x.x-xxx.x.x.el9_xx.x86_64 cri-o://1.30.x |
| 32 | +master-001.example.com Ready control-plane,master 120d v1.30.7 10.x.x.x <none> Red Hat Enterprise Linux CoreOS 4xx.xx.xxxxx-0 5.x.x-xxx.x.x.el9_xx.x86_64 cri-o://1.30.x |
| 33 | +master-002.example.com Ready control-plane,master 120d v1.30.7 10.x.x.x <none> Red Hat Enterprise Linux CoreOS 4xx.xx.xxxxx-0 5.x.x-xxx.x.x.el9_xx.x86_64 cri-o://1.30.x |
| 34 | +master-003.example.com Ready control-plane,master 120d v1.30.7 10.x.x.x <none> Red Hat Enterprise Linux CoreOS 4xx.xx.xxxxx-0 5.x.x-xxx.x.x.el9_xx.x86_64 cri-o://1.30.x |
| 35 | +---- |
| 36 | ++ |
| 37 | +The `KERNEL-VERSION` field in the output indicates the architecture of the nodes. |
| 38 | + |
| 39 | +. Check that your cluster uses the multi payload by running the following command: |
| 40 | ++ |
| 41 | +[source,terminal] |
| 42 | +---- |
| 43 | +$ oc adm release info -o jsonpath="{ .metadata.metadata}" |
| 44 | +---- |
| 45 | ++ |
| 46 | +If you see the following output, the cluster is multi-architecture compatible. |
| 47 | ++ |
| 48 | +[source,terminal] |
| 49 | +---- |
| 50 | +{ |
| 51 | + "release.openshift.io/architecture": "multi", |
| 52 | + "url": "https://access.redhat.com/errata/<errata_version>" |
| 53 | +} |
| 54 | +---- |
| 55 | ++ |
| 56 | +If the cluster is not using the multi payload, migrate the cluster to a multi-architecture cluster. For more information, see "Migrating to a cluster with multi-architecture compute machines". |
| 57 | + |
| 58 | +. Update your image stream from single-architecture to multi-architecture by running the following command: |
| 59 | ++ |
| 60 | +-- |
| 61 | +include::snippets/update-image-stream-to-multi-arch.adoc[] |
| 62 | +-- |
| 63 | + |
| 64 | +. Get the `arm64` compatible Amazon Machine Image (AMI) for configuring the control plane machine set by running the following command: |
| 65 | ++ |
| 66 | +[source,terminal] |
| 67 | +---- |
| 68 | +$ oc get configmap/coreos-bootimages -n openshift-machine-config-operator -o jsonpath='{.data.stream}' | jq -r '.architectures.aarch64.images.aws.regions."<aws_region>".image' <1> |
| 69 | +---- |
| 70 | +<1> Replace `<aws_region>` with the {aws-short} region where the current cluster is installed. You can get the {aws-short} region for the installed cluster by running the following command: |
| 71 | ++ |
| 72 | +[source,terminal] |
| 73 | +---- |
| 74 | +$ oc get infrastructure cluster -o jsonpath='{.status.platformStatus.aws.region}' |
| 75 | +---- |
| 76 | ++ |
| 77 | +.Example output |
| 78 | +[source,terminal] |
| 79 | +---- |
| 80 | +ami-xxxxxxx |
| 81 | +---- |
| 82 | + |
| 83 | +. Update the control plane machine set to support the `arm64` architecture by running the following command: |
| 84 | ++ |
| 85 | +[source,terminal] |
| 86 | +---- |
| 87 | +$ oc edit controlplanemachineset.machine.openshift.io cluster -n openshift-machine-api |
| 88 | +---- |
| 89 | ++ |
| 90 | +Update the `instanceType` field to a type that supports the `arm64` architecture, and set the `ami.id` field to an AMI that is compatible with the `arm64` architecture. For information about supported instance types, see "Tested instance types for {aws-short} on 64-bit ARM infrastructures". |
| 91 | ++ |
| 92 | +For more information about configuring the control plane machine set for {aws-short}, see "Control plane configuration options for {aws-full}". |
| 93 | + |
| 94 | +.Verification |
| 95 | + |
| 96 | +* Verify that the control plane nodes are now running on the `arm64` architecture: |
| 97 | ++ |
| 98 | +[source,terminal] |
| 99 | +---- |
| 100 | +$ oc get nodes -o wide |
| 101 | +---- |
| 102 | ++ |
| 103 | +.Example output |
| 104 | +[source,terminal] |
| 105 | +---- |
| 106 | +NAME STATUS ROLES AGE VERSION INTERNAL-IP EXTERNAL-IP OS-IMAGE KERNEL-VERSION CONTAINER-RUNTIME |
| 107 | +worker-001.example.com Ready worker 100d v1.30.7 10.x.x.x <none> Red Hat Enterprise Linux CoreOS 4xx.xx.xxxxx-0 5.x.x-xxx.x.x.el9_xx.x86_64 cri-o://1.30.x |
| 108 | +worker-002.example.com Ready worker 98d v1.30.7 10.x.x.x <none> Red Hat Enterprise Linux CoreOS 4xx.xx.xxxxx-0 5.x.x-xxx.x.x.el9_xx.x86_64 cri-o://1.30.x |
| 109 | +worker-003.example.com Ready worker 98d v1.30.7 10.x.x.x <none> Red Hat Enterprise Linux CoreOS 4xx.xx.xxxxx-0 5.x.x-xxx.x.x.el9_xx.x86_64 cri-o://1.30.x |
| 110 | +master-001.example.com Ready control-plane,master 120d v1.30.7 10.x.x.x <none> Red Hat Enterprise Linux CoreOS 4xx.xx.xxxxx-0 5.x.x-xxx.x.x.el9_xx.aarch64 cri-o://1.30.x |
| 111 | +master-002.example.com Ready control-plane,master 120d v1.30.7 10.x.x.x <none> Red Hat Enterprise Linux CoreOS 4xx.xx.xxxxx-0 5.x.x-xxx.x.x.el9_xx.aarch64 cri-o://1.30.x |
| 112 | +master-003.example.com Ready control-plane,master 120d v1.30.7 10.x.x.x <none> Red Hat Enterprise Linux CoreOS 4xx.xx.xxxxx-0 5.x.x-xxx.x.x.el9_xx.aarch64 cri-o://1.30.x |
| 113 | +---- |
0 commit comments