Install UCP on AWS
Estimated reading time: 3 minutesThis topic applies to Docker Enterprise.
The Docker Enterprise platform business, including products, customers, and employees, has been acquired by Mirantis, inc., effective 13-November-2019. For more information on the acquisition and how it may affect you and your business, refer to the Docker Enterprise Customer FAQ.
Docker Universal Control Plane (UCP) can be installed on top of AWS without any customisation following the UCP install documentation. Therefore this document is optional, however if you are deploying Kubernetes workloads with UCP and want to leverage the AWS kubernetes cloud provider, which provides dynamic volume and loadbalancer provisioning then you should follow this guide. This guide is not required if you are only deploying swarm workloads.
The requirements for installing UCP on AWS are included in the following sections:
Instances
Hostnames
The instance’s host name must be named ip-<private ip>.<region>.compute.internal
. For example:
ip-172-31-15-241.us-east-2.compute.internal
Instance tags
The instance must be tagged with ` kubernetes.io/cluster/
kubernetes.io/cluster/1729543642a6
owned
Instance profile for managers
Manager nodes must have an instance profile with appropriate policies attached to enable introspection and provisioning of resources. The following example is very permissive:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [ "ec2:*" ],
"Resource": [ "*" ]
},
{
"Effect": "Allow",
"Action": [ "elasticloadbalancing:*" ],
"Resource": [ "*" ]
},
{
"Effect": "Allow",
"Action": [ "route53:*" ],
"Resource": [ "*" ]
},
{
"Effect": "Allow",
"Action": "s3:*",
"Resource": [ "arn:aws:s3:::kubernetes-*" ]
}
]
}
Instance profile for workers
Worker nodes must have an instance profile with appropriate policies attached to enable access to dynamically provisioned resources. The following example is very permissive:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "s3:*",
"Resource": [ "arn:aws:s3:::kubernetes-*" ]
},
{
"Effect": "Allow",
"Action": "ec2:Describe*",
"Resource": "*"
},
{
"Effect": "Allow",
"Action": "ec2:AttachVolume",
"Resource": "*"
},
{
"Effect": "Allow",
"Action": "ec2:DetachVolume",
"Resource": "*"
},
{
"Effect": "Allow",
"Action": [ "route53:*" ],
"Resource": [ "*" ]
}
}
VPC
VPC tags
The VPC must be tagged with ` kubernetes.io/cluster/
kubernetes.io/cluster/1729543642a6
owned
Subnet tags
Subnets must be tagged with ` kubernetes.io/cluster/
kubernetes.io/cluster/1729543642a6
owned
UCP
UCP install
Once all pre-requisities have been met, run the following command to install
UCP on a manager node. The --host-address
flag maps to the private IP address
of the master node.
$ docker container run --rm -it \
--name ucp \
--volume /var/run/docker.sock:/var/run/docker.sock \
docker/ucp:3.2.6 install \
--host-address <ucp-ip> \
--cloud-provider aws \
--interactive
The full Docker UCP install CLI reference can be found here
Universal Control Plane, UCP, install, Docker EE, AWS, Kubernetes