1
0
mirror of https://github.com/openshift/installer.git synced 2026-02-05 06:46:36 +01:00
Files
installer/docs/user/aws/install.md

85 lines
3.6 KiB
Markdown
Raw Normal View History

# Cluster Installation
At this point, you are ready to perform the OpenShift installation. You have two choices for installing your cluster on
AWS, Installer-Provided Infrastructure (IPI) or User-Provided Infrastructure (UPI). See below for an example of an
IPI install.
To see a guided example of a UPI install, please see [Install: User-Provided Infrastructure](install_upi.md)
## Example: Installer-Provided Infrastructure (IPI)
The steps for performing an IPI-based install are outlined [here][cloud-install]. Following this guide you may begin at
Step 3: Download the Installer.
## Fully air-gapped installation
It is not possible to install Openshift on AWS in a fully air-gapped design because the installation process requires Internet access to use the route 53 API, as documented in the [AWS route 53 FAQ][aws-faq]:
```
Do I need connectivity to the outside Internet in order to use Private DNS?
You can resolve internal DNS names from resources within your VPC that do not have Internet connectivity. However, to update the configuration for your Private DNS hosted zone, you need Internet connectivity to access the Route 53 API endpoint, which is outside of VPC.
```
### Create Configuration
```console
$ openshift-install create install-config
? SSH Public Key /home/user_id/.ssh/id_rsa.pub
? Platform aws
? Region us-east-1
cmd/openshift-install/upi: Add a user-provided-infrastructure subcommand To support the workflow described in upiLong. I've also replaced openshiftcorp.com with example.com to comply with [1]. That way readers don't need to worry about whether openshiftcorp.com exists and, if so, who owns it. I've updated the docs/user/aws/install.md examples to follow our current (with this PR) output: $ curl -s https://storage.googleapis.com/origin-ci-test/pr-logs/pull/openshift_installer/1393/pull-ci-openshift-installer-master-e2e-aws/4457/artifacts/e2e-aws/installer/.openshift_install.log | grep level=info | head -n13 time="2019-03-12T16:34:33Z" level=info msg="Consuming \"Install Config\" from target directory" time="2019-03-12T16:34:33Z" level=info msg="Creating cluster..." time="2019-03-12T16:51:21Z" level=info msg="Waiting up to 30m0s for the Kubernetes API at https://api.ci-op-j33s61i6-1d3f3.origin-ci-int-aws.dev.rhcloud.com:6443..." time="2019-03-12T16:55:29Z" level=info msg="API v1.12.4+341c822 up" time="2019-03-12T16:55:29Z" level=info msg="Waiting up to 30m0s for the bootstrap-complete event..." time="2019-03-12T17:04:56Z" level=info msg="Destroying the bootstrap resources..." time="2019-03-12T17:05:36Z" level=info msg="Waiting up to 30m0s for the cluster at https://api.ci-op-j33s61i6-1d3f3.origin-ci-int-aws.dev.rhcloud.com:6443 to initialize..." time="2019-03-12T17:14:56Z" level=info msg="Waiting up to 10m0s for the openshift-console route to be created..." time="2019-03-12T17:14:56Z" level=info msg="Install complete!" time="2019-03-12T17:14:56Z" level=info msg="Run 'export KUBECONFIG=/tmp/artifacts/installer/auth/kubeconfig' to manage the cluster with 'oc', the OpenShift CLI." time="2019-03-12T17:14:56Z" level=info msg="The cluster is ready when 'oc login -u kubeadmin -p 3MJb2-RRTfu-SKyuq-5NcCb' succeeds (wait a few minutes)." time="2019-03-12T17:14:56Z" level=info msg="Access the OpenShift web-console here: https://console-openshift-console.apps.ci-op-j33s61i6-1d3f3.origin-ci-int-aws.dev.rhcloud.com" time="2019-03-12T17:14:56Z" level=info msg="Login to the console with user: kubeadmin, password: 3MJb2-RRTfu-SKyuq-5NcCb" [1]: https://tools.ietf.org/html/rfc6761#section-6.5
2019-03-08 12:49:36 -08:00
? Base Domain example.com
? Cluster Name test
? Pull Secret [? for help]
```
### Create Cluster
```console
$ openshift-install create cluster
cmd/openshift-install/upi: Add a user-provided-infrastructure subcommand To support the workflow described in upiLong. I've also replaced openshiftcorp.com with example.com to comply with [1]. That way readers don't need to worry about whether openshiftcorp.com exists and, if so, who owns it. I've updated the docs/user/aws/install.md examples to follow our current (with this PR) output: $ curl -s https://storage.googleapis.com/origin-ci-test/pr-logs/pull/openshift_installer/1393/pull-ci-openshift-installer-master-e2e-aws/4457/artifacts/e2e-aws/installer/.openshift_install.log | grep level=info | head -n13 time="2019-03-12T16:34:33Z" level=info msg="Consuming \"Install Config\" from target directory" time="2019-03-12T16:34:33Z" level=info msg="Creating cluster..." time="2019-03-12T16:51:21Z" level=info msg="Waiting up to 30m0s for the Kubernetes API at https://api.ci-op-j33s61i6-1d3f3.origin-ci-int-aws.dev.rhcloud.com:6443..." time="2019-03-12T16:55:29Z" level=info msg="API v1.12.4+341c822 up" time="2019-03-12T16:55:29Z" level=info msg="Waiting up to 30m0s for the bootstrap-complete event..." time="2019-03-12T17:04:56Z" level=info msg="Destroying the bootstrap resources..." time="2019-03-12T17:05:36Z" level=info msg="Waiting up to 30m0s for the cluster at https://api.ci-op-j33s61i6-1d3f3.origin-ci-int-aws.dev.rhcloud.com:6443 to initialize..." time="2019-03-12T17:14:56Z" level=info msg="Waiting up to 10m0s for the openshift-console route to be created..." time="2019-03-12T17:14:56Z" level=info msg="Install complete!" time="2019-03-12T17:14:56Z" level=info msg="Run 'export KUBECONFIG=/tmp/artifacts/installer/auth/kubeconfig' to manage the cluster with 'oc', the OpenShift CLI." time="2019-03-12T17:14:56Z" level=info msg="The cluster is ready when 'oc login -u kubeadmin -p 3MJb2-RRTfu-SKyuq-5NcCb' succeeds (wait a few minutes)." time="2019-03-12T17:14:56Z" level=info msg="Access the OpenShift web-console here: https://console-openshift-console.apps.ci-op-j33s61i6-1d3f3.origin-ci-int-aws.dev.rhcloud.com" time="2019-03-12T17:14:56Z" level=info msg="Login to the console with user: kubeadmin, password: 3MJb2-RRTfu-SKyuq-5NcCb" [1]: https://tools.ietf.org/html/rfc6761#section-6.5
2019-03-08 12:49:36 -08:00
INFO Waiting up to 30m0s for the Kubernetes API at https://api.test.example.com:6443...
INFO API v1.11.0+85a0623 up
INFO Waiting up to 30m0s for the bootstrap-complete event...
INFO Destroying the bootstrap resources...
cmd/openshift-install/upi: Add a user-provided-infrastructure subcommand To support the workflow described in upiLong. I've also replaced openshiftcorp.com with example.com to comply with [1]. That way readers don't need to worry about whether openshiftcorp.com exists and, if so, who owns it. I've updated the docs/user/aws/install.md examples to follow our current (with this PR) output: $ curl -s https://storage.googleapis.com/origin-ci-test/pr-logs/pull/openshift_installer/1393/pull-ci-openshift-installer-master-e2e-aws/4457/artifacts/e2e-aws/installer/.openshift_install.log | grep level=info | head -n13 time="2019-03-12T16:34:33Z" level=info msg="Consuming \"Install Config\" from target directory" time="2019-03-12T16:34:33Z" level=info msg="Creating cluster..." time="2019-03-12T16:51:21Z" level=info msg="Waiting up to 30m0s for the Kubernetes API at https://api.ci-op-j33s61i6-1d3f3.origin-ci-int-aws.dev.rhcloud.com:6443..." time="2019-03-12T16:55:29Z" level=info msg="API v1.12.4+341c822 up" time="2019-03-12T16:55:29Z" level=info msg="Waiting up to 30m0s for the bootstrap-complete event..." time="2019-03-12T17:04:56Z" level=info msg="Destroying the bootstrap resources..." time="2019-03-12T17:05:36Z" level=info msg="Waiting up to 30m0s for the cluster at https://api.ci-op-j33s61i6-1d3f3.origin-ci-int-aws.dev.rhcloud.com:6443 to initialize..." time="2019-03-12T17:14:56Z" level=info msg="Waiting up to 10m0s for the openshift-console route to be created..." time="2019-03-12T17:14:56Z" level=info msg="Install complete!" time="2019-03-12T17:14:56Z" level=info msg="Run 'export KUBECONFIG=/tmp/artifacts/installer/auth/kubeconfig' to manage the cluster with 'oc', the OpenShift CLI." time="2019-03-12T17:14:56Z" level=info msg="The cluster is ready when 'oc login -u kubeadmin -p 3MJb2-RRTfu-SKyuq-5NcCb' succeeds (wait a few minutes)." time="2019-03-12T17:14:56Z" level=info msg="Access the OpenShift web-console here: https://console-openshift-console.apps.ci-op-j33s61i6-1d3f3.origin-ci-int-aws.dev.rhcloud.com" time="2019-03-12T17:14:56Z" level=info msg="Login to the console with user: kubeadmin, password: 3MJb2-RRTfu-SKyuq-5NcCb" [1]: https://tools.ietf.org/html/rfc6761#section-6.5
2019-03-08 12:49:36 -08:00
INTO Waiting up to 30m0s for the cluster at https://api.test.example.com:6443 to initialize...
INFO Waiting up to 10m0s for the openshift-console route to be created...
INFO Install complete!
INFO To access the cluster as the system:admin user when using 'oc', run
export KUBECONFIG=/home/user/auth/kubeconfig
cmd/openshift-install/upi: Add a user-provided-infrastructure subcommand To support the workflow described in upiLong. I've also replaced openshiftcorp.com with example.com to comply with [1]. That way readers don't need to worry about whether openshiftcorp.com exists and, if so, who owns it. I've updated the docs/user/aws/install.md examples to follow our current (with this PR) output: $ curl -s https://storage.googleapis.com/origin-ci-test/pr-logs/pull/openshift_installer/1393/pull-ci-openshift-installer-master-e2e-aws/4457/artifacts/e2e-aws/installer/.openshift_install.log | grep level=info | head -n13 time="2019-03-12T16:34:33Z" level=info msg="Consuming \"Install Config\" from target directory" time="2019-03-12T16:34:33Z" level=info msg="Creating cluster..." time="2019-03-12T16:51:21Z" level=info msg="Waiting up to 30m0s for the Kubernetes API at https://api.ci-op-j33s61i6-1d3f3.origin-ci-int-aws.dev.rhcloud.com:6443..." time="2019-03-12T16:55:29Z" level=info msg="API v1.12.4+341c822 up" time="2019-03-12T16:55:29Z" level=info msg="Waiting up to 30m0s for the bootstrap-complete event..." time="2019-03-12T17:04:56Z" level=info msg="Destroying the bootstrap resources..." time="2019-03-12T17:05:36Z" level=info msg="Waiting up to 30m0s for the cluster at https://api.ci-op-j33s61i6-1d3f3.origin-ci-int-aws.dev.rhcloud.com:6443 to initialize..." time="2019-03-12T17:14:56Z" level=info msg="Waiting up to 10m0s for the openshift-console route to be created..." time="2019-03-12T17:14:56Z" level=info msg="Install complete!" time="2019-03-12T17:14:56Z" level=info msg="Run 'export KUBECONFIG=/tmp/artifacts/installer/auth/kubeconfig' to manage the cluster with 'oc', the OpenShift CLI." time="2019-03-12T17:14:56Z" level=info msg="The cluster is ready when 'oc login -u kubeadmin -p 3MJb2-RRTfu-SKyuq-5NcCb' succeeds (wait a few minutes)." time="2019-03-12T17:14:56Z" level=info msg="Access the OpenShift web-console here: https://console-openshift-console.apps.ci-op-j33s61i6-1d3f3.origin-ci-int-aws.dev.rhcloud.com" time="2019-03-12T17:14:56Z" level=info msg="Login to the console with user: kubeadmin, password: 3MJb2-RRTfu-SKyuq-5NcCb" [1]: https://tools.ietf.org/html/rfc6761#section-6.5
2019-03-08 12:49:36 -08:00
INFO Access the OpenShift web-console here: https://console-openshift-console.apps.test.example.com
INFO Login to the console with user: kubeadmin, password: 5char-5char-5char-5char
```
### Running Cluster
In Route53, there will be a new, private hosted zone (for internal lookups):
![Route53 private hosted zone](images/install_private_hosted_zone.png)
In EC2, there will be 6 running instances:
![EC2 instances after install](images/install_nodes.png)
The installation creates an encrypted AMI for the bootstrap and control-plane machines.
The encrypted AMI is [copied][encrypted-copy] from the AMI configured in the control-plane machine-API provider spec,
which is RHCOS by default.
The encryption uses the default EBS key for your target account and region
(`aws kms describe-key --key-id alias/aws/ebs`).
The encrypted AMI is deregistered by `destroy cluster`.
An architecture diagram for the AWS elements created by the full installation is as depicted:
![Architecture relationship of ELBs and instances](images/install_upi.svg)
The nodes within the VPC utilize the internal DNS and use the Router and Internal API load balancers. External/Internet
access to the cluster use the Router and External API load balancers. Nodes are spread equally across 3 availability
zones.
The OpenShift console is available via the kubeadmin login provided by the installer:
![OpenShift web console](images/install_console.png)
[cloud-install]: https://console.redhat.com/openshift/create
[encrypted-copy]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AMIEncryption.html#create-ami-encrypted-root-snapshot
[aws-faq]: https://aws.amazon.com/route53/faqs/