You can deploy an additional regional OpenStack-based cluster on top of the AWS, bare metal, or OpenStack management cluster to create managed clusters of several provider types if required.
To deploy an OpenStack-based regional cluster:
Log in to the node where you bootstrapped a management cluster.
Prepare the OpenStack configuration for a new regional cluster:
Log in to the OpenStack Horizon.
In the Project section, select API Access.
In the right-side drop-down menu Download OpenStack RC File, select OpenStack clouds.yaml File.
Add the downloaded clouds.yaml
file to the directory with the
bootstrap.sh
script.
In clouds.yaml
, add the password
field with your OpenStack
password under the clouds/openstack/auth
section.
Example:
clouds:
openstack:
auth:
auth_url: https://auth.openstack.example.com:5000/v3
username: your_username
password: your_secret_password
project_id: your_project_id
user_domain_name: your_user_domain_name
region_name: RegionOne
interface: public
identity_api_version: 3
Verify access to the target cloud endpoint from Docker. For example:
docker run --rm alpine sh -c "apk add --no-cache curl; \
curl https://auth.openstack.example.com:5000/v3"
The system output must contain no error records. In case of issues, follow the steps provided in Troubleshooting.
Configure the cluster and machines metadata:
Change the directory to the kaas-bootstrap
folder.
In templates/machines.yaml.template
,
modify the spec:providerSpec:value
section for 3 control plane nodes
marked with the cluster.sigs.k8s.io/control-plane
label
by substituting the flavor
and image
parameters
with the corresponding values of the control plane nodes in the related
OpenStack cluster. For example:
spec: &cp_spec
providerSpec:
value:
apiVersion: "openstackproviderconfig.k8s.io/v1alpha1"
kind: "OpenstackMachineProviderSpec"
flavor: kaas.minimal
image: bionic-server-cloudimg-amd64-20190612
Also, modify other parameters as required.
Modify the templates/cluster.yaml.template
parameters to fit your
deployment. For example, add the corresponding values for cidrBlocks
in the spec::clusterNetwork::services
section.
Clean up the environment configuration:
If you are deploying the regional cluster on top of a baremetal-based management cluster, unset the following parameters:
unset KAAS_BM_ENABLED KAAS_BM_FULL_PREFLIGHT KAAS_BM_PXE_IP \
KAAS_BM_PXE_MASK KAAS_BM_PXE_BRIDGE KAAS_BM_BM_DHCP_RANGE \
TEMPLATES_DIR
If you are deploying the regional cluster on top of an AWS-based
management cluster, unset the KAAS_AWS_ENABLED
parameter:
unset KAAS_AWS_ENABLED
Export the following parameters:
export KUBECONFIG=<pathToMgmtClusterKubeconfig>
export REGIONAL_CLUSTER_NAME=<newRegionalClusterName>
export REGION=<NewRegionName>
Substitute the parameters enclosed in angle brackets with the corresponding values of your cluster.
Run the regional cluster bootstrap script:
./bootstrap.sh deploy_regional
Note
When the bootstrap is complete, obtain and save in a secure location
the kubeconfig-<regionalClusterName>
file
located in the same directory as the bootstrap script.
This file contains the admin credentials for the regional cluster.
# |
Description |
---|---|
1 |
Prepare the bootstrap cluster for the new regional cluster. |
2 |
Load the updated Container Cloud CRDs for |
3 |
Connect to each machine of the management cluster through SSH. |
4 |
Wait for the |
5 |
Load the following objects to the new regional cluster: |
6 |
Forward the bootstrap cluster endpoint to |
7 |
Wait for all CRDs to be available and verify the objects created using these CRDs. |
8 |
Pivot the cluster API stack to the regional cluster. |
9 |
Switch the LCM agent from the bootstrap cluster to the regional one. |
10 |
Wait for the Container Cloud components to start on the regional cluster. |
Now, you can proceed with deploying the managed clusters of supported provider types as described in Create and operate a managed cluster.