关注微信公众号
第一手干货与资讯
加入官方微信群
获取免费技术支持
Rancher is now available for easy deployment from the Amazon Web Services (AWS) Marketplace. While Rancher has always been easy to install, availability in the marketplace makes installing Rancher faster and easier than ever. In the article below, I provide a step-by-step guide to deploying a working Rancher environment on AWS. The process involves two distinct parts:
From my own experience, it is often small details missed that can lead to trouble. In this guide I attempt to point out some potential pitfalls to help ensure a smooth installation.
If you’re a regular AWS user you’ll find this process straightforward. Before you get started you’ll need:
With these setup items out of the way, we’re ready to get started.
There are three different offerings in the Marketplace as shown below.
We’ll select the first option – Rancher on RancherOS: ** ** After you select Rancher on RancherOS you’ll see additional informational including pricing details. There is no charge for the use of the software itself, but you’ll be charged for machine hours and other fees like EBS magnetic volumes and data transfer at standard AWS rates. Press Continue once you’ve reviewed the details and the pricing. ** ** Step2: Select an installation type and provide installation details The next step is to select an installation method and provide required settings that AWS will need to provision your machine running Rancher. There are three installation types:
Select Click Launch and provides installation options as shown:
When you’ve entered these values select “Launch with 1-click“ Once you launch Rancher,you’ll see the screen below confirming details of your installation. You’ll receive an e-mail as well. This will provide you with convenient links to:
From this point on, Rancher should install by itself. You can monitor progress by visiting the AWS EC2 Console. Visit http://aws.amazon.com, login with your AWS credentials, and select EC2 under AWS services. You should see the new AWS t2.medium machine instance initializing as shown below. Note the pull-down in the top right of “North Virginia”. This provides us with visibility to machines in the US East region selected in the previous step.
The Rancher machine will take a few minutes to provision, but once complete, you should be able to connect to the external IP address for the host (shown in the EC2 console above) on port 8080. Your IP address will be different but in our case the Public IP address was 54.174.92.13, so we pointed a browser to the URL http://54.174.92.13:8080. It may take a few minutes for Rancher UI to become available but you should see the screen below. Congratulations! If you’ve gotten this far you’ve successfully deployed Rancher in the AWS cloud! ** **
Having the Rancher UI up and running is nice, but there’s not a lot you can do with Rancher until you have cluster nodes up and running. In this section I’ll look at how to deploy a Kubernetes cluster using the Rancher management node that I deployed from the marketplace in Part I.
You’ll notice when the Rancher UI is first provisioned, there is no access control. This means that anyone can connect to the web interface. You’ll be prompted with a warning indicating that you should setup Authentication before proceeding. Select Access Control under the ADMIN menu in the Rancher UI. Rancher exposes multiple authentication options as shown including the use of external Access Control providers. DevOps teams will often store their projects in a GitHub repository, so using GitHub for authentication is a popular choice. We’ll use GitHub in this example. For details on using other Access Control methods, you can consult the Rancher Documentation. GitHub users should follow the directions, and click on the link provided in the Rancher UI to setup an OAuth application in GitHub. You’ll be prompted to provide your GitHub credentials. Once logged into GitHub, you should see a screen listing any OAuth applications and inviting you to Register a new application. We’re going to setup Rancher for Authentication with Git Hub. Click the Register a new application button in Git Hub, and provide details about your Rancher installation on AWS. You’ll need the Public IP address or fully qualified host name for your Rancher management host. Once you’ve supplied details about the Rancher application to Git Hub and clicked Register application, Git Hub will provide you with a Client ID and a Client Secret for the Rancher application as shown below. Copy and paste the Client ID and the Client Secret that appears in Git Hub into the Rancher Access Control setup screen, and save these values. Once these values are saved, click Authorize to allow Git Hub authentication to be used with your Rancher instance. If you’ve completed these steps successfully, you should see a message that Git Hub authentication has been setup. You can invite additional Git Hub users or organizations to access your Rancher instance as shown below.
When Rancher is deployed, there is a single Default environment that uses Rancher’s native orchestration engine called Cattle. Since we’re going to install a Rancher managed Kubernetes cluster, we’ll need to add a new environment for Kubernetes. Under the environment selection menu on the left labelled Default, select Add Environment. Provide a name and description for the environment as shown, and select Kubernetes as the environment template. Selecting the Kubernetes framework means that Kubernetes will be used for Orchestration, and additional Rancher frameworks will be used including Network Services, Healthcheck Services and Rancher IPsec as the software-defined network environment in Kubernetes. Once you add the new environment, Rancher will immediately begin trying to setup a Kubernetes environment. Before Rancher can proceed however a Docker host needs to be added.
To add a host in Rancher, click on Add a host on the warning message that appears at the top of the screen or select the Add Host option under the Infrastructure -> Hosts menu. Rancher provides multiple ways to add hosts. You can add an existing Docker host on-premises or in the cloud, or you can automatically add hosts using a cloud-provider specific machine driver as shown below. Since our Rancher management host is running on Amazon EC2, we’ll select the Amazon EC2 machine driver to auto-provision additional cluster hosts. You’ll want to select the same AWS region where your Rancher management host resides and you’ll need your AWS provided Access key and Secret key. If you don’t have an AWS Access key and Secret key, the AWS documentation explains how you can obtain one. You’ll need to provide your AWS credentials to Rancher as shown so that it can provision machines on your behalf. After you’ve provided your AWS credentials, select the AWS Virtual private cloud and subnet. We’ve selected the same VPC where our Rancher management node was installed from the AWS marketplace. Security groups in AWS EC2 express a set of inbound and outbound security rules. You can choose a security group already setup in your AWS account, but it is easier to just let Rancher use the existing rancher-machine group to ensure the network ports that Rancher needs open are configured appropriately. After setting up the security group, you can set your instance options for the additional cluster nodes. You can add multiple hosts at a time. We add five hosts in this example. We can give the hosts a name. We use k8shost as our prefix, and Rancher will append a number to the prefix naming our hosts k8shost1 through k8shost5. You can select the type of AWS host you’d like for your Kubernetes cluster. For testing, a t2.medium instance is adequate (2 cores and 4GB of RAM) however if you are running real workloads, a larger node would be better. Accept the default 16GB root directory size. If you leave the AMI blank, Rancher will provision the machine using an Ubuntu AMI. Note that the ssh username will be ubuntu for this machine type. You can leave the other settings alone in case you want to change the defaults. Once you click Create, Rancher will use your AWS credentials to provision the hosts using your selected options in your AWS cloud account. You can monitor the creation of the new hosts from the EC2 dashboard as shown. Progress will also be shown from within Rancher. Rancher will automatically provision the AWS host, install the appropriate version of Docker on the host, provide credentials, start a rancher Agent, and once the agent is present Rancher will orchestrate the installation of Kubernetes pulling the appropriate rancher components from the Docker registry to each cluster host. You can also monitor the step-by-step provisioning process by selecting Hosts as shown below under the Infrastructure menu. This view shows our five node Kubernetes cluster at different stages of provisioning. It will take a few minutes before the environment is provisioned and up and running, but when the dust settles, the Infrastructure Stacks view should show that the Rancher stacks comprising the Kubernetes environment are all up and running and healthy. Under the Kubernetes pull-down, you can launch a Kubernetes shell and issue kubectl commands. Remember that Kubernetes has the notion of namespaces, so to see the Pods and Services used by Kubernetes itself, you’ll need to query the kube-system namespace. This same screen also provides guidance for installing the kubectl CLI on your own local host. Rancher also provides access to the Kubernetes Dashboard following the automated installation under the Kubernetes pull-down. Congratulations! If you’ve gotten this far, give yourself a pat on the back. You’re now a Rancher on AWS expert!