Merge branch 'master' into lv-0913

This commit is contained in:
lauren Vuchetich
2018-09-13 09:59:16 -07:00
committed by GitHub
205 changed files with 1198 additions and 1364 deletions
-1
View File
@@ -9,7 +9,6 @@ RUN ln -s /site/config.toml /run \
&& ln -s /site/.eslintrc.js /run \
&& ln -s /site/archetypes /run \
&& ln -s /site/content /run \
&& ln -s /site/data /run \
&& ln -s /site/layouts /run \
&& ln -s /site/src /run \
&& ln -s /site/themes /run \
-1
View File
@@ -6,7 +6,6 @@ COPY gulpfile.babel.js /run/
COPY .eslintrc.js /run/
COPY config.toml /run/
COPY archetypes archetypes
COPY data data
COPY layouts layouts
COPY scripts scripts
COPY content content
-1
View File
@@ -6,7 +6,6 @@ COPY gulpfile.babel.js /run/
COPY .eslintrc.js /run/
COPY config.toml /run/
COPY archetypes archetypes
COPY data data
COPY layouts layouts
COPY scripts scripts
COPY content content
+25 -19
View File
@@ -21,6 +21,8 @@ PygmentsStyle = "native"
addThis = "ra-5af1cc6793d86bfb"
### Edit content repo (set to automatically enter "edit" mode; this is good for "improve this page" links)
ghdocsrepo = "https://github.com/rancher/docs"
pageBy = "title"
pageLimit = 5
[outputFormats.Algolia]
baseName = "algolia"
@@ -39,6 +41,7 @@ params = ["categories", "tags"]
[[menu.main]]
identifier = "what-is-rancher"
name = "What is Rancher"
url = "https://rancher.com/what-is-rancher/overview/"
weight = "1"
pre = "<i class='material-icons'>keyboard_arrow_down</i>"
@@ -107,6 +110,7 @@ pre = "<i class='material-icons'>keyboard_arrow_down</i>"
[[menu.main]]
identifier = "products"
name = "Products"
url = "https://rancher.com/products/"
weight = "2"
pre = "<i class='material-icons'>keyboard_arrow_down</i>"
@@ -121,38 +125,43 @@ pre = "<i class='material-icons'>keyboard_arrow_down</i>"
parent = "products"
[[menu.main]]
#identifier = "customers"
#name = "Customers"
#url = "https://rancher.com/customers/"
#weight = "3"
[[menu.main]]
identifier = "customers"
name = "Customers"
url = "https://rancher.com/customers/"
weight = "4"
weight = "3"
[[menu.main]]
identifier = "learn"
name = "Learn"
weight = "5"
url = "https://rancher.com/learn/"
weight = "4"
pre = "<i class='material-icons'>keyboard_arrow_down</i>"
[[menu.main]]
name = "Blog"
url = "https://rancher.com/blog/"
parent = "learn"
weight = "1"
[[menu.main]]
name = "Rancher Docs"
url = "https://rancher.com/docs/"
name = "Events"
url = "https://rancher.com/events/"
parent = "learn"
weight = "2"
[[menu.main]]
name = "Training"
url = "https://rancher.com/training/"
parent = "learn"
weight = "3"
[[menu.main]]
name = "Online Meetups"
url = "https://rancher.com/online-meetups/"
parent = "learn"
weight = "4"
[[menu.main]]
name = "Forums"
@@ -160,16 +169,13 @@ pre = "<i class='material-icons'>keyboard_arrow_down</i>"
target = "_blank"
pre = "<i class='material-icons text-sm'>launch</i>"
parent = "learn"
weight = "5"
[[menu.main]]
#name = "Learning Resources"
#url = "https://rancher.com/learning-resources/"
#parent = "learn"
[[menu.main]]
name = "Events"
url = "https://rancher.com/events/"
name = "Rancher Docs"
url = "https://rancher.com/docs/"
parent = "learn"
weight = "6"
[[menu.main]]
@@ -180,8 +186,8 @@ weight = "5"
pre = "<i class='material-icons'>keyboard_arrow_down</i>"
[[menu.main]]
name = "News"
url = "https://rancher.com/news/"
name = "Press"
url = "https://rancher.com/press/"
parent = "about"
[[menu.main]]
@@ -1,5 +1,5 @@
---
title: Admin Settings
title: Administration
weight: 1100
aliases:
- /rancher/v2.x/en/concepts/global-configuration/
@@ -20,6 +20,7 @@ The Rancher authentication proxy integrates with the following external authenti
- Microsoft Azure AD
- GitHub
- PingIdentity
<!-- - Keycloak -->
- Microsoft AD FS
- FreeIPA
- OpenLDAP
@@ -21,25 +21,16 @@ Configuring Rancher to allow your users to authenticate with their Azure AD acco
>**Tip:** Before you start, we recommend creating an empty text file. You can use this file to copy values from Azure that you'll paste into Rancher later.
1. [Register Rancher with Azure](#1-register-rancher-with-azure)
<!-- TOC -->
Before enabling Azure AD within Rancher, you must register Rancher with Azure.
- [1. Register Rancher with Azure](#1-register-rancher-with-azure)
- [2. Create an Azure API Key](#2-create-an-azure-api-key)
- [3. Set Required Permissions for Rancher](#3-set-required-permissions-for-rancher)
- [4. Add a Reply URL](#4-add-a-reply-url)
- [5. Copy Azure Application Data](#5-copy-azure-application-data)
- [6. Configure Azure AD in Rancher](#6-configure-azure-ad-in-rancher)
1. [Create an Azure API Key](#2-create-an-azure-api-key)
From the Azure portal, create an API key. Rancher will use this key to authenticate with AD.
1. [Set Required Permissions for Rancher](#3-set-required-permissions-for-rancher)
Next, set API permissions for Rancher within Azure.
1. [Copy Azure Application Data](#4-copy-azure-application-data)
As your final step in Azure, copy the data that you'll use to configure Rancher for Azure AD authentication.
1. [Configure Azure AD in Rancher](#5-configure-azure-ad-in-rancher)
From the Rancher UI, enter information about your AD instance hosted in Azure to complete configuration.
<!-- /TOC -->
### 1. Register Rancher with Azure
@@ -119,7 +110,28 @@ Next, set API permissions for Rancher within Azure.
>**Note:** You must be signed in as an Azure administrator to successfully save your permission settings.
### 4. Copy Azure Application Data
### 4. Add a Reply URL
To use Azure AD with Rancher you must whitelist Rancher with Azure. You can complete this whitelisting by providing Azure with a reply URL for Rancher, which is your Rancher Server URL followed with a verification path.
1. From the **Setting** blade, select **Reply URLs**.
![Azure: Enter Reply URL]({{< baseurl >}}/img/rancher/enter-azure-reply-url.png)
1. From the **Reply URLs** blade, enter the URL of your Rancher Server, appended with the verification path: `<MY_RANCHER_URL>/verify-auth-azure`.
>**Tip:** You can find your personalized Azure reply URL in Rancher on the Azure AD Authentication page (Global View > Security Authentication > Azure AD).
>
> ![Reply URL Example]({{< baseurl >}}/img/rancher/azure-reply-url.png)
1. Click **Save**.
**Result:** Your reply URL is saved.
>**Note:** It can take up to five minutes for this change to take affect, so don't be alarmed if you can't authenticate immediately after Azure AD configuration.
### 5. Copy Azure Application Data
As your final step in Azure, copy the data that you'll use to configure Rancher for Azure AD authentication and paste it into an empty text file.
@@ -157,7 +169,7 @@ As your final step in Azure, copy the data that you'll use to configure Rancher
- **OAuth 2.0 Token Endpoint** (Token Endpoint)
- **OAuth 2.0 Authorization Endpoint** (Auth Endpoint)
### 5. Configure Azure AD in Rancher
### 6. Configure Azure AD in Rancher
From the Rancher UI, enter information about your AD instance hosted in Azure to complete configuration.
@@ -175,15 +187,15 @@ Enter the values that you copied to your [text file](#tip).
The following table maps the values you copied in the Azure portal to the fields in Rancher.
Rancher Field | Azure Value
---------|----------
Tenant ID | Directory ID
Application ID | Application ID
Application Secret | Key Value
Endpoint | https://login.microsoftonline.com/
Graph Endpoint | Microsoft Azure AD Graph API Endpoint
Token Endpoint | OAuth 2.0 Token Endpoint
Auth Endpoint | OAuth 2.0 Authorization Endpoint
| Rancher Field | Azure Value |
| ------------------ | ------------------------------------- |
| Tenant ID | Directory ID |
| Application ID | Application ID |
| Application Secret | Key Value |
| Endpoint | https://login.microsoftonline.com/ |
| Graph Endpoint | Microsoft Azure AD Graph API Endpoint |
| Token Endpoint | OAuth 2.0 Token Endpoint |
| Auth Endpoint | OAuth 2.0 Authorization Endpoint |
1. Click **Authenticate with Azure**.
@@ -0,0 +1,49 @@
---
title: Configuring KeyCloak (SAML)
weight: 1200
draft: true
---
_Available as of v2.0.1_
If your organization uses KeyCloak Identity Provider (IdP) for user authentication, you can configure Rancher to allow your users to log in using their IdP credentials.
>**Prerequisites:**
>
>- You must have a [KeyCloak IdP Server](https://www.keycloak.org/docs/3.2/server_installation/index.html) configured.
>- Export a `metadata.xml` file from your IdP Server. For more information, see the [KeyCloak documentation](https://www.keycloak.org/docs/3.2/server_admin/topics/clients/client-saml.html) to create a SAML Client, under Installation tab, you can find your metadata.
1. From the **Global** view, select **Security > Authentication** from the main menu.
1. Select **KeyCloak**.
1. Complete the **Configure KeyCloak Account** form. KeyCloak IdP lets you specify what data store you want to use. You can either add a database or use an existing LDAP server. For example, if you select your Active Directory (AD) server, the examples below describe how you can map AD attributes to fields within Rancher.
| Field | Description |
| ------------------------- | ----------------------------------------------------------------------------- |
| Display Name Field | The AD attribute that contains the display name of users. |
| User Name Field | The AD attribute that contains the user name/given name. |
| UID Field | An AD attribute that is unique to every user. |
| Groups Field | Make entries for managing group memberships. |
| Rancher API Host | The URL for your Rancher Server. |
| Private Key / Certificate | A key/certificate pair to create a secure shell between Rancher and your IdP. |
| IDP-metadata | The `metadata.xml` file that you exported from your IdP server. |
>**Tip:** You can generate a key/certificate pair using an openssl command. For example:
>
> openssl req -x509 -sha256 -nodes -days 365 -newkey rsa:2048 -keyout myservice.key -out myservice.cert
1. After you complete the **Configure KeyCloak Account** form, click **Authenticate with KeyCloak**, which is at the bottom of the page.
Rancher redirects you to the IdP login page. Enter credentials that authenticate with KeyCloak IdP to validate your Rancher KeyCloak configuration.
>**Note:** You may have to disable your popup blocker to see the IdP login page.
**Result:** Rancher is configured to work with KeyCloak. Your users can now sign into Rancher using their KeyCloak logins.
>**KeyCloak Identity Provider Caveats:**
>
>- IdP does not support search or lookup. When adding users to [clusters]({{< baseurl >}}/rancher/v2.x/en/k8s-in-rancher/editing-clusters/) or [projects]({{< baseurl >}}/rancher/v2.x/en/k8s-in-rancher/projects-and-namespaces/editing-projects/), the exact IDs must be entered correctly.
>- When adding users to [clusters]({{< baseurl >}}/rancher/v2.x/en/k8s-in-rancher/editing-clusters/) or [projects]({{< baseurl >}}/rancher/v2.x/en/k8s-in-rancher/projects-and-namespaces/editing-projects/), group IDs are not supported unless the admin who turned on access control is a member of the group.
>- When adding a group that includes an admin to clusters or projects, add it from the drop-down rather than the search bar. If you add the group using the search bar, the group will not get added.
@@ -6,47 +6,34 @@ _Available as of v2.0.7_
If your organization uses Microsoft Active Directory Federation Services (AD FS) for user authentication, you can configure Rancher to allow your users to log in using their AD FS credentials.
>**Prerequisites:**
>
>- You must have a [Microsoft AD FS Server](https://docs.microsoft.com/en-us/windows-server/identity/active-directory-federation-services) configured.
>- Export a `federationmetadata.xml` file from your AD FS Server. For more information, see the [PingIdentity video](https://docs.pingidentity.com/bundle/ping_sm_videoLibrary/page/p1_IdentityBridgeADFS.html).
## Prerequisites
1. From the **Global** view, select **Security > Authentication** from the main menu.
1. Select **Microsoft Active Directory Federation Services**.
- You must have Rancher installed.
1. Complete the **Configure AD FS Account** form. Microsoft AD FS lets you specify an existing Active Directory (AD) server. The examples below describe how you can map AD attributes to fields within Rancher.
1. **Display Name Field**: Enter the AD attribute that contains the display name of users (example: `http://schemas.xmlsoap.org/ws/2005/05/identity/claims/givenname`).
- Obtain your Rancher Server URL. During AD FS configuration, substitute this URL for the `<RANCHER_SERVER>` placeholder.
1. **User Name Field**: Enter the AD attribute that contains the user name/given name (example: `http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name`).
1. **UID Field**: Enter an AD attribute that is unique to every user (example: `http://schemas.xmlsoap.org/ws/2005/05/identity/claims/upn`).
1. **Groups Field**: Make entries for managing group memberships (example: `http://schemas.xmlsoap.org/claims/Group`).
1. **Rancher API Host**: Enter the URL for your Rancher Server.
- You must have a global administrator account on your Rancher installation.
1. **Private Key** and **Certificate**: This is a key-certificate pair to create a secure shell between Rancher and your AD FS.
You can generate one using an openssl command. For example:
```
openssl req -x509 -newkey rsa:2048 -keyout myservice.key -out myservice.cert -days 365 -nodes -subj "/CN=myservice.example.com"
```
1. **Metadata XML**: The `federationmetadata.xml` file exported from your AD FS server. You can find this file at `https://your-AD-Server/federationmetadata/2007-06/federationmetadata.xml`.
- You must have a [Microsoft AD FS Server](https://docs.microsoft.com/en-us/windows-server/identity/active-directory-federation-services) configured.
1. After you complete the **Configure AD FS Account** form, click **Authenticate with AD FS**, which is at the bottom of the page.
- Obtain your AD FS Server IP/DNS name. During AD FS configuration, substitute this IP/DNS name for the `<AD_SERVER>` placeholder.
Rancher redirects you to the AD FS login page. Enter credentials that authenticate with Microsoft AD FS to validate your Rancher AD FS configuration.
- You must have access to add [Relying Party Trusts](https://docs.microsoft.com/en-us/windows-server/identity/ad-fs/operations/create-a-relying-party-trust) on your AD FS Server.
>**Note:** You may have to disable your popup blocker to see the AD FS login page.
**Result:** Rancher is configured to work with MS FS. Your users can now sign into Rancher using their MS FS logins.
## Setup Outline
Setting up Microsoft AD FS with Rancher Server requires configuring AD FS on your Active Directory server, and configuring Rancher to utilize your AD FS server. The following pages serve as guides for setting up Microsoft AD FS authentication on your Rancher installation.
- [1 — Configuring Microsoft AD FS for Rancher]({{< baseurl >}}/rancher/v2.x/en/admin-settings/authentication/microsoft-adfs/microsoft-adfs-setup)
- [2 — Configuring Rancher for Microsoft AD FS]({{< baseurl >}}/rancher/v2.x/en/admin-settings/authentication/microsoft-adfs/rancher-adfs-setup)
>**Active Directory Federation Service Caveats:**
>
>- AD FS does not support search or lookup. When adding users to [clusters]({{< baseurl >}}/rancher/v2.x/en/k8s-in-rancher/editing-clusters/) or [projects]({{< baseurl >}}/rancher/v2.x/en/k8s-in-rancher/projects-and-namespaces/editing-projects/), the exact IDs must be entered correctly.
>- When adding users to [clusters]({{< baseurl >}}/rancher/v2.x/en/k8s-in-rancher/editing-clusters/) or [projects]({{< baseurl >}}/rancher/v2.x/en/k8s-in-rancher/projects-and-namespaces/editing-projects/), group IDs are not supported unless the admin who turned on access control is a member of the group.
>- When adding a group that includes an admin to [clusters]({{< baseurl >}}/rancher/v2.x/en/k8s-in-rancher/editing-clusters/) or [projects]({{< baseurl >}}/rancher/v2.x/en/k8s-in-rancher/projects-and-namespaces/editing-projects/), add it from the drop-down rather than the search bar. If you add the group using the search bar, the group will not get added.
>- When adding a group that includes an admin to [clusters]({{< baseurl >}}/rancher/v2.x/en/k8s-in-rancher/editing-clusters/) or [projects]({{< baseurl >}}/rancher/v2.x/en/k8s-in-rancher/projects-and-namespaces/editing-projects/), add it from the drop-down rather than the search bar. If you add the group using the search bar, the group will not get added.
### [Next: Configuring Microsoft AD FS for Rancher]({{< baseurl >}}/rancher/v2.x/en/admin-settings/authentication/microsoft-adfs/microsoft-adfs-setup)
@@ -0,0 +1,82 @@
---
title: 1 — Configuring Microsoft AD FS for Rancher
weight: 1205
---
Before configuring Rancher to support AD FS users, you must add Rancher as a [relying party trust](https://docs.microsoft.com/en-us/windows-server/identity/ad-fs/technical-reference/understanding-key-ad-fs-concepts) in AD FS.
1. Log into your AD server as an administrative user.
1. Open the **AD FS Management** console. Select **Add Relying Party Trust...** from the **Actions** menu and click **Start**.
<img src="{{< baseurl >}}/img/rancher/adfs/adfs-overview.png" style="width:800px;"/>
1. Select **Enter data about the relying party manually** as the option for obtaining data about the relying party.
<img src="{{< baseurl >}}/img/rancher/adfs/adfs-add-rpt-2.png" style="width:600px;"/>
1. Enter your desired **Display name** for your Relying Party Trust. For example, `Rancher`.
<img src="{{< baseurl >}}/img/rancher/adfs/adfs-add-rpt-3.png" style="width:600px;"/>
1. Select **AD FS profile** as the configuration profile for your relying party trust.
<img src="{{< baseurl >}}/img/rancher/adfs/adfs-add-rpt-4.png" style="width:600px;"/>
1. Leave the **optional token encryption certificate** empty, as Rancher AD FS will not be using one.
<img src="{{< baseurl >}}/img/rancher/adfs/adfs-add-rpt-5.png" style="width:600px;"/>
1. Select **Enable support for the SAML 2.0 WebSSO protocol**
and enter `https://<rancher-server>/v1-saml/adfs/saml/acs` for the service URL.
<img src="{{< baseurl >}}/img/rancher/adfs/adfs-add-rpt-6.png" style="width:600px;"/>
1. Add `https://<rancher-server>/v1-saml/adfs/saml/metadata` as the **Relying party trust identifier**.
<img src="{{< baseurl >}}/img/rancher/adfs/adfs-add-rpt-7.png" style="width:600px;"/>
1. This tutorial will not cover multi-factor authentication; please refer to the [Microsoft documentation](https://docs.microsoft.com/en-us/windows-server/identity/ad-fs/operations/configure-additional-authentication-methods-for-ad-fs) if you would like to configure multi-factor authentication.
<img src="{{< baseurl >}}/img/rancher/adfs/adfs-add-rpt-8.png" style="width:600px;"/>
1. From **Choose Issuance Authorization RUles**, you may select either of the options available according to use case. However, for the purposes of this guide, select **Permit all users to access this relying party**.
<img src="{{< baseurl >}}/img/rancher/adfs/adfs-add-rpt-9.png" style="width:600px;"/>
1. After reviewing your settings, select **Next** to add the relying party trust.
<img src="{{< baseurl >}}/img/rancher/adfs/adfs-add-rpt-10.png" style="width:600px;"/>
1. Select **Open the Edit Claim Rules...** and click **Close**.
<img src="{{< baseurl >}}/img/rancher/adfs/adfs-add-rpt-11.png" style="width:600px;"/>
1. On the **Issuance Transform Rules** tab, click **Add Rule...**.
<img src="{{< baseurl >}}/img/rancher/adfs/adfs-edit-cr.png" style="width:450px;"/>
1. Select **Send LDAP Attributes as Claims** as the **Claim rule template**.
<img src="{{< baseurl >}}/img/rancher/adfs/adfs-add-tcr-1.png" style="width:600px;"/>
1. Set the **Claim rule name** to your desired name (for example, `Rancher Attributes`) and select **Active Directory** as the **Attribute store**. Create the following mapping to reflect the table below:
| LDAP Attribute | Outgoing Claim Type |
| -------------------------------------------- | ------------------- |
| Given-Name | Given Name |
| User-Principal-Name | UPN |
| Token-Groups - Qualified by Long Domain Name | Group |
| SAM-Account-Name | Name |
<br/>
<img src="{{< baseurl >}}/img/rancher/adfs/adfs-add-tcr-2.png" style="width:600px;"/>
1. Download the `federationmetadata.xml` from your AD server at:
```
https://<AD_SERVER>/federationmetadata/2007-06/federationmetadata.xml
```
**Result:** You've added Rancher as a relying trust party. Now you can configure Rancher to leverage AD.
### [Next: Configuring Rancher for Microsoft AD FS]({{< baseurl >}}/rancher/v2.x/en/admin-settings/authentication/microsoft-adfs/rancher-adfs-setup/)
@@ -0,0 +1,45 @@
---
title: 2 — Configuring Rancher for Microsoft AD FS
weight: 1205
---
_Available as of v2.0.7_
After you complete [Configuring Microsoft AD FS for Rancher]({{< baseurl >}}/rancher/v2.x/en/admin-settings/authentication/microsoft-adfs/microsoft-adfs-setup/), enter your AD FS information into Rancher to allow AD FS users to authenticate with Rancher.
>**Important Notes For Configuring Your AD FS Server:**
>
>- The SAML 2.0 WebSSO Protocol Service URL is: `https://<RANCHER_SERVER>/v1-saml/adfs/saml/acs`
>- The Relying Party Trust identifier URL is: `https://<RANCHER_SERVER>/v1-saml/adfs/saml/metadata`
>- You must export the `federationmetadata.xml` file from your AD FS server. This can be found at: `https://<AD_SERVER>/federationmetadata/2007-06/federationmetadata.xml`
1. From the **Global** view, select **Security > Authentication** from the main menu.
1. Select **Microsoft Active Directory Federation Services**.
1. Complete the **Configure AD FS Account** form. Microsoft AD FS lets you specify an existing Active Directory (AD) server. The examples below describe how you can map AD attributes to fields within Rancher.
| Field | Description |
| ------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Display Name Field | The AD attribute that contains the display name of users. <br/><br/>Example: `http://schemas.xmlsoap.org/ws/2005/05/identity/claims/givenname` |
| User Name Field | The AD attribute that contains the user name/given name. <br/><br/>Example: `http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name` |
| UID Field | An AD attribute that is unique to every user. <br/><br/>Example: `http://schemas.xmlsoap.org/ws/2005/05/identity/claims/upn` |
| Groups Field | Make entries for managing group memberships. <br/><br/>Example: `http://schemas.xmlsoap.org/claims/Group` |
| Rancher API Host | The URL for your Rancher Server. |
| Private Key / Certificate | This is a key-certificate pair to create a secure shell between Rancher and your AD FS. Ensure you set the Common Name (CN) to your Rancher Server URL.<br/><br/>[Certificate creation command](#cert-command) |
| Metadata XML | The `federationmetadata.xml` file exported from your AD FS server. <br/><br/>You can find this file at `https://<AD_SERVER>/federationmetadata/2007-06/federationmetadata.xml`. |
<a id="cert-command"></a>
>**Tip:** You can generate a certificate using an openssl command. For example:
>
> openssl req -x509 -newkey rsa:2048 -keyout myservice.key -out myservice.cert -days 365 -nodes -subj "/CN=myservice.example.com"
1. After you complete the **Configure AD FS Account** form, click **Authenticate with AD FS**, which is at the bottom of the page.
Rancher redirects you to the AD FS login page. Enter credentials that authenticate with Microsoft AD FS to validate your Rancher AD FS configuration.
>**Note:** You may have to disable your popup blocker to see the AD FS login page.
**Result:** Rancher is configured to work with MS FS. Your users can now sign into Rancher using their MS FS logins.
@@ -0,0 +1,34 @@
---
title: Custom CA root certificate
weight: 252
aliases:
- /rancher/v2.x/en/installation/custom-ca-root-certificate/
---
If you're using Rancher in a internal production environment where you aren't exposing apps publicly, use a certificate from a private certificate authority (CA).
Services that Rancher needs to access are sometimes configured with a certificate from an custom/internal CA root, also known as self signed certificate. If the presented certificate from the service cannot be validated by Rancher, the following error displays: `x509: certificate signed by unknown authority`.
To validate the certificate, the CA root certificates need to be added to Rancher. As Rancher is written in Go, we can use the environment variable `SSL_CERT_DIR` to point to the directory where the CA root certificates are located in the container. The CA root certificates directory can be mounted using the Docker volume option (`-v host-source-directory:container-destination-directory`) when starting the Rancher container.
Examples of services that Rancher can access:
* Catalogs
* Authentication providers
* Accessing hosting/cloud API when using Node Drivers
Use the the command example to start a Rancher container with you private CA certificates mounted.
- The volume option (`-v`) should specify the host directory containing the CA root certificates.
- The `e` flag in combination with `SSL_CERT_DIR` declares an environment variable that specifies the mounted CA root certificates directory location inside the container.
- Passing environment variables to the Rancher container can be done using `-e KEY=VALUE` or `--env KEY=VALUE`.
- Mounting a host directory inside the container can be done using `-v host-source-directory:container-destination-directory` or `--volume host-source-directory:container-destination-directory`.
The example below is based on having the CA root certificates in the `/host/certs` directory on the host and mounting this directory on `/container/certs` inside the Rancher container.
```
docker run -d --restart=unless-stopped \
-p 80:80 -p 443:443 \
-v /host/certs:/container/certs \
-e SSL_CERT_DIR="/container/certs" \
rancher/rancher:latest
```
@@ -33,15 +33,15 @@ Rancher lets you assign _custom cluster roles_ to a user instead of the typical
The following table lists each built-in custom cluster role available in Rancher and whether it is also granted by the `Owner` or `Member` role.
| Custom Cluster Role | Owner | Member |
| ---------------------------------- | ------------- | ------------- |
| Manage Cluster Members | ✓ | |
| Manage Nodes | ✓ | |
| Manage Storage | ✓ | |
| View All Projects | ✓ | |
| Create Project | ✓ | ✓ |
| View Cluster Members | ✓ | ✓ |
| View Nodes | ✓ | ✓ |
| Custom Cluster Role | Owner | Member <a id="clus-roles"></a> |
| ---------------------------------- | ------------- | --------------------------------- |
| Manage Cluster Members | ✓ | |
| Manage Nodes | ✓ | |
| Manage Storage | ✓ | |
| View All Projects | ✓ | |
| Create Project | ✓ | ✓ |
| View Cluster Members | ✓ | ✓ |
| View Nodes | ✓ | ✓ |
> **Note:** Each cluster role listed above, including `Owner` and `Member`, is comprised of multiple rules granting access to various resources. You can view the roles and their rules on the Global > Security > Roles page.
@@ -69,25 +69,25 @@ Rancher lets you assign _custom project roles_ to a user instead of the typical
The following table lists each built-in custom project role available in Rancher and whether it is also granted by the `Owner`, `Member`, or `Read Only` role.
| Custom Cluster Role | Owner | Member | Read Only |
| ---------------------------------- | ------------- | ------------- | ------------- |
| Manage Project Members | ✓ | | |
| Create Namespaces | ✓ | ✓ | |
| Manage Config Maps | ✓ | ✓ | |
| Manage Ingress | ✓ | ✓ | |
| Manage Secrets | ✓ | ✓ | |
| Manage Service Accounts | ✓ | ✓ | |
| Manage Services | ✓ | ✓ | |
| Manage Volumes | ✓ | ✓ | |
| Manage Workloads | ✓ | ✓ | |
| View Config Maps | ✓ | ✓ | ✓ |
| View Ingress | ✓ | ✓ | ✓ |
| View Project Members | ✓ | ✓ | ✓ |
| View Secrets | ✓ | ✓ | ✓ |
| View Service Accounts | ✓ | ✓ | ✓ |
| View Services | ✓ | ✓ | ✓ |
| View Volumes | ✓ | ✓ | ✓ |
| View Workloads | ✓ | ✓ | ✓ |
| Custom Cluster Role | Owner | Member<a id="proj-roles"><a/> | Read Only |
| ---------------------------------- | ------------- | ----------------------------- | ------------- |
| Manage Project Members | ✓ | | |
| Create Namespaces | ✓ | ✓ | |
| Manage Config Maps | ✓ | ✓ | |
| Manage Ingress | ✓ | ✓ | |
| Manage Secrets | ✓ | ✓ | |
| Manage Service Accounts | ✓ | ✓ | |
| Manage Services | ✓ | ✓ | |
| Manage Volumes | ✓ | ✓ | |
| Manage Workloads | ✓ | ✓ | |
| View Config Maps | ✓ | ✓ | ✓ |
| View Ingress | ✓ | ✓ | ✓ |
| View Project Members | ✓ | ✓ | ✓ |
| View Secrets | ✓ | ✓ | ✓ |
| View Service Accounts | ✓ | ✓ | ✓ |
| View Services | ✓ | ✓ | ✓ |
| View Volumes | ✓ | ✓ | ✓ |
| View Workloads | ✓ | ✓ | ✓ |
> **Note:** Each project role listed above, including Owner, Member, and Read Only, is comprised of multiple rules granting access to various resources. You can view the roles and their rules on the Global > Security > Roles page.
@@ -133,4 +133,13 @@ You can change the cluster or project role(s) that are automatically assigned to
1. If you want to remove a default role, edit the permission and select **No** from the default roles option.
**Result:** The default roles are configured based on your changes. Roles assigned to cluster/project creators display a check in the **Cluster/Project Creator Default** column.
**Result:** The default roles are configured based on your changes. Roles assigned to cluster/project creators display a check in the **Cluster/Project Creator Default** column.
### Cluster Membership Revocation Behavior
When you revoke the cluster membership for a user that's explicitly assigned membership to both the cluster _and_ a project within the cluster, that user [loses their cluster roles](#clus-roles) but [retains their project roles](#proj-roles). In other words, although you have revoked the user's permissions to access the cluster and its nodes, the user can still:
- Access the projects they hold membership in.
- Exercise any [individual project roles](#project-role-reference) they are assigned.
If you want to completely revoke a user's access within a cluster, revoke both their cluster and project memberships.
@@ -22,15 +22,31 @@ While Rancher comes out-of-the-box with a set of default user roles, you can als
1. From the **Global** view, select **Security > Roles** from the main menu.
2. Click **Add Role**.
1. **v2.0.7 and later only:** Select a tab to determine the scope of the roles you're adding. The tabs are:
3. **Name** the role.
- **Cluster**
4. Choose whether to set the role to a status of [locked]({{< baseurl >}}/rancher/v2.x/en/admin-settings/rbac/locked-roles/).
The role is valid for assignment when adding/managing members to _only_ clusters.
- **Project**
The role is valid for assignment when adding/managing members to _only_ projects.
>**Note:** You cannot edit the Global tab.
1. Click **Add Cluster/Project Role**.
1. **Name** the role.
1. Choose whether to set the role to a status of [locked]({{< baseurl >}}/rancher/v2.x/en/admin-settings/rbac/locked-roles/).
Locked roles cannot be assigned to users.
5. Assign the role a **Context**. Context determines the scope of role assigned to the user. The contexts are:
1. **v2.0.7 and later only:** Choose a **Cluster/Project Creator Default** option setting. Use this option to set if the role is assigned to a user when they create a new cluster or project. Using this feature, you can expand or restrict the default roles for cluster/project creators.
>**Note:** Out of the box, the Cluster Creator Default and the Project Creator Default roles are `Cluster Owner` and `Project Owner` respectively.
1. **v2.0.6 and earlier only:** Assign the role a **Context**. Context determines the scope of role assigned to the user. The contexts are:
- **All**
@@ -3,13 +3,13 @@ title: Global Permissions
weight: 1126
---
Global Permissions define user authorization outside the scope of any particular cluster. Out-of-the-box, there are two default global permissions: `Administrator` and `User`.
Global Permissions define user authorization outside the scope of any particular cluster. Out-of-the-box, there are two default global permissions: `Administrator` and `Standard User`.
- **Administrator:**
These users have full control over the entire Rancher system and all clusters within it.
- <a id="user"></a>**User:**
- <a id="user"></a>**Standard User:**
These users can create new clusters and use them. Standard users can also assign other users permissions to their clusters.
@@ -73,4 +73,4 @@ You can change the default global permissions that are assigned to external user
1. If you want to remove a default permission, edit the permission and select **No** from **New User Default**.
**Result:** The default global permissions are configured based on your changes. Permissions assigned to new users display a check in the **New User Default** column.
**Result:** The default global permissions are configured based on your changes. Permissions assigned to new users display a check in the **New User Default** column.
@@ -6,41 +6,67 @@ aliases:
- /rancher/v2.x/en/installation/backups-and-restoration/single-node-backup-and-restoration/
---
After completing your single node installation of Rancher, you can create a backup of your current installation at any time. We recommend making a backup before [upgrading]({{< baseurl >}}/rancher/v2.x/en/upgrades/single-node-upgrade/). Use this backup as a restoration point in disaster scenarios or when you need to [rollback]({{< baseurl >}}/rancher/v2.x/en/backups/rollbacks/single-node-rollbacks/) to an older version.
After completing your single node installation of Rancher, we recommend creating backups of it on a regular basis. Use these backups as a restoration point in a disaster scenario.
>**Prerequisite:** Open Rancher and write down the version number displayed in the lower-left of the browser (example: `v2.0.0`). You'll need this number during the backup process.
## Before You Start
1. Stop the container currently running Rancher Server. Replace `<RANCHER_CONTAINER_ID>` with the ID of your Rancher container.
During creation of your backup, you'll enter a series of commands, filling placeholders with data from your environment. These placeholders are denoted with angled brackets and all capital letters (`<EXAMPLE>`). Here's an example of a command with a placeholder:
```
docker run --volumes-from rancher-data-<DATE> -v $PWD:/backup alpine tar zcvf /backup/rancher-data-backup-<RANCHER_VERSION>-<DATE>.tar.gz /var/lib/rancher
```
In this command, `<DATE>` is a placeholder for the date that the data container and backup were created. `9-27-18` for example.
Cross reference the image and reference table below to learn how to obtain this placeholder data. Write down or copy this information before starting the [procedure below](#creating-a-backup).
<sup>Terminal `docker ps` Command, Displaying Where to Find `<RANCHER_CONTAINER_TAG>` and `<RANCHER_CONTAINER_NAME>`</sup>
![Placeholder Reference]({{< baseurl >}}/img/rancher/placeholder-ref.png)
| Placeholder | Example | Description |
| -------------------------- | -------------------------- | --------------------------------------------------------- |
| `<RANCHER_CONTAINER_TAG>` | `v2.0.5` | The rancher/rancher image you pulled for initial install. |
| `<RANCHER_CONTAINER_NAME>` | `festive_mestorf` | The name of your Rancher container. |
| `<RANCHER_VERSION>` | `v2.0.5` | The version of Rancher that you're creating a backup for. |
| `<DATE>` | `9-27-18` | The date that the data container or backup was created. |
<br/>
You can obtain `<RANCHER_CONTAINER_TAG>` and `<RANCHER_CONTAINER_NAME>` by logging into your Rancher Server by remote connection and entering the command to view the containers that are running: `docker ps`. You can also view containers that are stopped using a different command: `docker ps -a`. Use these commands for help anytime during while creating backups.
## Creating a Backup
This procedure creates a backup that you can restore to in case Rancher encounters a disaster scenario.
1. Using a remote Terminal connection, log into the node running your Rancher Server.
1. Stop the container currently running Rancher Server. Replace `<RANCHER_CONTAINER_NAME>` with the [name of your Rancher container](#before-you-start).
```
docker stop <RANCHER_CONTAINER_ID>
docker stop <RANCHER_CONTAINER_NAME>
```
>**Tip:** You can obtain the ID for your Rancher container by entering the following command: `docker ps`.
2. <a id="backup"></a>Create a data container. This container contains the data from your current Rancher Server, and can be used to start Rancher Server.
- Replace `<RANCHER_CONTAINER_ID>` with the same ID from the previous step.
- Replace `<RANCHER_VERSION>` and `<RANCHER_CONTAINER_TAG>` with the version of Rancher that you are currently running, as mentioned in the **Prerequisite** above.
1. <a id="backup"></a>Use the command below, replacing each [placeholder](#before-you-start), to create a data container from the Rancher container that you just stopped.
```
docker create --volumes-from <RANCHER_CONTAINER_ID> \
--name rancher-data-<RANCHER_VERSION> rancher/rancher:<RANCHER_CONTAINER_TAG>
docker create --volumes-from <RANCHER_CONTAINER_NAME> --name rancher-data-<DATE> rancher/rancher:<RANCHER_CONTAINER_TAG>
```
3. During upgrade, you point to a Rancher server to the same Rancher data container and the Rancher data in the data container will continue to be updated/changed. Therefore, you need to get a snapshot of the data to be used for disaster recovery or in case you need to rollback the upgrade.
1. <a id="tarball"></a>From the data container that you just created (`rancher-data-<DATE>`), create a backup tarball (`rancher-data-backup-<RANCHER_VERSION>-<DATE>.tar.gz`). Use the following command, replacing each [placeholder](#before-you-start).
```
docker run --volumes-from rancher-data-<RANCHER_VERSION> \
-v $PWD:/backup alpine tar zcvf \
/backup/rancher-data-backup-<RANCHER_VERSION>.tar.gz /var/lib/rancher
docker run --volumes-from rancher-data-<DATE> -v $PWD:/backup alpine tar zcvf /backup/rancher-data-backup-<RANCHER_VERSION>-<DATE>.tar.gz /var/lib/rancher
```
3. After you've created your backup, you can either restart Rancher server or [upgrade]({{< baseurl >}}/rancher/v2.x/en/upgrades/single-node-upgrade/). Replace `<RANCHER_CONTAINER_ID>` with the ID of your Rancher container.
**Step Result:** A stream of commands runs on screen.
1. Enter the `dir` command to confirm that the backup tarball was created. It will have a name similar to `rancher-data-backup-<RANCHER_VERSION>-<DATE>.tar.gz`.
1. Move your backup tarball to a safe location external from your Rancher Server. Then delete the `rancher-data-<DATE>` container from your Rancher Server.
1. Restart Rancher Server. Replace `<RANCHER_CONTAINER_NAME>` with the name of your [Rancher container](#before-you-start).
```
# Restart Rancher server
docker start <RANCHER_CONTAINER_ID>
docker start <RANCHER_CONTAINER_NAME>
```
**Result:** A backup of your Rancher Server is created. If you ever need to restore your backup, see [Restoring Backups: Single Node Installs]({{< baseurl >}}/rancher/v2.x/en/upgrades/restorations/single-node-restoration).
**Result:** A backup tarball of your Rancher Server data is created. See [Restoring Backups: Single Node Installs]({{< baseurl >}}/rancher/v2.x/en/backups/restorations/single-node-restoration) if you need to restore backup data.
@@ -39,6 +39,8 @@ Prepare by creating 3 new nodes to be the target for the restored Rancher instan
We recommend that you start with fresh nodes and a clean state. Alternatively you can clear Kubernetes and Rancher configurations from the existing nodes. This will destroy the data on these nodes. See [Node Cleanup]({{< baseurl >}}/rancher/v2.x/en/faq/cleaning-cluster-nodes/) for the procedure.
> **IMPORTANT:** Before starting the restore make sure all the kubernetes services on the old cluster nodes are stopped. We recommend powering off the nodes to be sure.
### 2. Place Snapshot and PKI Bundle
Pick a one of the clean nodes. That node will be the "target node" for the initial restore. Place the snapshot and PKI certificate bundle files in the `/opt/rke/etcd-snapshots` directory on the "target node".
@@ -105,9 +107,9 @@ rke up --config ./rancher-cluster-restore.yml
#### Testing the Cluster
Once RKE completes, the cluster should now be up and Rancher should be running. RKE will have created a credentials file in the local directory. Configure `kubectl` to use the `kube_config_rancher-cluster-restore.yml` credentials file and check on the state of the cluster. See [Installing and Configuring kubectl]({{< baseurl >}}/rancher/v2.x/en/faq/kubectl/#configuration) for details.
Once RKE completes it will have created a credentials file in the local directory. Configure `kubectl` to use the `kube_config_rancher-cluster-restore.yml` credentials file and check on the state of the cluster. See [Installing and Configuring kubectl]({{< baseurl >}}/rancher/v2.x/en/faq/kubectl/#configuration) for details.
You should see your new "target node" in `Ready` and three old nodes in `NotReady`.
Your new cluster will take a few minutes to stabilize. Once you see the new "target node" transition to `Ready` and three old nodes in `NotReady` you are ready to continue.
```
kubectl get nodes
@@ -121,10 +123,37 @@ NAME STATUS ROLES AGE VERSION
#### Cleaning up Old Nodes
Use `kubectl` to delete the old nodes from the cluster. Repeat for each old node.
Use `kubectl` to delete the old nodes from the cluster.
```
kubectl delete node 18.217.82.189
kubectl delete node 18.217.82.189 18.222.22.56 18.191.222.99
```
#### Reboot the Target Node
Reboot the target node to ensure the cluster networking and services are in a clean state before continuing.
#### Check Kubernetes Pods
Wait for the pods running in `kube-system`, `ingress-nginx` and the `rancher` pod in `cattle-system` to return to the `Running` state.
> **Note:** `cattle-cluster-agent` and `cattle-node-agent` pods will be in an `Error` or `CrashLoopBackOff` state until Rancher server is up and the DNS/Load Balancer have been pointed at the new cluster.
```
kubectl get pods --all-namespaces
NAMESPACE NAME READY STATUS RESTARTS AGE
cattle-system cattle-cluster-agent-766585f6b-kj88m 0/1 Error 6 4m
cattle-system cattle-node-agent-wvhqm 0/1 Error 8 8m
cattle-system rancher-78947c8548-jzlsr 0/1 Running 1 4m
ingress-nginx default-http-backend-797c5bc547-f5ztd 1/1 Running 1 4m
ingress-nginx nginx-ingress-controller-ljvkf 1/1 Running 1 8m
kube-system canal-4pf9v 3/3 Running 3 8m
kube-system cert-manager-6b47fc5fc-jnrl5 1/1 Running 1 4m
kube-system kube-dns-7588d5b5f5-kgskt 3/3 Running 3 4m
kube-system kube-dns-autoscaler-5db9bbb766-s698d 1/1 Running 1 4m
kube-system metrics-server-97bc649d5-6w7zc 1/1 Running 1 4m
kube-system tiller-deploy-56c4cf647b-j4whh 1/1 Running 1 4m
```
#### Adding in Additional Nodes
@@ -6,26 +6,66 @@ aliases:
- /rancher/v2.x/en/installation/after-installation/single-node-backup-and-restoration/
---
Restoring to a backup for your Rancher install if you encounter issues in your Rancher setup.
If you encounter a disaster scenario, you can restore your Rancher Server to your most recent backup.
1. Stop the container currently running Rancher Server. Replace `<RANCHER_CONTAINER_ID>` with the ID of your Rancher container.
## Before You Start
During restoration of your backup, you'll enter a series of commands, filling placeholders with data from your environment. These placeholders are denoted with angled brackets and all capital letters (`<EXAMPLE>`). Here's an example of a command with a placeholder:
```
docker run --volumes-from <RANCHER_CONTAINER_NAME> -v $PWD:/backup
alpine sh -c "rm /var/lib/rancher/* -rf &&
tar zxvf /backup/rancher-data-backup-<RANCHER_VERSION>-<DATE>"
```
In this command, `<RANCHER_CONTAINER_NAME>` and `<RANCHER_VERSION>-<DATE>` are environment variables for your Rancher deployment.
Cross reference the image and reference table below to learn how to obtain this placeholder data. Write down or copy this information before starting the [procedure below](#creating-a-backup).
<sup>Terminal `docker ps` Command, Displaying Where to Find `<RANCHER_CONTAINER_TAG>` and `<RANCHER_CONTAINER_NAME>`</sup>
![Placeholder Reference]({{< baseurl >}}/img/rancher/placeholder-ref.png)
| Placeholder | Example | Description |
| -------------------------- | -------------------------- | --------------------------------------------------------- |
| `<RANCHER_CONTAINER_TAG>` | `v2.0.5` | The rancher/rancher image you pulled for initial install. |
| `<RANCHER_CONTAINER_NAME>` | `festive_mestorf` | The name of your Rancher container. |
| `<RANCHER_VERSION>` | `v2.0.5` | The version number for your Rancher backup. |
| `<DATE>` | `9-27-18` | The date that the data container or backup was created. |
<br/>
You can obtain `<RANCHER_CONTAINER_TAG>` and `<RANCHER_CONTAINER_NAME>` by logging into your Rancher Server by remote connection and entering the command to view the containers that are running: `docker ps`. You can also view containers that are stopped using a different command: `docker ps -a`. Use these commands for help anytime during while creating backups.
## Restoring Backups
Using a [backup]({{< baseurl >}}/rancher/v2.x/en/backups/backups/single-node-backups/) that you created earlier, restore Rancher to its last known healthy state.
1. Using a remote Terminal connection, log into the node running your Rancher Server.
1. Stop the container currently running Rancher Server. Replace `<RANCHER_CONTAINER_NAME>` with the [name of your Rancher container](#before-you-start).
```
docker stop <RANCHER_CONTAINER_ID>
docker stop <RANCHER_CONTAINER_NAME>
```
1. Move the backup tarball that you created during completion of [Creating Backups—Single Node Installs]({{< baseurl >}}/rancher/v2.x/en/backups/backups/single-node-backups/) onto your Rancher Server. Change to the directory that you moved it to. Enter `dir` to confirm that it's there.
2. Go to the location where you saved your [backup tar balls]({{< baseurl >}}/rancher/v2.x/en/backups/backups/single-node-backups/#backup). Run the following command to delete your current state data and start your backup data:
If you followed the naming convention we suggested in [Creating Backups—Single Node Installs]({{< baseurl >}}/rancher/v2.x/en/backups/backups/single-node-backups/), it will have a name similar to `rancher-data-backup-<RANCHER_VERSION>-<DATE>.tar.gz`.
1. Enter the following command to delete your current state data and replace it with your backup data, replacing the [placeholders](#before-you-start). Don't forget to close the quotes.
>**Warning!** This command deletes all current state data from your Rancher Server container. Any changes saved after your backup tarball was created will be lost.
```
docker run --volumes-from <RANCHER_CONTAINER_ID> -v $PWD:/backup \
alpine sh -c "rm /var/lib/rancher/* -rf && \
tar zxvf /backup/<BACKUP_FILENAME>.tar.gz"
docker run --volumes-from <RANCHER_CONTAINER_NAME> -v $PWD:/backup
alpine sh -c "rm /var/lib/rancher/* -rf &&
tar zxvf /backup/rancher-data-backup-<RANCHER_VERSION>-<DATE>.tar.gz"
```
>**Warning!** Running this command will delete ALL current state data from your Rancher Server container. Any changes that happened after the backup point you are restoring will be lost.
**Step Result:** A series of commands should run.
3. Start you rancher server container back. The container will start with the data from the restored backup.
1. Restart your Rancher Server container, replacing the [placeholder](#before-you-start). It will restart using your backup data.
```
docker start <RANCHER_CONTAINER_ID>
docker start <RANCHER_CONTAINER_NAME>
```
1. Wait a few moments and then open Rancher in a web browser. Confirm that the restoration succeeded and that your data is restored.
+12
View File
@@ -95,3 +95,15 @@ After you've either enabled the built-in catalogs or added your own custom catal
- **Workloads** view
- **Catalog Apps** view
## Deleting Catalog Application Deployments
As a safeguard to prevent you from unintentionally deleting other catalog applications that share a namespace, deleting catalog applications themselves does not delete the namespace they're assigned to. Therefore, when you want to delete a deployed catalog application, assuming that it's the only app in its namespace, delete the namespace rather than the catalog app itself. Deleting the namespace deletes both the namespace and the catalog app, whereas deleting the catalog app only deletes the app but not the namespace.
1. From the **Global** view, open the project that contains the catalog application that you want to delete.
1. From the main menu, choose **Namespaces**.
1. Find the namespace running your catalog app. Select it and click **Delete**.
**Result:** The catalog application deployment and its namespace are deleted.
@@ -23,20 +23,4 @@ RKE launched clusters are separated into two categories:
### Requirements
If you use RKE to set up a cluster, your cluster nodes must meet the following requirements.
{{< accordion id="os" label="Operating System" >}}
{{< requirements_os >}}
{{< /accordion >}}
{{< accordion id="hardware" label="Hardware" >}}
{{< requirements_hardware >}}
{{< /accordion >}}
{{< accordion id="software" label="Software" >}}
{{< requirements_software >}}
{{< /accordion >}}
{{< accordion id="ports-rancher" label="Ports for Rancher" >}}
{{< requirements_ports_rancher >}}
{{< /accordion >}}
{{< accordion id="ports-rke" label="Ports for RKE" >}}
{{< requirements_ports_rke >}}
{{< /accordion >}}
If you use RKE to set up a cluster, your cluster nodes must meet our [Requirements]({{< baseurl >}}/rancher/v2.x/en/installation/requirements).
@@ -42,22 +42,7 @@ Provision the host according to the requirements below.
### Requirements
{{< accordion id="os" label="Operating System" >}}
{{< requirements_os >}}
{{< /accordion >}}
{{< accordion id="hardware" label="Hardware" >}}
{{< requirements_hardware >}}
{{< /accordion >}}
{{< accordion id="software" label="Software" >}}
{{< requirements_software >}}
{{< /accordion >}}
{{< accordion id="ports-rancher" label="Ports for Rancher" >}}
{{< requirements_ports_rancher >}}
{{< /accordion >}}
{{< accordion id="ports-rke" label="Ports for RKE" >}}
{{< requirements_ports_rke >}}
{{< /accordion >}}
Each node in your cluster must meet our [Requirements]({{< baseurl >}}/rancher/v2.x/en/installation/requirements).
## Create the Custom Cluster
@@ -1,7 +1,6 @@
---
title: CNI Providers
weight: 2300
draft: true
---
## What is CNI?
@@ -54,7 +53,7 @@ Canal is a CNI provider that gives you the best of Flannel and Calico. It allows
In Rancher, Canal is the default CNI provider combined with Flannel and VXLAN encapsulation.
Kubernetes workers should open UDP port `8472` (VXLAN) and `9099` (healthcheck).
Kubernetes workers should open UDP port `8472` (VXLAN) and TCP port `9099` (healthcheck). See [Port Requirements]({{< baseurl >}}/rancher/v2.x/en/installation/references/) for more details.
![Canal Diagram]({{< baseurl >}}/img/rancher/canal-diagram.png)
@@ -68,7 +67,7 @@ Flannel is a simple and easy way to configure L3 network fabric designed for Kub
Encapsulated traffic is unencrypted by default. Threfore, flannel provides an experimental backend for encryption, [IPSec](https://github.com/coreos/flannel/blob/master/Documentation/backends.md#ipsec), which makes use of [strongSwan](https://www.strongswan.org/) to establish encrypted IPSec tunnels between Kubernetes workers.
Kubernetes workers should open UDP port `8472` (VXLAN) and `9099` (healthcheck).
Kubernetes workers should open UDP port `8472` (VXLAN) and TCP port `9099` (healthcheck). See [Port Requirements]({{< baseurl >}}/rancher/v2.x/en/installation/references/) for more details.
![Flannel Diagram]({{< baseurl >}}/img/rancher/flannel-diagram.png)
@@ -8,14 +8,18 @@ This section contains instructions for installing Rancher in development and pro
- [Single Node Installation]({{< baseurl >}}/rancher/v2.x/en/installation/single-node/)
Install Rancher on a single Linux host.
Install Rancher on a single Linux host. Single node installs are recommended for development and test environments, as setup is simple and the server doesn't have to be readily available for a user base—only the developer or tester.
- [High Availability Installation]({{< baseurl >}}/rancher/v2.x/en/installation/ha/)
This install scenario creates a new Kubernetes cluster dedicated to running Rancher Server in a high-availability (HA) configuration.
This install scenario creates a new Kubernetes cluster dedicated to running Rancher Server in a high-availability (HA) configuration, which runs Rancher Server on multiple hosts so that it's always accessible provided that one of your cluster nodes is running. We recommend high-availability installs in production environments, where your user base requires 24/7 access to your applications.
### Reference
- [Requirements]({{< baseurl >}}/rancher/v2.x/en/installation/requirements/)
A reference of hardware and software requirements for the server(s) hosting Rancher.
- [Port Requirements]({{< baseurl >}}/rancher/v2.x/en/installation/references/)
List of required ports you must open to operate Rancher.
@@ -3,7 +3,7 @@ title: High Availability (HA) Install
weight: 275
---
When installed in a Kubernetes cluster, Rancher will integrate with the cluster's etcd database and take advantage of Kubernetes scheduling for High-Availability.
For production environments, we recommend installing Rancher in a high-availability configuration so that your user base can always access Rancher Server. When installed in a Kubernetes cluster, Rancher will integrate with the cluster's etcd database and take advantage of Kubernetes scheduling for high-availability.
This procedure walks you through setting up a 3-node cluster with RKE and installing the Rancher chart with the Helm package manager.
@@ -11,11 +11,12 @@ This procedure walks you through setting up a 3-node cluster with RKE and instal
## Recommended Architecture
* DNS for Rancher should resolve to a Layer 4 Load Balancer
* DNS for Rancher should resolve to a layer 4 load balancer
* The Load Balancer should forward ports 80 and 443 TCP to all 3 nodes in the Kubernetes cluster.
* The Ingress controller will redirect http port 80 to https and terminate SSL/TLS on port 443.
* The Ingress controller will forward traffic to port 80 on the Pod in the Rancher Deployment.
* The Ingress controller will forward traffic to port 80 on the pod in the Rancher deployment.
<sup>HA Rancher install with layer 4 load balancer, depicting SSL termination at ingress controllers</sup>
![Rancher HA]({{< baseurl >}}/img/rancher/ha/rancher2ha.svg)
## Required Tools
@@ -11,27 +11,7 @@ Use your provider of choice to provision 3 nodes and a Load Balancer endpoint fo
### Host Requirements
#### Operating System
{{< requirements_os >}}<br/>
#### Nodes
{{< requirements_hardware >}}<br/>
#### Software
{{< requirements_software >}}
{{< note_server-tags >}}
#### Ports
{{< requirements_ports_rancher_rke >}}
<br/>
If you block ports internally on the nodes see the full [ports list]({{< baseurl >}}/rancher/v2.x/en/installation/references/) for all the communication details.
View the requirements for nodes hosting Rancher at [Requirements]({{< baseurl >}}/rancher/v2.x/en/installation/requirements).
### Load Balancer
@@ -13,6 +13,8 @@ Use `helm repo add` to add the Rancher chart repository.
helm repo add rancher-stable https://releases.rancher.com/server-charts/stable
```
For additional chart details, view the [source of these Rancher server charts](https://github.com/rancher/server-chart).
### Install cert-manager
> **Note:** cert-manager is only required for Rancher generated and LetsEncrypt issued certificates. You may skip this step if you are bringing your own certificates and using the `ingress.tls.source=secret` option.
@@ -9,15 +9,20 @@ Use RKE to install Kubernetes with a high-availability etcd configuration.
Using the sample below create the `rancher-cluster.yml` file. Replace the IP Addresses in the `nodes` list with the IP address or DNS names of the 3 Nodes you created.
> **Note:** If your node has public and internal addresses, it is recommended to set the `internal_address:` so Kubernetes will use it for intra-cluster communication. Some services like AWS EC2 require setting the `internal_address:` if you want to use self-referencing security groups or firewalls.
```yaml
nodes:
- address: 165.227.114.63
internal_address: 172.16.22.12
user: ubuntu
role: [controlplane,worker,etcd]
- address: 165.227.116.167
internal_address: 172.16.32.37
user: ubuntu
role: [controlplane,worker,etcd]
- address: 165.227.127.226
internal_address: 172.16.42.73
user: ubuntu
role: [controlplane,worker,etcd]
```
@@ -4,11 +4,14 @@ weight: 275
aliases:
- /rancher/v2.x/en/installation/ha-server-install/
---
This set of instructions creates a new Kubernetes cluster that's dedicated to running Rancher in a high-availability (HA) configuration. This procedure walks you through setting up a 3-node cluster using the Rancher Kubernetes Engine (RKE). The cluster's sole purpose is running pods for Rancher. The setup is based on:
This procedure walks you through setting up a 3-node cluster using the Rancher Kubernetes Engine (RKE). The cluster's sole purpose is running pods for Rancher. The setup is based on:
- Layer 4 load balancer (TCP)
- [NGINX ingress controller with SSL termination (HTTPS)](https://kubernetes.github.io/ingress-nginx/)
In a HA setup that uses a layer 4 load balancer, the load balancer accepts Rancher client connections over the TCP/UDP protocols (i.e., the transport level). The load balancer then forwards these connections to individual cluster nodes without reading the request itself. Because the load balancer cannot read the packets it's forwarding, the routing decisions it can make are limited.
<sup>HA Rancher install with layer 4 load balancer, depicting SSL termination at ingress controllers</sup>
![Rancher HA]({{< baseurl >}}/img/rancher/ha/rancher2ha.svg)
## Installation Outline
@@ -36,29 +39,7 @@ Installation of Rancher in a high-availability configuration involves multiple p
## 1. Provision Linux Hosts
Before you install Rancher, confirm you meet the host requirements. Provision 3 new Linux hosts using the requirements below.
### Host Requirements
#### Operating System
{{< requirements_os >}}
#### Hardware
{{< requirements_hardware >}}
#### Software
{{< requirements_software >}}
{{< note_server-tags >}}
#### Ports
The following diagram depicts the basic port requirements for Rancher. For a comprehensive list, see [Port Requirements]({{< baseurl >}}/rancher/v2.x/en/installation/references/).
![Basic Port Requirements]({{< baseurl >}}/img/rancher/port-communications.png)
Provision three Linux hosts according to our [Requirements]({{< baseurl >}}/rancher/v2.x/en/installation/requirements).
## 2. Configure Load Balancer
@@ -200,12 +181,14 @@ RKE uses a `.yml` config file to install and configure your Kubernetes cluster.
1. Download one of following templates, depending on the SSL certificate you're using.
- [Template for self-signed certificate<br/> `3-node-certificate.yml`](https://raw.githubusercontent.com/rancher/rancher/e9d29b3f3b9673421961c68adf0516807d1317eb/rke-templates/3-node-certificate.yml)
- [Template for certificate signed by recognized CA<br/> `3-node-certificate-recognizedca.yml`](https://raw.githubusercontent.com/rancher/rancher/d8ca0805a3958552e84fdf5d743859097ae81e0b/rke-templates/3-node-certificate-recognizedca.yml)
- [Template for self-signed certificate<br/> `3-node-certificate.yml`](https://raw.githubusercontent.com/rancher/rancher/master/rke-templates/3-node-certificate.yml)
- [Template for certificate signed by recognized CA<br/> `3-node-certificate-recognizedca.yml`](https://raw.githubusercontent.com/rancher/rancher/master/rke-templates/3-node-certificate-recognizedca.yml)
>**Advanced Config Options:**
>
>- Want records of all transactions with the Rancher API? Enable the [API Auditing]({{< baseurl >}}/rancher/v2.x/en/installation/api-auditing) feature by editing your RKE config file. For more information, see [RKE Documentation: API Auditing]({{< baseurl >}}/rke/v0.1.x/en/config-options/add-ons/api-auditing).
>- Want to know the other config options available for your RKE template? See the [RKE Documentation: Config Options]({{< baseurl >}}/rke/v0.1.x/en/config-options/).
>**Want records of all transactions with the Rancher API?**
>
>Enable the [API Auditing]({{< baseurl >}}/rancher/v2.x/en/installation/api-auditing/) feature by editing your RKE config file. For more information, see [RKE Documentation: API Auditing]({{< baseurl >}}/rke/v0.1.x/en/config-options/add-ons/api-auditing/).
2. Rename the file to `rancher-cluster.yml`.
@@ -215,33 +198,37 @@ Once you have the `rancher-cluster.yml` config file template, edit the nodes sec
1. Open `rancher-cluster.yml` in your favorite text editor.
2. Update the `nodes` section with the information of your [Linux hosts](#1-provision-linux-hosts).
1. Update the `nodes` section with the information of your [Linux hosts](#1-provision-linux-hosts).
For each node in your cluster, update the following placeholders: `IP_ADDRESS_X` and `USER`. The specified user should be able to access the Docket socket, you can test this by logging in with the specified user and run `docker ps`.
>**Note:**
> When using RHEL/CentOS, the SSH user can't be root due to https://bugzilla.redhat.com/show_bug.cgi?id=1527565. See [Operating System Requirements]({{< baseurl >}}/rke/v0.1.x/en/installation/os#redhat-enterprise-linux-rhel-centos) for RHEL/CentOS specific requirements.
> When using RHEL/CentOS, the SSH user can't be root due to https://bugzilla.redhat.com/show_bug.cgi?id=1527565. See [Operating System Requirements]({{< baseurl >}}/rke/v0.1.x/en/installation/os#redhat-enterprise-linux-rhel-centos) >for RHEL/CentOS specific requirements.
nodes:
# The IP address or hostname of the node
- address: IP_ADDRESS_1
# User that can login to the node and has access to the Docker socket (i.e. can execute `docker ps` on the node)
# When using RHEL/CentOS, this can't be root due to https://bugzilla.redhat.com/show_bug.cgi?id=1527565
user: USER
role: [controlplane,etcd,worker]
# Path the SSH key that can be used to access to node with the specified user
ssh_key_path: ~/.ssh/id_rsa
- address: IP_ADDRESS_2
user: USER
role: [controlplane,etcd,worker]
ssh_key_path: ~/.ssh/id_rsa
- address: IP_ADDRESS_3
user: USER
role: [controlplane,etcd,worker]
ssh_key_path: ~/.ssh/id_rsa
1. **Optional:** By default, `rancher-cluster.yml` is configured to take backup snapshots of your data. To disable these snapshots, change the `backup` directive setting to `false`, as depicted below.
services:
etcd:
backup: false
```
nodes:
# The IP address or hostname of the node
- address: IP_ADDRESS_1
# User that can login to the node and has access to the Docker socket (i.e. can execute `docker ps` on the node)
# When using RHEL/CentOS, this can't be root due to https://bugzilla.redhat.com/show_bug.cgi?id=1527565
user: USER
role: [controlplane,etcd,worker]
# Path the SSH key that can be used to access to node with the specified user
ssh_key_path: ~/.ssh/id_rsa
- address: IP_ADDRESS_2
user: USER
role: [controlplane,etcd,worker]
ssh_key_path: ~/.ssh/id_rsa
- address: IP_ADDRESS_3
user: USER
role: [controlplane,etcd,worker]
ssh_key_path: ~/.ssh/id_rsa
```
## 7. Configure Certificates
@@ -249,10 +236,7 @@ For security purposes, SSL (Secure Sockets Layer) is required when using Rancher
Choose from the following options:
- [Option A—Bring Your Own Certificate: Self-Signed](#option-a-bring-your-own-certificate-self-signed)
- [Option B—Bring Your Own Certificate: Signed by Recognized CA](#option-b-bring-your-own-certificate-signed-by-recognized-ca)
### Option A—Bring Your Own Certificate: Self-Signed
{{% accordion id="option-a" label="Option A—Bring Your Own Certificate: Self-Signed" %}}
>**Prerequisites:**
>Create a self-signed certificate.
@@ -269,20 +253,20 @@ Choose from the following options:
>**Note:**
> The base64 encoded string should be on the same line as `tls.crt` or `tls.key`, without any newline at the beginning, in between or at the end.
**Result:** After replacing the values, the file should look like the example below (the base64 encoded strings should be different):
**Step Result:** After replacing the values, the file should look like the example below (the base64 encoded strings should be different):
```yaml
---
apiVersion: v1
kind: Secret
metadata:
name: cattle-keys-ingress
namespace: cattle-system
type: Opaque
data:
tls.crt: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUM1RENDQWN5Z0F3SUJBZ0lKQUlHc25NeG1LeGxLTUEwR0NTcUdTSWIzRFFFQkN3VUFNQkl4RURBT0JnTlYKQkFNTUIzUmxjM1F0WTJFd0hoY05NVGd3TlRBMk1qRXdOREE1V2hjTk1UZ3dOekExTWpFd05EQTVXakFXTVJRdwpFZ1lEVlFRRERBdG9ZUzV5Ym1Ob2NpNXViRENDQVNJd0RRWUpLb1pJaHZjTkFRRUJCUUFEZ2dFUEFEQ0NBUW9DCmdnRUJBTFJlMXdzekZSb2Rib2pZV05DSHA3UkdJaUVIMENDZ1F2MmdMRXNkUUNKZlcrUFEvVjM0NnQ3bSs3TFEKZXJaV3ZZMWpuY2VuWU5JSGRBU0VnU0ducWExYnhUSU9FaE0zQXpib3B0WDhjSW1OSGZoQlZETGdiTEYzUk0xaQpPM1JLTGdIS2tYSTMxZndjbU9zWGUwaElYQnpUbmxnM20vUzlXL3NTc0l1dDVwNENDUWV3TWlpWFhuUElKb21lCmpkS3VjSHFnMTlzd0YvcGVUalZrcVpuMkJHazZRaWFpMU41bldRV0pjcThTenZxTTViZElDaWlwYU9hWWQ3RFEKYWRTejV5dlF0YkxQNW4wTXpnOU43S3pGcEpvUys5QWdkWDI5cmZqV2JSekp3RzM5R3dRemN6VWtLcnZEb05JaQo0UFJHc01yclFNVXFSYjRSajNQOEJodEMxWXNDQXdFQUFhTTVNRGN3Q1FZRFZSMFRCQUl3QURBTEJnTlZIUThFCkJBTUNCZUF3SFFZRFZSMGxCQll3RkFZSUt3WUJCUVVIQXdJR0NDc0dBUVVGQndNQk1BMEdDU3FHU0liM0RRRUIKQ3dVQUE0SUJBUUNKZm5PWlFLWkowTFliOGNWUW5Vdi9NZkRZVEJIQ0pZcGM4MmgzUGlXWElMQk1jWDhQRC93MgpoOUExNkE4NGNxODJuQXEvaFZYYy9JNG9yaFY5WW9jSEg5UlcvbGthTUQ2VEJVR0Q1U1k4S292MHpHQ1ROaDZ6Ci9wZTNqTC9uU0pYSjRtQm51czJheHFtWnIvM3hhaWpYZG9kMmd3eGVhTklvRjNLbHB2aGU3ZjRBNmpsQTM0MmkKVVlCZ09iN1F5KytRZWd4U1diSmdoSzg1MmUvUUhnU2FVSkN6NW1sNGc1WndnNnBTUXhySUhCNkcvREc4dElSYwprZDMxSk1qY25Fb1Rhc1Jyc1NwVmNGdXZyQXlXN2liakZyYzhienBNcE1obDVwYUZRcEZzMnIwaXpZekhwakFsCk5ZR2I2OHJHcjBwQkp3YU5DS2ErbCtLRTk4M3A3NDYwCi0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0K
tls.key: LS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVktLS0tLQpNSUlFb3dJQkFBS0NBUUVBdEY3WEN6TVZHaDF1aU5oWTBJZW50RVlpSVFmUUlLQkMvYUFzU3gxQUlsOWI0OUQ5ClhmanEzdWI3c3RCNnRsYTlqV09keDZkZzBnZDBCSVNCSWFlcHJWdkZNZzRTRXpjRE51aW0xZnh3aVkwZCtFRlUKTXVCc3NYZEV6V0k3ZEVvdUFjcVJjamZWL0J5WTZ4ZDdTRWhjSE5PZVdEZWI5TDFiK3hLd2k2M21uZ0lKQjdBeQpLSmRlYzhnbWlaNk4wcTV3ZXFEWDJ6QVgrbDVPTldTcG1mWUVhVHBDSnFMVTNtZFpCWWx5cnhMTytvemx0MGdLCktLbG81cGgzc05CcDFMUG5LOUMxc3MvbWZRek9EMDNzck1Xa21oTDcwQ0IxZmIydCtOWnRITW5BYmYwYkJETnoKTlNRcXU4T2cwaUxnOUVhd3l1dEF4U3BGdmhHUGMvd0dHMExWaXdJREFRQUJBb0lCQUJKYUErOHp4MVhjNEw0egpwUFd5bDdHVDRTMFRLbTNuWUdtRnZudjJBZXg5WDFBU2wzVFVPckZyTnZpK2xYMnYzYUZoSFZDUEN4N1RlMDVxClhPa2JzZnZkZG5iZFQ2RjgyMnJleVByRXNINk9TUnBWSzBmeDVaMDQwVnRFUDJCWm04eTYyNG1QZk1vbDdya2MKcm9Kd09rOEVpUHZZekpsZUd0bTAwUm1sRysyL2c0aWJsOTVmQXpyc1MvcGUyS3ZoN2NBVEtIcVh6MjlpUmZpbApiTGhBamQwcEVSMjNYU0hHR1ZqRmF3amNJK1c2L2RtbDZURDhrSzFGaUtldmJKTlREeVNXQnpPbXRTYUp1K01JCm9iUnVWWG4yZVNoamVGM1BYcHZRMWRhNXdBa0dJQWxOWjRHTG5QU2ZwVmJyU0plU3RrTGNzdEJheVlJS3BWZVgKSVVTTHM0RUNnWUVBMmNnZUE2WHh0TXdFNU5QWlNWdGhzbXRiYi9YYmtsSTdrWHlsdk5zZjFPdXRYVzkybVJneQpHcEhUQ0VubDB0Z1p3T081T1FLNjdFT3JUdDBRWStxMDJzZndwcmgwNFZEVGZhcW5QNTBxa3BmZEJLQWpmanEyCjFoZDZMd2hLeDRxSm9aelp2VkowV0lvR1ZLcjhJSjJOWGRTUVlUanZUZHhGczRTamdqNFFiaEVDZ1lFQTFBWUUKSEo3eVlza2EvS2V2OVVYbmVrSTRvMm5aYjJ1UVZXazRXSHlaY2NRN3VMQVhGY3lJcW5SZnoxczVzN3RMTzJCagozTFZNUVBzazFNY25oTTl4WE4vQ3ZDTys5b2t0RnNaMGJqWFh6NEJ5V2lFNHJPS1lhVEFwcDVsWlpUT3ZVMWNyCm05R3NwMWJoVDVZb2RaZ3IwUHQyYzR4U2krUVlEWnNFb2lFdzNkc0NnWUVBcVJLYWNweWZKSXlMZEJjZ0JycGkKQTRFalVLMWZsSjR3enNjbGFKUDVoM1NjZUFCejQzRU1YT0kvSXAwMFJsY3N6em83N3cyMmpud09mOEJSM0RBMwp6ZTRSWDIydWw4b0hGdldvdUZOTTNOZjNaNExuYXpVc0F0UGhNS2hRWGMrcEFBWGthUDJkZzZ0TU5PazFxaUNHCndvU212a1BVVE84b1ViRTB1NFZ4ZmZFQ2dZQUpPdDNROVNadUlIMFpSSitIV095enlOQTRaUEkvUkhwN0RXS1QKajVFS2Y5VnR1OVMxY1RyOTJLVVhITXlOUTNrSjg2OUZPMnMvWk85OGg5THptQ2hDTjhkOWN6enI5SnJPNUFMTApqWEtBcVFIUlpLTFgrK0ZRcXZVVlE3cTlpaHQyMEZPb3E5OE5SZDMzSGYxUzZUWDNHZ3RWQ21YSml6dDAxQ3ZHCmR4VnVnd0tCZ0M2Mlp0b0RLb3JyT2hvdTBPelprK2YwQS9rNDJBOENiL29VMGpwSzZtdmxEWmNYdUF1QVZTVXIKNXJCZjRVYmdVYndqa1ZWSFR6LzdDb1BWSjUvVUxJWk1Db1RUNFprNTZXWDk4ZE93Q3VTVFpZYnlBbDZNS1BBZApTZEpuVVIraEpnSVFDVGJ4K1dzYnh2d0FkbWErWUhtaVlPRzZhSklXMXdSd1VGOURLUEhHCi0tLS0tRU5EIFJTQSBQUklWQVRFIEtFWS0tLS0tCg==
```
```yaml
---
apiVersion: v1
kind: Secret
metadata:
name: cattle-keys-ingress
namespace: cattle-system
type: Opaque
data:
tls.crt: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUM1RENDQWN5Z0F3SUJBZ0lKQUlHc25NeG1LeGxLTUEwR0NTcUdTSWIzRFFFQkN3VUFNQkl4RURBT0JnTlYKQkFNTUIzUmxjM1F0WTJFd0hoY05NVGd3TlRBMk1qRXdOREE1V2hjTk1UZ3dOekExTWpFd05EQTVXakFXTVJRdwpFZ1lEVlFRRERBdG9ZUzV5Ym1Ob2NpNXViRENDQVNJd0RRWUpLb1pJaHZjTkFRRUJCUUFEZ2dFUEFEQ0NBUW9DCmdnRUJBTFJlMXdzekZSb2Rib2pZV05DSHA3UkdJaUVIMENDZ1F2MmdMRXNkUUNKZlcrUFEvVjM0NnQ3bSs3TFEKZXJaV3ZZMWpuY2VuWU5JSGRBU0VnU0ducWExYnhUSU9FaE0zQXpib3B0WDhjSW1OSGZoQlZETGdiTEYzUk0xaQpPM1JLTGdIS2tYSTMxZndjbU9zWGUwaElYQnpUbmxnM20vUzlXL3NTc0l1dDVwNENDUWV3TWlpWFhuUElKb21lCmpkS3VjSHFnMTlzd0YvcGVUalZrcVpuMkJHazZRaWFpMU41bldRV0pjcThTenZxTTViZElDaWlwYU9hWWQ3RFEKYWRTejV5dlF0YkxQNW4wTXpnOU43S3pGcEpvUys5QWdkWDI5cmZqV2JSekp3RzM5R3dRemN6VWtLcnZEb05JaQo0UFJHc01yclFNVXFSYjRSajNQOEJodEMxWXNDQXdFQUFhTTVNRGN3Q1FZRFZSMFRCQUl3QURBTEJnTlZIUThFCkJBTUNCZUF3SFFZRFZSMGxCQll3RkFZSUt3WUJCUVVIQXdJR0NDc0dBUVVGQndNQk1BMEdDU3FHU0liM0RRRUIKQ3dVQUE0SUJBUUNKZm5PWlFLWkowTFliOGNWUW5Vdi9NZkRZVEJIQ0pZcGM4MmgzUGlXWElMQk1jWDhQRC93MgpoOUExNkE4NGNxODJuQXEvaFZYYy9JNG9yaFY5WW9jSEg5UlcvbGthTUQ2VEJVR0Q1U1k4S292MHpHQ1ROaDZ6Ci9wZTNqTC9uU0pYSjRtQm51czJheHFtWnIvM3hhaWpYZG9kMmd3eGVhTklvRjNLbHB2aGU3ZjRBNmpsQTM0MmkKVVlCZ09iN1F5KytRZWd4U1diSmdoSzg1MmUvUUhnU2FVSkN6NW1sNGc1WndnNnBTUXhySUhCNkcvREc4dElSYwprZDMxSk1qY25Fb1Rhc1Jyc1NwVmNGdXZyQXlXN2liakZyYzhienBNcE1obDVwYUZRcEZzMnIwaXpZekhwakFsCk5ZR2I2OHJHcjBwQkp3YU5DS2ErbCtLRTk4M3A3NDYwCi0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0K
tls.key: LS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVktLS0tLQpNSUlFb3dJQkFBS0NBUUVBdEY3WEN6TVZHaDF1aU5oWTBJZW50RVlpSVFmUUlLQkMvYUFzU3gxQUlsOWI0OUQ5ClhmanEzdWI3c3RCNnRsYTlqV09keDZkZzBnZDBCSVNCSWFlcHJWdkZNZzRTRXpjRE51aW0xZnh3aVkwZCtFRlUKTXVCc3NYZEV6V0k3ZEVvdUFjcVJjamZWL0J5WTZ4ZDdTRWhjSE5PZVdEZWI5TDFiK3hLd2k2M21uZ0lKQjdBeQpLSmRlYzhnbWlaNk4wcTV3ZXFEWDJ6QVgrbDVPTldTcG1mWUVhVHBDSnFMVTNtZFpCWWx5cnhMTytvemx0MGdLCktLbG81cGgzc05CcDFMUG5LOUMxc3MvbWZRek9EMDNzck1Xa21oTDcwQ0IxZmIydCtOWnRITW5BYmYwYkJETnoKTlNRcXU4T2cwaUxnOUVhd3l1dEF4U3BGdmhHUGMvd0dHMExWaXdJREFRQUJBb0lCQUJKYUErOHp4MVhjNEw0egpwUFd5bDdHVDRTMFRLbTNuWUdtRnZudjJBZXg5WDFBU2wzVFVPckZyTnZpK2xYMnYzYUZoSFZDUEN4N1RlMDVxClhPa2JzZnZkZG5iZFQ2RjgyMnJleVByRXNINk9TUnBWSzBmeDVaMDQwVnRFUDJCWm04eTYyNG1QZk1vbDdya2MKcm9Kd09rOEVpUHZZekpsZUd0bTAwUm1sRysyL2c0aWJsOTVmQXpyc1MvcGUyS3ZoN2NBVEtIcVh6MjlpUmZpbApiTGhBamQwcEVSMjNYU0hHR1ZqRmF3amNJK1c2L2RtbDZURDhrSzFGaUtldmJKTlREeVNXQnpPbXRTYUp1K01JCm9iUnVWWG4yZVNoamVGM1BYcHZRMWRhNXdBa0dJQWxOWjRHTG5QU2ZwVmJyU0plU3RrTGNzdEJheVlJS3BWZVgKSVVTTHM0RUNnWUVBMmNnZUE2WHh0TXdFNU5QWlNWdGhzbXRiYi9YYmtsSTdrWHlsdk5zZjFPdXRYVzkybVJneQpHcEhUQ0VubDB0Z1p3T081T1FLNjdFT3JUdDBRWStxMDJzZndwcmgwNFZEVGZhcW5QNTBxa3BmZEJLQWpmanEyCjFoZDZMd2hLeDRxSm9aelp2VkowV0lvR1ZLcjhJSjJOWGRTUVlUanZUZHhGczRTamdqNFFiaEVDZ1lFQTFBWUUKSEo3eVlza2EvS2V2OVVYbmVrSTRvMm5aYjJ1UVZXazRXSHlaY2NRN3VMQVhGY3lJcW5SZnoxczVzN3RMTzJCagozTFZNUVBzazFNY25oTTl4WE4vQ3ZDTys5b2t0RnNaMGJqWFh6NEJ5V2lFNHJPS1lhVEFwcDVsWlpUT3ZVMWNyCm05R3NwMWJoVDVZb2RaZ3IwUHQyYzR4U2krUVlEWnNFb2lFdzNkc0NnWUVBcVJLYWNweWZKSXlMZEJjZ0JycGkKQTRFalVLMWZsSjR3enNjbGFKUDVoM1NjZUFCejQzRU1YT0kvSXAwMFJsY3N6em83N3cyMmpud09mOEJSM0RBMwp6ZTRSWDIydWw4b0hGdldvdUZOTTNOZjNaNExuYXpVc0F0UGhNS2hRWGMrcEFBWGthUDJkZzZ0TU5PazFxaUNHCndvU212a1BVVE84b1ViRTB1NFZ4ZmZFQ2dZQUpPdDNROVNadUlIMFpSSitIV095enlOQTRaUEkvUkhwN0RXS1QKajVFS2Y5VnR1OVMxY1RyOTJLVVhITXlOUTNrSjg2OUZPMnMvWk85OGg5THptQ2hDTjhkOWN6enI5SnJPNUFMTApqWEtBcVFIUlpLTFgrK0ZRcXZVVlE3cTlpaHQyMEZPb3E5OE5SZDMzSGYxUzZUWDNHZ3RWQ21YSml6dDAxQ3ZHCmR4VnVnd0tCZ0M2Mlp0b0RLb3JyT2hvdTBPelprK2YwQS9rNDJBOENiL29VMGpwSzZtdmxEWmNYdUF1QVZTVXIKNXJCZjRVYmdVYndqa1ZWSFR6LzdDb1BWSjUvVUxJWk1Db1RUNFprNTZXWDk4ZE93Q3VTVFpZYnlBbDZNS1BBZApTZEpuVVIraEpnSVFDVGJ4K1dzYnh2d0FkbWErWUhtaVlPRzZhSklXMXdSd1VGOURLUEhHCi0tLS0tRU5EIFJTQSBQUklWQVRFIEtFWS0tLS0tCg==
```
2. In `kind: Secret` with `name: cattle-keys-server`, replace `<BASE64_CA>` with the base64 encoded string of the CA Certificate file (usually called `ca.pem` or `ca.crt`).
@@ -290,7 +274,8 @@ Choose from the following options:
> The base64 encoded string should be on the same line as `cacerts.pem`, without any newline at the beginning, in between or at the end.
**Result:** The file should look like the example below (the base64 encoded string should be different):
**Step Result:** The file should look like the example below (the base64 encoded string should be different):
```yaml
---
apiVersion: v1
@@ -301,10 +286,11 @@ Choose from the following options:
type: Opaque
data:
cacerts.pem: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUNvRENDQVlnQ0NRRHVVWjZuMEZWeU16QU5CZ2txaGtpRzl3MEJBUXNGQURBU01SQXdEZ1lEVlFRRERBZDAKWlhOMExXTmhNQjRYRFRFNE1EVXdOakl4TURRd09Wb1hEVEU0TURjd05USXhNRFF3T1Zvd0VqRVFNQTRHQTFVRQpBd3dIZEdWemRDMWpZVENDQVNJd0RRWUpLb1pJaHZjTkFRRUJCUUFEZ2dFUEFEQ0NBUW9DZ2dFQkFNQmpBS3dQCndhRUhwQTdaRW1iWWczaTNYNlppVmtGZFJGckJlTmFYTHFPL2R0RUdmWktqYUF0Wm45R1VsckQxZUlUS3UzVHgKOWlGVlV4Mmo1Z0tyWmpwWitCUnFiZ1BNbk5hS1hocmRTdDRtUUN0VFFZdGRYMVFZS0pUbWF5NU45N3FoNTZtWQprMllKRkpOWVhHWlJabkdMUXJQNk04VHZramF0ZnZOdmJ0WmtkY2orYlY3aWhXanp2d2theHRUVjZlUGxuM2p5CnJUeXBBTDliYnlVcHlad3E2MWQvb0Q4VUtwZ2lZM1dOWmN1YnNvSjhxWlRsTnN6UjVadEFJV0tjSE5ZbE93d2oKaG41RE1tSFpwZ0ZGNW14TU52akxPRUc0S0ZRU3laYlV2QzlZRUhLZTUxbGVxa1lmQmtBZWpPY002TnlWQUh1dApuay9DMHpXcGdENkIwbkVDQXdFQUFUQU5CZ2txaGtpRzl3MEJBUXNGQUFPQ0FRRUFHTCtaNkRzK2R4WTZsU2VBClZHSkMvdzE1bHJ2ZXdia1YxN3hvcmlyNEMxVURJSXB6YXdCdFJRSGdSWXVtblVqOGo4T0hFWUFDUEthR3BTVUsKRDVuVWdzV0pMUUV0TDA2eTh6M3A0MDBrSlZFZW9xZlVnYjQrK1JLRVJrWmowWXR3NEN0WHhwOVMzVkd4NmNOQQozZVlqRnRQd2hoYWVEQmdma1hXQWtISXFDcEsrN3RYem9pRGpXbi8walI2VDcrSGlaNEZjZ1AzYnd3K3NjUDIyCjlDQVZ1ZFg4TWpEQ1hTcll0Y0ZINllBanlCSTJjbDhoSkJqa2E3aERpVC9DaFlEZlFFVFZDM3crQjBDYjF1NWcKdE03Z2NGcUw4OVdhMnp5UzdNdXk5bEthUDBvTXl1Ty82Tm1wNjNsVnRHeEZKSFh4WTN6M0lycGxlbTNZQThpTwpmbmlYZXc9PQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCg==
```
```
### Option B—Bring Your Own Certificate: Signed by Recognized CA
{{% /accordion %}}
{{% accordion id="option-b" label="Option B—Bring Your Own Certificate: Signed by Recognized CA" %}}
>**Note:**
> If you are using Self Signed Certificate, [click here](#option-a-bring-your-own-certificate-self-signed) to proceed.
@@ -332,6 +318,10 @@ data:
tls.crt: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUM1RENDQWN5Z0F3SUJBZ0lKQUlHc25NeG1LeGxLTUEwR0NTcUdTSWIzRFFFQkN3VUFNQkl4RURBT0JnTlYKQkFNTUIzUmxjM1F0WTJFd0hoY05NVGd3TlRBMk1qRXdOREE1V2hjTk1UZ3dOekExTWpFd05EQTVXakFXTVJRdwpFZ1lEVlFRRERBdG9ZUzV5Ym1Ob2NpNXViRENDQVNJd0RRWUpLb1pJaHZjTkFRRUJCUUFEZ2dFUEFEQ0NBUW9DCmdnRUJBTFJlMXdzekZSb2Rib2pZV05DSHA3UkdJaUVIMENDZ1F2MmdMRXNkUUNKZlcrUFEvVjM0NnQ3bSs3TFEKZXJaV3ZZMWpuY2VuWU5JSGRBU0VnU0ducWExYnhUSU9FaE0zQXpib3B0WDhjSW1OSGZoQlZETGdiTEYzUk0xaQpPM1JLTGdIS2tYSTMxZndjbU9zWGUwaElYQnpUbmxnM20vUzlXL3NTc0l1dDVwNENDUWV3TWlpWFhuUElKb21lCmpkS3VjSHFnMTlzd0YvcGVUalZrcVpuMkJHazZRaWFpMU41bldRV0pjcThTenZxTTViZElDaWlwYU9hWWQ3RFEKYWRTejV5dlF0YkxQNW4wTXpnOU43S3pGcEpvUys5QWdkWDI5cmZqV2JSekp3RzM5R3dRemN6VWtLcnZEb05JaQo0UFJHc01yclFNVXFSYjRSajNQOEJodEMxWXNDQXdFQUFhTTVNRGN3Q1FZRFZSMFRCQUl3QURBTEJnTlZIUThFCkJBTUNCZUF3SFFZRFZSMGxCQll3RkFZSUt3WUJCUVVIQXdJR0NDc0dBUVVGQndNQk1BMEdDU3FHU0liM0RRRUIKQ3dVQUE0SUJBUUNKZm5PWlFLWkowTFliOGNWUW5Vdi9NZkRZVEJIQ0pZcGM4MmgzUGlXWElMQk1jWDhQRC93MgpoOUExNkE4NGNxODJuQXEvaFZYYy9JNG9yaFY5WW9jSEg5UlcvbGthTUQ2VEJVR0Q1U1k4S292MHpHQ1ROaDZ6Ci9wZTNqTC9uU0pYSjRtQm51czJheHFtWnIvM3hhaWpYZG9kMmd3eGVhTklvRjNLbHB2aGU3ZjRBNmpsQTM0MmkKVVlCZ09iN1F5KytRZWd4U1diSmdoSzg1MmUvUUhnU2FVSkN6NW1sNGc1WndnNnBTUXhySUhCNkcvREc4dElSYwprZDMxSk1qY25Fb1Rhc1Jyc1NwVmNGdXZyQXlXN2liakZyYzhienBNcE1obDVwYUZRcEZzMnIwaXpZekhwakFsCk5ZR2I2OHJHcjBwQkp3YU5DS2ErbCtLRTk4M3A3NDYwCi0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0K
tls.key: LS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVktLS0tLQpNSUlFb3dJQkFBS0NBUUVBdEY3WEN6TVZHaDF1aU5oWTBJZW50RVlpSVFmUUlLQkMvYUFzU3gxQUlsOWI0OUQ5ClhmanEzdWI3c3RCNnRsYTlqV09keDZkZzBnZDBCSVNCSWFlcHJWdkZNZzRTRXpjRE51aW0xZnh3aVkwZCtFRlUKTXVCc3NYZEV6V0k3ZEVvdUFjcVJjamZWL0J5WTZ4ZDdTRWhjSE5PZVdEZWI5TDFiK3hLd2k2M21uZ0lKQjdBeQpLSmRlYzhnbWlaNk4wcTV3ZXFEWDJ6QVgrbDVPTldTcG1mWUVhVHBDSnFMVTNtZFpCWWx5cnhMTytvemx0MGdLCktLbG81cGgzc05CcDFMUG5LOUMxc3MvbWZRek9EMDNzck1Xa21oTDcwQ0IxZmIydCtOWnRITW5BYmYwYkJETnoKTlNRcXU4T2cwaUxnOUVhd3l1dEF4U3BGdmhHUGMvd0dHMExWaXdJREFRQUJBb0lCQUJKYUErOHp4MVhjNEw0egpwUFd5bDdHVDRTMFRLbTNuWUdtRnZudjJBZXg5WDFBU2wzVFVPckZyTnZpK2xYMnYzYUZoSFZDUEN4N1RlMDVxClhPa2JzZnZkZG5iZFQ2RjgyMnJleVByRXNINk9TUnBWSzBmeDVaMDQwVnRFUDJCWm04eTYyNG1QZk1vbDdya2MKcm9Kd09rOEVpUHZZekpsZUd0bTAwUm1sRysyL2c0aWJsOTVmQXpyc1MvcGUyS3ZoN2NBVEtIcVh6MjlpUmZpbApiTGhBamQwcEVSMjNYU0hHR1ZqRmF3amNJK1c2L2RtbDZURDhrSzFGaUtldmJKTlREeVNXQnpPbXRTYUp1K01JCm9iUnVWWG4yZVNoamVGM1BYcHZRMWRhNXdBa0dJQWxOWjRHTG5QU2ZwVmJyU0plU3RrTGNzdEJheVlJS3BWZVgKSVVTTHM0RUNnWUVBMmNnZUE2WHh0TXdFNU5QWlNWdGhzbXRiYi9YYmtsSTdrWHlsdk5zZjFPdXRYVzkybVJneQpHcEhUQ0VubDB0Z1p3T081T1FLNjdFT3JUdDBRWStxMDJzZndwcmgwNFZEVGZhcW5QNTBxa3BmZEJLQWpmanEyCjFoZDZMd2hLeDRxSm9aelp2VkowV0lvR1ZLcjhJSjJOWGRTUVlUanZUZHhGczRTamdqNFFiaEVDZ1lFQTFBWUUKSEo3eVlza2EvS2V2OVVYbmVrSTRvMm5aYjJ1UVZXazRXSHlaY2NRN3VMQVhGY3lJcW5SZnoxczVzN3RMTzJCagozTFZNUVBzazFNY25oTTl4WE4vQ3ZDTys5b2t0RnNaMGJqWFh6NEJ5V2lFNHJPS1lhVEFwcDVsWlpUT3ZVMWNyCm05R3NwMWJoVDVZb2RaZ3IwUHQyYzR4U2krUVlEWnNFb2lFdzNkc0NnWUVBcVJLYWNweWZKSXlMZEJjZ0JycGkKQTRFalVLMWZsSjR3enNjbGFKUDVoM1NjZUFCejQzRU1YT0kvSXAwMFJsY3N6em83N3cyMmpud09mOEJSM0RBMwp6ZTRSWDIydWw4b0hGdldvdUZOTTNOZjNaNExuYXpVc0F0UGhNS2hRWGMrcEFBWGthUDJkZzZ0TU5PazFxaUNHCndvU212a1BVVE84b1ViRTB1NFZ4ZmZFQ2dZQUpPdDNROVNadUlIMFpSSitIV095enlOQTRaUEkvUkhwN0RXS1QKajVFS2Y5VnR1OVMxY1RyOTJLVVhITXlOUTNrSjg2OUZPMnMvWk85OGg5THptQ2hDTjhkOWN6enI5SnJPNUFMTApqWEtBcVFIUlpLTFgrK0ZRcXZVVlE3cTlpaHQyMEZPb3E5OE5SZDMzSGYxUzZUWDNHZ3RWQ21YSml6dDAxQ3ZHCmR4VnVnd0tCZ0M2Mlp0b0RLb3JyT2hvdTBPelprK2YwQS9rNDJBOENiL29VMGpwSzZtdmxEWmNYdUF1QVZTVXIKNXJCZjRVYmdVYndqa1ZWSFR6LzdDb1BWSjUvVUxJWk1Db1RUNFprNTZXWDk4ZE93Q3VTVFpZYnlBbDZNS1BBZApTZEpuVVIraEpnSVFDVGJ4K1dzYnh2d0FkbWErWUhtaVlPRzZhSklXMXdSd1VGOURLUEhHCi0tLS0tRU5EIFJTQSBQUklWQVRFIEtFWS0tLS0tCg==
```
{{% /accordion %}}
## 8. Configure FQDN
@@ -4,91 +4,40 @@ weight: 276
aliases:
- /rancher/v2.x/en/installation/ha-server-install-external-lb/
---
This set of instructions creates a new Kubernetes cluster that's dedicated to running Rancher in a high-availability (HA) configuration. This procedure walks you through setting up a 3-node cluster using the Rancher Kubernetes Engine (RKE). The cluster's sole purpose is running pods for Rancher. The setup is based on:
This procedure walks you through setting up a 3-node cluster using the Rancher Kubernetes Engine (RKE). The cluster's sole purpose is running pods for Rancher. The setup is based on:
- Layer 7 Loadbalancer with SSL termination (HTTPS)
- [NGINX Ingress controller (HTTP)](https://kubernetes.github.io/ingress-nginx/)
In a HA setup that uses a layer 7 load balancer, the load balancer accepts Rancher client connections over the HTTP protocol (i.e., the application level). This application-level access allows the load balancer to read client requests and then redirect to them to cluster nodes using logic that optimally distributes load.
<sup>HA Rancher install with layer 7 load balancer, depicting SSL termination at load balancer</sup>
![Rancher HA]({{< baseurl >}}/img/rancher/ha/rancher2ha-l7.svg)
## Installation Outline
Installation of Rancher in a high-availability configuration involves multiple procedures. Review this outline to learn about each procedure you need to complete.
1. [Provision Linux Hosts](#1-provision-linux-hosts)
<!-- TOC -->
Provision three Linux hosts to serve as your Kubernetes cluster.
- [1. Provision Linux Hosts](#1-provision-linux-hosts)
- [2. Configure Load Balancer](#2-configure-load-balancer)
- [3. Configure DNS](#3-configure-dns)
- [4. Download RKE](#4-download-rke)
- [5. Download RKE Config File Template](#5-download-rke-config-file-template)
- [6. Configure Nodes](#6-configure-nodes)
- [7. Configure Certificates](#7-configure-certificates)
- [8. Configure FQDN](#8-configure-fqdn)
- [9. Configure Rancher version](#9-configure-rancher-version)
- [10. Back Up Your RKE Config File](#10-back-up-your-rke-config-file)
- [11. Run RKE](#11-run-rke)
- [12. Back Up Auto-Generated Config File](#12-back-up-auto-generated-config-file)
2. [Configure Load Balancer](#2-configure-load-balancer)
Configure your load balancer to have a highly available single point of entry to your Rancher cluster.
3. [Configure DNS](#3-configure-dns)
Make your setup accessible using a DNS name by configuring the DNS to point to your loadbalancer.
4. [Download RKE](#4-download-rke)
[RKE](https://github.com/rancher/rke/releases) is a fast, versatile Kubernetes installer that you can use to install Kubernetes on your Linux hosts.
5. [Download RKE Config File Template](#5-download-rke-config-file-template)
RKE uses a YAML config file to install and configure your Kubernetes cluster. Download one of our RKE config file templates to get started.
6. [Configure Nodes](#6-configure-nodes)
Configure the **Nodes** section of the RKE config template.
7. [Configure Certificates](#7-configure-certificates)
Configure the **Certificates** part of the template too.
8. [Configure FQDN](#8-configure-fqdn)
And the **FQDN** part.
9. [Configure Rancher version](#9-configure-rancher-version)
Configure the **Rancher version** to use.
10. [Back Up Your RKE Config File](#10-back-up-your-rke-config-file)
After you've completed configuration of the RKE config file: 1. it's no longer a template since you'll be using it, and 2. you should back up the RKE config file to a safe place. You will reuse this file for upgrades later.
11. [Run RKE](#11-run-rke)
Run RKE to deploy Rancher to your cluster.
12. [Back Up Auto-Generated Config File](#12-back-up-auto-generated-config-file)
During installation, RKE generates a config file that you'll use later for upgrades. Back it up to a safe location.
<br/>
<!-- /TOC -->
## 1. Provision Linux Hosts
Before you install Rancher, confirm you meet the host requirements. Provision 3 new Linux hosts using the requirements below.
### Requirements
#### Operating System
{{< requirements_os >}}
#### Hardware
{{< requirements_hardware >}}
#### Software
{{< requirements_software >}}
{{< note_server-tags >}}
#### Ports
The following diagram depicts the basic port requirements for Rancher. For a comprehensive list, see [Port Requirements]({{< baseurl >}}/rancher/v2.x/en/installation/references/).
![Basic Port Requirements]({{< baseurl >}}/img/rancher/port-communications.png)
Provision three Linux hosts according to our [Requirements]({{< baseurl >}}/rancher/v2.x/en/installation/requirements).
## 2. Configure Load Balancer
@@ -180,12 +129,13 @@ RKE uses a YAML config file to install and configure your Kubernetes cluster. Th
1. Download one of following templates, depending on the SSL certificate you're using.
- [Template for self-signed certificate<br/> `3-node-externalssl-certificate.yml`](https://raw.githubusercontent.com/rancher/rancher/58e695b51096b1f404188379cea6f6a35aea9e4c/rke-templates/3-node-externalssl-certificate.yml)
- [Template for certificate signed by recognized CA<br/> `3-node-externalssl-recognizedca.yml`](https://raw.githubusercontent.com/rancher/rancher/7f60dc3afe1b45287ac36ba6bde6f7c6e35c11fe/rke-templates/3-node-externalssl-recognizedca.yml)
- [Template for self-signed certificate<br/> `3-node-externalssl-certificate.yml`](https://raw.githubusercontent.com/rancher/rancher/master/rke-templates/3-node-externalssl-certificate.yml)
- [Template for certificate signed by recognized CA<br/> `3-node-externalssl-recognizedca.yml`](https://raw.githubusercontent.com/rancher/rancher/master/rke-templates/3-node-externalssl-recognizedca.yml)
>**Want records of all transactions with the Rancher API?**
>**Advanced Config Options:**
>
>Enable the [API Auditing]({{< baseurl >}}/rancher/v2.x/en/installation/api-auditing) feature by editing your RKE config file. For more information, see [RKE Documentation: API Auditing]({{< baseurl >}}\rke\v0.1.x\en\config-options\add-ons\api-auditing).
>- Want records of all transactions with the Rancher API? Enable the [API Auditing]({{< baseurl >}}/rancher/v2.x/en/installation/api-auditing) feature by editing your RKE config file. For more information, see [RKE Documentation: API Auditing]({{< baseurl >}}/rke/v0.1.x/en/config-options/add-ons/api-auditing).
>- Want to know the other config options available for your RKE template? See the [RKE Documentation: Config Options]({{< baseurl >}}/rke/v0.1.x/en/config-options/).
2. Rename the file to `rancher-cluster.yml`.
@@ -196,33 +146,37 @@ Once you have the `rancher-cluster.yml` config file template, edit the nodes sec
1. Open `rancher-cluster.yml` in your favorite text editor.
2. Update the `nodes` section with the information of your [Linux hosts](#1-provision-linux-hosts).
1. Update the `nodes` section with the information of your [Linux hosts](#1-provision-linux-hosts).
For each node in your cluster, update the following placeholders: `IP_ADDRESS_X` and `USER`. The specified user should be able to access the Docket socket, you can test this by logging in with the specified user and run `docker ps`.
>**Note:**
> When using RHEL/CentOS, the SSH user can't be root due to https://bugzilla.redhat.com/show_bug.cgi?id=1527565. See [Operating System Requirements]({{< baseurl >}}/rke/v0.1.x/en/installation/os#redhat-enterprise-linux-rhel-centos) for RHEL/CentOS specific requirements.
>
>When using RHEL/CentOS, the SSH user can't be root due to https://bugzilla.redhat.com/show_bug.cgi?id=1527565. See [Operating System Requirements]({{< baseurl >}}/rke/v0.1.x/en/installation/os#redhat-enterprise-linux-rhel-centos) for RHEL/CentOS specific requirements.
nodes:
# The IP address or hostname of the node
- address: IP_ADDRESS_1
# User that can login to the node and has access to the Docker socket (i.e. can execute `docker ps` on the node)
# When using RHEL/CentOS, this can't be root due to https://bugzilla.redhat.com/show_bug.cgi?id=1527565
user: USER
role: [controlplane,etcd,worker]
# Path the SSH key that can be used to access to node with the specified user
ssh_key_path: ~/.ssh/id_rsa
- address: IP_ADDRESS_2
user: USER
role: [controlplane,etcd,worker]
ssh_key_path: ~/.ssh/id_rsa
- address: IP_ADDRESS_3
user: USER
role: [controlplane,etcd,worker]
ssh_key_path: ~/.ssh/id_rsa
```
nodes:
# The IP address or hostname of the node
- address: IP_ADDRESS_1
# User that can login to the node and has access to the Docker socket (i.e. can execute `docker ps` on the node)
# When using RHEL/CentOS, this can't be root due to https://bugzilla.redhat.com/show_bug.cgi?id=1527565
user: USER
role: [controlplane,etcd,worker]
# Path the SSH key that can be used to access to node with the specified user
ssh_key_path: ~/.ssh/id_rsa
- address: IP_ADDRESS_2
user: USER
role: [controlplane,etcd,worker]
ssh_key_path: ~/.ssh/id_rsa
- address: IP_ADDRESS_3
user: USER
role: [controlplane,etcd,worker]
ssh_key_path: ~/.ssh/id_rsa
```
1. **Optional:** By default, `rancher-cluster.yml` is configured to take backup snapshots of your data. To disable these snapshots, change the `backup` directive setting to `false`, as depicted below.
services:
etcd:
backup: false
## 7. Configure Certificates
@@ -230,11 +184,7 @@ For security purposes, SSL (Secure Sockets Layer) is required when using Rancher
Choose from the following options:
- [Option A—Bring Your Own Certificate: Self-Signed](#option-a-bring-your-own-certificate-self-signed)
- [Option B—Bring Your Own Certificate: Signed by Recognized CA](#option-b-bring-your-own-certificate-signed-by-recognized-ca)
### Option A—Bring Your Own Certificate: Self-Signed
{{% accordion id="option-a" label="Option A—Bring Your Own Certificate: Self-Signed" %}}
>**Prerequisites:**
>Create a self-signed certificate.
>
@@ -242,30 +192,26 @@ Choose from the following options:
>- The certificate files must be encoded in [base64](#base64).
>- In your certificate file, include all intermediate certificates in the chain. Order your certificates with your certificate first, followed by the intermediates. For an example, see [SSL FAQ / Troubleshooting](#cert-order).
1. In `kind: Secret` with `name: cattle-keys-ingress`:
In `kind: Secret` with `name: cattle-keys-ingress`, replace `<BASE64_CA>` with the base64 encoded string of the CA Certificate file (usually called `ca.pem` or `ca.crt`)
* Replace `<BASE64_CA>` with the base64 encoded string of the CA Certificate file (usually called `ca.pem` or `ca.crt`)
>**Note:** The base64 encoded string should be on the same line as `cacerts.pem`, without any newline at the beginning, in between or at the end.
>**Note:**
> The base64 encoded string should be on the same line as `cacerts.pem`, without any newline at the beginning, in between or at the end.
After replacing the values, the file should look like the example below (the base64 encoded strings should be different):
**Result:** After replacing the values, the file should look like the example below (the base64 encoded strings should be different):
---
apiVersion: v1
kind: Secret
metadata:
name: cattle-keys-server
namespace: cattle-system
type: Opaque
data:
cacerts.pem: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUNvRENDQVlnQ0NRRHVVWjZuMEZWeU16QU5CZ2txaGtpRzl3MEJBUXNGQURBU01SQXdEZ1lEVlFRRERBZDAKWlhOMExXTmhNQjRYRFRFNE1EVXdOakl4TURRd09Wb1hEVEU0TURjd05USXhNRFF3T1Zvd0VqRVFNQTRHQTFVRQpBd3dIZEdWemRDMWpZVENDQVNJd0RRWUpLb1pJaHZjTkFRRUJCUUFEZ2dFUEFEQ0NBUW9DZ2dFQkFNQmpBS3dQCndhRUhwQTdaRW1iWWczaTNYNlppVmtGZFJGckJlTmFYTHFPL2R0RUdmWktqYUF0Wm45R1VsckQxZUlUS3UzVHgKOWlGVlV4Mmo1Z0tyWmpwWitCUnFiZ1BNbk5hS1hocmRTdDRtUUN0VFFZdGRYMVFZS0pUbWF5NU45N3FoNTZtWQprMllKRkpOWVhHWlJabkdMUXJQNk04VHZramF0ZnZOdmJ0WmtkY2orYlY3aWhXanp2d2theHRUVjZlUGxuM2p5CnJUeXBBTDliYnlVcHlad3E2MWQvb0Q4VUtwZ2lZM1dOWmN1YnNvSjhxWlRsTnN6UjVadEFJV0tjSE5ZbE93d2oKaG41RE1tSFpwZ0ZGNW14TU52akxPRUc0S0ZRU3laYlV2QzlZRUhLZTUxbGVxa1lmQmtBZWpPY002TnlWQUh1dApuay9DMHpXcGdENkIwbkVDQXdFQUFUQU5CZ2txaGtpRzl3MEJBUXNGQUFPQ0FRRUFHTCtaNkRzK2R4WTZsU2VBClZHSkMvdzE1bHJ2ZXdia1YxN3hvcmlyNEMxVURJSXB6YXdCdFJRSGdSWXVtblVqOGo4T0hFWUFDUEthR3BTVUsKRDVuVWdzV0pMUUV0TDA2eTh6M3A0MDBrSlZFZW9xZlVnYjQrK1JLRVJrWmowWXR3NEN0WHhwOVMzVkd4NmNOQQozZVlqRnRQd2hoYWVEQmdma1hXQWtISXFDcEsrN3RYem9pRGpXbi8walI2VDcrSGlaNEZjZ1AzYnd3K3NjUDIyCjlDQVZ1ZFg4TWpEQ1hTcll0Y0ZINllBanlCSTJjbDhoSkJqa2E3aERpVC9DaFlEZlFFVFZDM3crQjBDYjF1NWcKdE03Z2NGcUw4OVdhMnp5UzdNdXk5bEthUDBvTXl1Ty82Tm1wNjNsVnRHeEZKSFh4WTN6M0lycGxlbTNZQThpTwpmbmlYZXc9PQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCg==
```
---
apiVersion: v1
kind: Secret
metadata:
name: cattle-keys-server
namespace: cattle-system
type: Opaque
data:
cacerts.pem: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUNvRENDQVlnQ0NRRHVVWjZuMEZWeU16QU5CZ2txaGtpRzl3MEJBUXNGQURBU01SQXdEZ1lEVlFRRERBZDAKWlhOMExXTmhNQjRYRFRFNE1EVXdOakl4TURRd09Wb1hEVEU0TURjd05USXhNRFF3T1Zvd0VqRVFNQTRHQTFVRQpBd3dIZEdWemRDMWpZVENDQVNJd0RRWUpLb1pJaHZjTkFRRUJCUUFEZ2dFUEFEQ0NBUW9DZ2dFQkFNQmpBS3dQCndhRUhwQTdaRW1iWWczaTNYNlppVmtGZFJGckJlTmFYTHFPL2R0RUdmWktqYUF0Wm45R1VsckQxZUlUS3UzVHgKOWlGVlV4Mmo1Z0tyWmpwWitCUnFiZ1BNbk5hS1hocmRTdDRtUUN0VFFZdGRYMVFZS0pUbWF5NU45N3FoNTZtWQprMllKRkpOWVhHWlJabkdMUXJQNk04VHZramF0ZnZOdmJ0WmtkY2orYlY3aWhXanp2d2theHRUVjZlUGxuM2p5CnJUeXBBTDliYnlVcHlad3E2MWQvb0Q4VUtwZ2lZM1dOWmN1YnNvSjhxWlRsTnN6UjVadEFJV0tjSE5ZbE93d2oKaG41RE1tSFpwZ0ZGNW14TU52akxPRUc0S0ZRU3laYlV2QzlZRUhLZTUxbGVxa1lmQmtBZWpPY002TnlWQUh1dApuay9DMHpXcGdENkIwbkVDQXdFQUFUQU5CZ2txaGtpRzl3MEJBUXNGQUFPQ0FRRUFHTCtaNkRzK2R4WTZsU2VBClZHSkMvdzE1bHJ2ZXdia1YxN3hvcmlyNEMxVURJSXB6YXdCdFJRSGdSWXVtblVqOGo4T0hFWUFDUEthR3BTVUsKRDVuVWdzV0pMUUV0TDA2eTh6M3A0MDBrSlZFZW9xZlVnYjQrK1JLRVJrWmowWXR3NEN0WHhwOVMzVkd4NmNOQQozZVlqRnRQd2hoYWVEQmdma1hXQWtISXFDcEsrN3RYem9pRGpXbi8walI2VDcrSGlaNEZjZ1AzYnd3K3NjUDIyCjlDQVZ1ZFg4TWpEQ1hTcll0Y0ZINllBanlCSTJjbDhoSkJqa2E3aERpVC9DaFlEZlFFVFZDM3crQjBDYjF1NWcKdE03Z2NGcUw4OVdhMnp5UzdNdXk5bEthUDBvTXl1Ty82Tm1wNjNsVnRHeEZKSFh4WTN6M0lycGxlbTNZQThpTwpmbmlYZXc9PQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCg==
```
### Option B—Bring Your Own Certificate: Signed by Recognized CA
If you are using a Certificate Signed By A Recognized Certificate Authority, you don't need to perform any step in this part.
{{% /accordion %}}
{{% accordion id="option-b" label="Option B—Bring Your Own Certificate: Signed by Recognized CA" %}}
If you are using a Certificate Signed By A Recognized Certificate Authority, you don't need to perform any step in this part.
{{% /accordion %}}
## 8. Configure FQDN
@@ -352,9 +298,7 @@ During installation, RKE automatically generates a config file named `kube_confi
## What's Next?
You have a couple of options:
- Create a backup of your Rancher Server in case of a disaster scenario: [High Availablility Back Up and Restoration]({{< baseurl >}}/rancher/v2.x/en/backups/backups/ha-backups/).
- **Recommended:** Review [Creating Backups—High Availablility Back Up and Restoration]({{< baseurl >}}/rancher/v2.x/en/backups/backups/ha-backups/) to learn how to backup your Rancher Server in case of a disaster scenario.
- Create a Kubernetes cluster: [Creating a Cluster]({{< baseurl >}}/rancher/v2.x/en/tasks/clusters/creating-a-cluster/).
<br/>
@@ -5,11 +5,12 @@ aliases:
- /rancher/v2.x/en/hosts/amazon/#required-ports-for-rancher-to-work/
---
To operate properly, Rancher requires the following ports to be open on your nodes. During creation of clusters using a cloud service (like Amazon EC2 or DigitalOcean), Rancher opens these ports for you.
To operate properly, Rancher requires certain ports to be open on your nodes. During creation of clusters using a cloud service (like Amazon EC2 or DigitalOcean), Rancher opens these ports for you.
The following diagram displays the basic port requirements for Rancher. If you need more detail, refer to the tables below.
The ports that Rancher opens change according to the type of machines hosting your cluster nodes. The following diagram depicts the ports that are opened for each [cluster type]({{< baseurl >}}/rancher/v2.x/en/cluster-provisioning).
![Basic Port Requirements]({{< baseurl >}}/img/rancher/port-communications.png)
<sup>Cluster Type Port Requirements</sup>
![Basic Port Requirements]({{< baseurl >}}/img/rancher/port-communications.svg)
{{< requirements_ports_rancher >}}
{{< requirements_ports_rke >}}
@@ -0,0 +1,83 @@
---
title: Node Requirements
weight: 1
aliases:
---
Whether you're configuring Rancher to run in a single-node or high-availability setup, each node running Rancher Server must meet the following requirements.
{{% tabs %}}
{{% tab "Operating Systems" %}}
Rancher is supported on the following operating systems and their subsequent releases.
* Ubuntu 16.04 (64-bit)
* Red Hat Enterprise Linux 7.5 (64-bit)
* RancherOS 1.4 (64-bit)
If you are using RancherOS, make sure you switch the Docker engine to a supported version using:<br>
`sudo ros engine switch docker-17.03.2-ce`
{{% /tab %}}
{{% tab "Hardware" %}}
Hardware requirements scale based on the size of your Rancher deployment. Provision each individual node according to the requirements.
<table>
<tr>
<th>Deployment Size</th>
<th>Clusters</th>
<th>Nodes</th>
<th>vCPUs</th>
<th>RAM</th>
</tr>
<tr>
<td>Small</td>
<td>Up to 10</td>
<td>Up to 50</td>
<td>2</td>
<td>4GB</td>
</tr>
<tr>
<td>Medium</td>
<td>Up to 100</td>
<td>Up to 500</td>
<td>8</td>
<td>32GB</td>
</tr>
<tr>
<td>Large</td>
<td>Over 100</td>
<td>Over 500</td>
<td colspan="2"><a href="https://rancher.com/contact/">Contact Rancher</a></td>
</tr>
</table>
<br/>
{{% /tab %}}
{{% tab "Software" %}}
A supported version of [Docker](https://www.docker.com/) is required.
Supported Versions:
* `1.12.6`
* `1.13.1`
* `17.03.2`
If you are using RancherOS, make sure you switch the Docker engine to a supported version using:<br>
`sudo ros engine switch docker-17.03.2-ce`
[Docker Documentation: Installation Instructions](https://docs.docker.com/)
{{% /tab %}}
{{% tab "Ports" %}}
When deploying Rancher in an HA cluster, certain ports on your nodes must be open to allow communication with Rancher. The ports that must be open change according to the type of machines hosting your cluster nodes. For example, if your are deploying Rancher on nodes hosted by an IaaS, port `22` must be open for SSH. The following diagram depicts the ports that are opened for each [cluster type]({{< baseurl >}}/rancher/v2.x/en/cluster-provisioning).
<sup>Cluster Type Port Requirements</sup>
![Basic Port Requirements]({{< baseurl >}}/img/rancher/port-communications.svg)
{{< requirements_ports_rancher >}}
{{< requirements_ports_rke >}}
{{< ports_aws_securitygroup_nodedriver >}}
{{% /tab %}}
{{% /tabs %}}
@@ -3,177 +3,90 @@ title: Single Node Install
weight: 250
aliases:
- /rancher/v2.x/en/installation/single-node-install/
- /rancher/v2.x/en/installation/custom-ca-root-certificate/
---
For development environments, we recommend installing Rancher by running a single Docker container. In this installation scenario, you'll install Docker on a single Linux host, and then install Rancher on your host using a single Docker container.
For development and testing environments, we recommend installing Rancher by running a single Docker container. In this installation scenario, you'll install Docker on a single Linux host, and then deploy Rancher on your host using a single Docker container.
>**Want to use an external load balancer?**
> See [Single Node Install with an External Load Balancer]({{< baseurl >}}/rancher/v2.x/en/installation/single-node/single-node-install-external-lb) instead.
## Installation Outline
Installation of Rancher on a single node involves multiple procedures. Review this outline to learn about each procedure you need to complete.
1. [Provision Linux Host](#1-provision-linux-host)
Provision a single Linux host to launch your {{< product >}} Server.
2. [Choose an SSL Option and Install Rancher](#2-choose-an-ssl-option-and-install-rancher)
Choose an SSL option for Rancher communication encryption. After choosing an option, run the command that accompanies it to deploy Rancher.
## 1. Provision Linux Host
Provision a single Linux host to launch your {{< product >}} Server.
### Requirements
#### Operating System
{{< requirements_os >}}
#### Hardware
{{< requirements_hardware >}}
#### Software
{{< requirements_software >}}
{{< note_server-tags >}}
#### Ports
The following diagram depicts the basic port requirements for Rancher. For a comprehensive list, see [Port Requirements]({{< baseurl >}}/rancher/v2.x/en/installation/references/).
![Basic Port Requirements]({{< baseurl >}}/img/rancher/port-communications.png)
Provision a single Linux host according to our [Requirements]({{< baseurl >}}/rancher/v2.x/en/installation/requirements) to launch your {{< product >}} Server.
## 2. Choose an SSL Option and Install Rancher
For security purposes, SSL (Secure Sockets Layer) is required when using Rancher. SSL secures all Rancher network communication, like when you login or interact with a cluster.
>**Attention Air Gap Users:**
> If you are visiting this page to complete an [Air Gap Installation]({{< baseurl >}}/rancher/v2.x/en/installation/air-gap-installation/), you must pre-pend your private registry URL to the server tag when running the installation command in the option that you choose. Add `<REGISTRY.DOMAIN.COM:PORT>` with your private registry URL in front of `rancher/rancher:latest`.
>**Do you want to...**
>
>- Use a proxy? See [HTTP Proxy Configuration]({{< baseurl >}}/rancher/v2.x/en/installation/single-node/proxy/)
>- Configure custom CA root certificate to access your services? See [Custom CA root certificate]({{< baseurl >}}/rancher/v2.x/en/admin-settings/custom-ca-root-certificate/)
>- Complete an Air Gap Installation? See [Air Gap](#air-gap)
>- Record all transactions with the Rancher API? See [API Auditing](#api-auditing)
>
> Example:
```
<REGISTRY.DOMAIN.COM:PORT>/rancher/rancher:latest
```
Choose from the following options:
- [Option A—Default Self-Signed Certificate](#option-a-default-self-signed-certificate)
- [Option B—Bring Your Own Certificate: Self-Signed](#option-b-bring-your-own-certificate-self-signed)
- [Option C—Bring Your Own Certificate: Signed by Recognized CA](#option-c-bring-your-own-certificate-signed-by-recognized-ca)
- [Option D—Bring Your Own Certificate: Private CA Root Certificate CA](#option-d-bring-your-own-certificate-private-ca-root-certificate)
- [Option E—Let's Encrypt Certificate](#option-e-let-s-encrypt-certificate)
{{% accordion id="option-a" label="Option A-Default Self-Signed Certificate" %}}
>**Want records of all transactions with the Rancher API?**
>
>Enable the [API Auditing]({{< baseurl >}}/rancher/v2.x/en/installation/api-auditing) feature by adding the flags below into your install command.
>```
-e AUDIT_LEVEL=1 \
-e AUDIT_LOG_PATH=/var/log/auditlog/rancher-api-audit.log \
-e AUDIT_LOG_MAXAGE=20 \
-e AUDIT_LOG_MAXBACKUP=20 \
-e AUDIT_LOG_MAXSIZE=100 \
```
If you are installing Rancher in a development or testing environment where identity verification isn't a concern, install Rancher using the self-signed certificate that it generates. This installation option omits the hassle of generating a certificate yourself.
### Option A—Default Self-Signed Certificate
Log into your Linux host, and then run the minimum installation command below.
If you install Rancher without using your own certificate, Rancher generates a self-signed certificate that's used for encryption. If you're satisfied with this certificate, there's no need to obtain your own.
docker run -d --restart=unless-stopped \
-p 80:80 -p 443:443 \
rancher/rancher:latest
**To Install Rancher Using the Default Certificate:**
1. From your Linux host, run the Docker command to install Rancher without any additional parameters:
```
docker run -d --restart=unless-stopped \
-p 80:80 -p 443:443 \
rancher/rancher:latest
```
### Option B—Bring Your Own Certificate: Self-Signed
Your Rancher install can use a self-signed certificate that you provide to encrypt communications.
{{% /accordion %}}
{{% accordion id="option-b" label="Option B-Bring Your Own Certificate: Self-Signed" %}}
In development or testing environments where your team will access your Rancher server, create a self-signed certificate for use with your install so that your team can verify they're connecting to your instance of Rancher.
>**Prerequisites:**
>Create a self-signed certificate.
>Create a self-signed certificate using [OpenSSL](https://www.openssl.org/) or another method of your choice.
>
>- The certificate files must be in [PEM format](#pem).
>- In your certificate file, include all intermediate certificates in the chain. Order your certificates with your certificate first, followed by the intermediates. For an example, see [SSL FAQ / Troubleshooting](#cert-order).
**To Install Rancher Using a Self-Signed Cert:**
After creating your certificate, run the Docker command below to install Rancher. Use the `-v` flag and provide the path to your certificates to mount them in your container.
Your Rancher install can use a self-signed certificate that you provide to encrypt communications.
1. After creating your certificate, run the Docker command to install Rancher, pointing toward your certificate files.
```
docker run -d --restart=unless-stopped \
-p 80:80 -p 443:443 \
-v /etc/<CERT_DIRECTORY>/<FULL_CHAIN.pem>:/etc/rancher/ssl/cert.pem \
-v /etc/<CERT_DIRECTORY>/<PRIVATE_KEY.pem>:/etc/rancher/ssl/key.pem \
-v /etc/<CERT_DIRECTORY>/<CA_CERTS.pem>:/etc/rancher/ssl/cacerts.pem \
rancher/rancher:latest
```
### Option C—Bring Your Own Certificate: Signed by Recognized CA
If you're publishing your app publicly, you should ideally be using a certificate signed by a recognized CA.
>**Prerequisites:**
>
>- The certificate files must be in [PEM format](#pem).
>- Make sure that the container includes your certificate file and the key file. Because your certificate is signed by a recognized CA, mounting an additional CA certificate file is unnecessary.
>- Add `--no-cacerts` as argument to the container to disable the default CA certificate generated by Rancher.
**To Install Rancher Using a Certificate Signed by a Recognized CA:**
1. After obtaining your certificate, run the Docker command to deploy Rancher while pointing toward your certificate files.
```
docker run -d --restart=unless-stopped \
-p 80:80 -p 443:443 \
-v /etc/your_certificate_directory/fullchain.pem:/etc/rancher/ssl/cert.pem \
-v /etc/your_certificate_directory/privkey.pem:/etc/rancher/ssl/key.pem \
rancher/rancher:latest --no-cacerts
```
### Option D—Bring Your Own Certificate: Private CA Root Certificate
Services that Rancher needs to access are sometimes configured with a certificate from an custom/internal Certificate Authority (CA) root, also known as self signed certificate. If the presented certificate from the service cannot be validated by Rancher, the following error will appear: `x509: certificate signed by unknown authority`.
To validate the certificate, the CA root certificates need to be added to Rancher. As Rancher is written in Go, we can use the environment variable `SSL_CERT_DIR` to point to the directory where the CA root certificates are located in the container. The CA root certificates directory can be mounted using the Docker volume option (`-v host-source-directory:container-destination-directory`) when starting the Rancher container.
Examples of services that Rancher can access:
* Catalogs
* Authentication providers
* Accessing hosting/cloud API when using Node Drivers
#### Start Rancher Container with custom CA root certificates
The requirements are:
* Mount the host directory containing the CA root certificates in the container using the volume option.
* Add the environment variable `SSL_CERT_DIR` with as value the mounted CA root certificates directory location inside the container.
Passing environment variables to the Rancher container can be done using `-e KEY=VALUE` or `--env KEY=VALUE`, mounting a host directory inside the container can be done using `-v host-source-directory:container-destination-directory` or `--volume host-source-directory:container-destination-directory`.
The example below is based on having the CA root certificates in the `/host/certs` directory on the host and mounting this directory on `/container/certs` inside the Rancher container.
- Replace `<CERT_DIRECTORY>` with the directory path to your certificate file.
- Replace `<FULL_CHAIN.pem>`,`<PRIVATE_KEY.pem>`, and `<CA_CERTS>` with your certificate names.
```
docker run -d --restart=unless-stopped \
-p 80:80 -p 443:443 \
-v /host/certs:/container/certs \
-e SSL_CERT_DIR="/container/certs" \
rancher/rancher:latest
-p 80:80 -p 443:443 \
-v /<CERT_DIRECTORY>/<FULL_CHAIN.pem>:/etc/rancher/ssl/cert.pem \
-v /<CERT_DIRECTORY>/<PRIVATE_KEY.pem>:/etc/rancher/ssl/key.pem \
-v /<CERT_DIRECTORY>/<CA_CERTS.pem>:/etc/rancher/ssl/cacerts.pem \
rancher/rancher:latest
```
{{% /accordion %}}
{{% accordion id="option-c" label="Option C-Bring Your Own Certificate: Signed by Recognized CA" %}}
### Option E—Let's Encrypt Certificate
In production environments where you're exposing an app publicly, use a certificate signed by a recognized CA so that your user base doesn't encounter security warnings.
Rancher supports Let's Encrypt certificates. Let's Encrypt uses an `http-01 challenge` to verify that you have control over your domain. You can confirm that you control the domain by pointing the hostname that you want to use for Rancher access (for example, `rancher.mydomain.com`) to the IP of the machine it is running on. You can bind the hostname to the IP address by creating an A record in DNS.
>**Prerequisite:** The certificate files must be in [PEM format](#pem).
After obtaining your certificate, run the Docker command below.
- Use the `-v` flag and provide the path to your certificates to mount them in your container. Because your certificate is signed by a recognized CA, mounting an additional CA certificate file is unnecessary.
- Replace `<CERT_DIRECTORY>` with the directory path to your certificate file.
- Replace `<FULL_CHAIN.pem>` and `<PRIVATE_KEY.pem>` with your certificate names.
- Use the `--no-cacerts` as argument to the container to disable the default CA certificate generated by Rancher.
```
docker run -d --restart=unless-stopped \
-p 80:80 -p 443:443 \
-v /<CERT_DIRECTORY>/<FULL_CHAIN.pem>:/etc/rancher/ssl/cert.pem \
-v /<CERT_DIRECTORY>/<PRIVATE_KEY.pem>:/etc/rancher/ssl/key.pem \
rancher/rancher:latest --no-cacerts
```
{{% /accordion %}}
{{% accordion id="option-d" label="Option D-Let's Encrypt Certificate" %}}
For production environments, you also have the options of using [Let's Encrypt](https://letsencrypt.org/) certificates. Let's Encrypt uses an http-01 challenge to verify that you have control over your domain. You can confirm that you control the domain by pointing the hostname that you want to use for Rancher access (for example, `rancher.mydomain.com`) to the IP of the machine it is running on. You can bind the hostname to the IP address by creating an A record in DNS.
>**Prerequisites:**
>
@@ -182,27 +95,20 @@ Rancher supports Let's Encrypt certificates. Let's Encrypt uses an `http-01 chal
>- Open port `TCP/80` on your Linux host. The Let's Encrypt http-01 challenge can come from any source IP address, so port `TCP/80` must be open to all IP addresses.
**To Install Rancher Using a Let's Encrypt Certificate:**
After you fulfill the prerequisites, you can install Rancher using a Let's Encrypt certificate by running the following command. Replace `<YOUR.DNS.NAME>` with your your domain.
Run the following commands from your Linux host.
1. Run the Docker command.
docker run -d --restart=unless-stopped \
-p 80:80 -p 443:443 \
rancher/rancher:latest \
--acme-domain <YOUR.DNS.NAME>
```
docker run -d --restart=unless-stopped \
-p 80:80 -p 443:443 \
rancher/rancher:latest \
--acme-domain rancher.mydomain.com
```
>
>**Remember:** Let's Encrypt provides rate limits for requesting new certificates. Therefore, limit how often you create or destroy the container. For more information, see [Let's Encrypt documentation on rate limits](https://letsencrypt.org/docs/rate-limits/).
{{% /accordion %}}
## What's Next?
You have a couple of options:
- Create a backup of your Rancher Server in case of a disaster scenario: [Single Node Backup and Restoration]({{< baseurl >}}/rancher/v2.x/en/installation/backups-and-restoration/single-node-backup-and-restoration/).
- **Recommended:** Review [Single Node Backup and Restoration]({{< baseurl >}}/rancher/v2.x/en/installation/backups-and-restoration/single-node-backup-and-restoration/). Although you don't have any data you need to back up right now, we recommend creating backups after regular Rancher use.
- Create a Kubernetes cluster: [Provisioning Kubernetes Clusters]({{< baseurl >}}/rancher/v2.x/en/cluster-provisioning/).
<br/>
@@ -211,11 +117,31 @@ You have a couple of options:
{{< ssl_faq_single >}}
## Persistent Data
## Advanced Options
### API Auditing
If you want to record all transations with the Rancher API, enable the [API Auditing]({{< baseurl >}}/rancher/v2.x/en/installation/api-auditing) feature by adding the flags below into your install command.
-e AUDIT_LEVEL=1 \
-e AUDIT_LOG_PATH=/var/log/auditlog/rancher-api-audit.log \
-e AUDIT_LOG_MAXAGE=20 \
-e AUDIT_LOG_MAXBACKUP=20 \
-e AUDIT_LOG_MAXSIZE=100 \
### Air Gap
If you are visiting this page to complete an [Air Gap Installation]({{< baseurl >}}/rancher/v2.x/en/installation/air-gap-installation/), you must pre-pend your private registry URL to the server tag when running the installation command in the option that you choose. Add `<REGISTRY.DOMAIN.COM:PORT>` with your private registry URL in front of `rancher/rancher:latest`.
**Example:**
<REGISTRY.DOMAIN.COM:PORT>/rancher/rancher:latest
### Persistent Data
{{< persistentdata >}}
## Running `rancher/rancher` and `rancher/rancher-agent` on the same node
### Running `rancher/rancher` and `rancher/rancher-agent` on the Same Node
In the situation where you want to use a single node to run Rancher and to be able to add the same node to a cluster, you have to adjust the host ports mapped for the `rancher/rancher` container.
@@ -4,86 +4,39 @@ weight: 252
aliases:
- /rancher/v2.x/en/installation/single-node-install-external-lb/
---
For development environments, we recommend installing Rancher by running a single Docker container. In this installation scenario, you'll deploy Rancher to a Linux host using a single Docker container. Then you will configure an external load balancer to work with Rancher.
For development and testing environments that have a special requirement to terminate TLS/SSL at a load balancer instead of your Rancher Server container, deploy Rancher and configure a load balancer to work with it it conjunction. This install procedure walks you through deployment of Rancher using a single container, and then provides a sample configuration for a layer 7 Nginx load balancer.
>**Want to skip the external load balancer?**
> See [Single Node Installation]({{< baseurl >}}/rancher/v2.x/en/installation/single-node) instead.
## Installation Outline
<!-- TOC -->
Installation of Rancher on a single node with an external load balancer involves multiple procedures. Review this outline to learn about each procedure you need to complete.
1. [Provision Linux Host](#1-provision-linux-host)
Provision a single Linux host to launch your {{< product >}} Server.
2. [Choose an SSL Option and Install Rancher](#2-choose-an-ssl-option-and-install-rancher)
Choose an SSL option for Rancher communication encryption. After choosing an option, run the command that accompanies it to deploy Rancher.
3. [Configure Load Balancer](#3-configure-load-balancer)
Setup a load balancer to direct communications with Rancher and your Kubernetes cluster.
- [1. Provision Linux Host](#1-provision-linux-host)
- [2. Choose an SSL Option and Install Rancher](#2-choose-an-ssl-option-and-install-rancher)
- [3. Configure Load Balancer](#3-configure-load-balancer)
<!-- /TOC -->
## 1. Provision Linux Host
Provision a single Linux host to launch your {{< product >}} Server.
### Host Requirements
#### Operating System
{{< requirements_os >}}
#### Hardware
{{< requirements_hardware >}}
#### Software
{{< requirements_software >}}
{{< note_server-tags >}}
#### Ports
The following diagram depicts the basic port requirements for Rancher. For a comprehensive list, see [Port Requirements]({{< baseurl >}}/rancher/v2.x/en/installation/references/).
![Basic Port Requirements]({{< baseurl >}}/img/rancher/port-communications.png)
Provision a single Linux host according to our [Requirements]({{< baseurl >}}/rancher/v2.x/en/installation/requirements) to launch your {{< product >}} Server.
## 2. Choose an SSL Option and Install Rancher
For security purposes, SSL (Secure Sockets Layer) is required when using Rancher. SSL secures all Rancher network communication, like when you login or interact with a cluster.
>**Attention Air Gap Users:**
> If you are visiting this page to complete [Air Gap Installation]({{< baseurl >}}/rancher/v2.x/en/installation/air-gap-installation/), you must prepend your private registry URL to the server tag when running the installation command in the option that you choose. Replace `<REGISTRY.DOMAIN.COM:PORT>` with your private registry URL.
>**Do you want to...**
>
> Example:
```
<REGISTRY.DOMAIN.COM:PORT>/rancher/rancher:latest
```
- [Option A-Bring Your Own Certificate: Self-Signed](#option-a-bring-your-own-certificate-self-signed)
- [Option B-Bring Your Own Certificate: Signed by Recognized CA](#option-b-bring-your-own-certificate-signed-by-recognized-ca)
>**Want records of all transactions with the Rancher API?**
>- Complete an Air Gap Installation?
>- Record all transactions with the Rancher API?
>
>Enable the [API Auditing]({{< baseurl >}}/rancher/v2.x/en/installation/api-auditing) feature by adding the flags below into your install command.
>```
-e AUDIT_LEVEL=1 \
-e AUDIT_LOG_PATH=/var/log/auditlog/rancher-api-audit.log \
-e AUDIT_LOG_MAXAGE=20 \
-e AUDIT_LOG_MAXBACKUP=20 \
-e AUDIT_LOG_MAXSIZE=100 \
```
>See [Advanced Options](#advanced-options) below before continuing.
### Option A-Bring Your Own Certificate: Self-Signed
Choose from the following options:
If you elect to use a self-signed certificate to encrypt communication, you must install the certificate on your load balancer (which you'll do later) and your Rancher container. Run the docker command to deploy Rancher, pointing it toward your certificate.
{{% accordion id="option-a" label="Option A-Bring Your Own Certificate: Self-Signed" %}}
If you elect to use a self-signed certificate to encrypt communication, you must install the certificate on your load balancer (which you'll do later) and your Rancher container. Run the Docker command to deploy Rancher, pointing it toward your certificate.
>**Prerequisites:**
>Create a self-signed certificate.
@@ -100,9 +53,9 @@ If you elect to use a self-signed certificate to encrypt communication, you must
-v /etc/your_certificate_directory/cacerts.pem:/etc/rancher/ssl/cacerts.pem \
rancher/rancher:latest
```
### Option B-Bring Your Own Certificate: Signed by Recognized CA
{{% /accordion %}}
{{% accordion id="option-b" label="Option B-Bring Your Own Certificate: Signed by Recognized CA" %}}
If your cluster is public facing, it's best to use a certificate signed by a recognized CA.
>**Prerequisites:**
@@ -117,9 +70,10 @@ If you use a certificate signed by a recognized CA, installing your certificate
```
docker run -d --restart=unless-stopped \
-p 80:80 -p 443:443 \
rancher/rancher:latest --no-cacerts
```
-p 80:80 -p 443:443 \
rancher/rancher:latest --no-cacerts
```
{{% /accordion %}}
## 3. Configure Load Balancer
@@ -142,7 +96,7 @@ The load balancer or proxy has to be configured to support the following:
### Example Nginx configuration
This Nginx configuration is tested on Nginx version 1.13 (mainline) and 1.14 (stable).
This layer 7 Nginx configuration is tested on Nginx version 1.13 (mainline) and 1.14 (stable).
>**Note:** This Nginx configuration is only an example and may not suit your environment. For complete documentation, see [NGINX Load Balancing - TCP and UDP Load Balancer](https://docs.nginx.com/nginx/admin-guide/load-balancer/tcp-udp-load-balancer/).
@@ -186,9 +140,8 @@ server {
<br/>
## What's Next?
You have a couple of options:
- Create a backup of your Rancher Server in case of a disaster scenario: [Single Node Backup and Restoration]({{< baseurl >}}/rancher/v2.x/en/installation/backups-and-restoration/single-node-backup-and-restoration/).
- **Recommended:** Review [Single Node Backup and Restoration]({{< baseurl >}}/rancher/v2.x/en/installation/backups-and-restoration/single-node-backup-and-restoration/). Although you don't have any data you need to back up right now, we recommend creating backups after regular Rancher use.
- Create a Kubernetes cluster: [Provisioning Kubernetes Clusters]({{< baseurl >}}/rancher/v2.x/en/cluster-provisioning/).
<br/>
@@ -197,6 +150,26 @@ You have a couple of options:
{{< ssl_faq_single >}}
## Persistent Data
## Advanced Options
### API Auditing
If you want to record all transations with the Rancher API, enable the [API Auditing]({{< baseurl >}}/rancher/v2.x/en/installation/api-auditing) feature by adding the flags below into your install command.
-e AUDIT_LEVEL=1 \
-e AUDIT_LOG_PATH=/var/log/auditlog/rancher-api-audit.log \
-e AUDIT_LOG_MAXAGE=20 \
-e AUDIT_LOG_MAXBACKUP=20 \
-e AUDIT_LOG_MAXSIZE=100 \
### Air Gap
If you are visiting this page to complete an [Air Gap Installation]({{< baseurl >}}/rancher/v2.x/en/installation/air-gap-installation/), you must pre-pend your private registry URL to the server tag when running the installation command in the option that you choose. Add `<REGISTRY.DOMAIN.COM:PORT>` with your private registry URL in front of `rancher/rancher:latest`.
**Example:**
<REGISTRY.DOMAIN.COM:PORT>/rancher/rancher:latest
### Persistent Data
{{< persistentdata >}}
@@ -119,7 +119,7 @@ In [clusters launched by RKE]({{< baseurl >}}/rancher/v2.x/en/cluster-provisioni
Option | Description |
---------|----------|
Kubernetes Version | The version of Kubernetes installed on each cluster node. For more detail, see [Upgrading Kubernetes](#upgrading-kubernetes). |
Network Provider | The [container networking interface]({{< baseurl >}}/rancher/v2.x/en/faq/networking/cni-providers/) that powers networking for your cluster.<br/><br/>**Note:** You can only choose this option while provisioning your cluster. It cannot be edited later. |
Network Provider | The [container networking interface]({{< baseurl >}}/rancher/v2.x/en/faq/networking/#cni-providers) that powers networking for your cluster.<br/><br/>**Note:** You can only choose this option while provisioning your cluster. It cannot be edited later. |
Project Network Isolation | As of Rancher v2.0.7, if you're using the Canal network provider, you can choose whether to enable or disable inter-project communication. |
Nginx Ingress | If you want to publish your applications in a high-availability configuration, and you're hosting your nodes with a cloud-provider that doesn't have a native load-balancing feature, enable this option to use Nginx ingress within the cluster. |
Metrics Server Monitoring | Each cloud provider capable of launching a cluster using RKE can collect metrics and monitor for your cluster nodes. Enable this option to view your node metrics from your cloud provider's portal. |
@@ -38,29 +38,8 @@ This Quick Start Guide is divided into different tasks for easier consumption.
>
> For a full list of port requirements, refer to [Single Node Installation]({{< baseurl >}}/rancher/v2.x/en/installation/references).
Provision the host according to the requirements below.
Provision the host according to our [Requirements]({{< baseurl >}}/rancher/v2.x/en/installation/requirements/).
{{% accordion id="os" label="Operating System" %}}
{{< requirements_os >}}
{{% /accordion %}}
{{% accordion id="hardware" label="Hardware" %}}
Memory: 4GB
{{% /accordion %}}
{{% accordion id="software" label="Software" %}}
Docker
<a name="node-requirements"></a>**Supported Docker versions:**
- `1.12.6`
- `1.13.1`
- `17.03.2`
>**Notes:**
>
> - For Docker installation instructions, visit their [documentation](https://docs.docker.com/install/).
> - Docker requirements apply to both your Linux host and your cluster nodes.
{{% /accordion %}}
<br/>
### 2. Install Rancher
To install Rancher on your host, connect to it and then use a shell to install.
@@ -6,34 +6,78 @@ aliases:
- /rancher/v2.x/en/upgrades/single-node-rollbacks
---
Rolling back an unsuccessful Rancher upgrade requires you to
restore the backup you created while completing [Single Node Upgrade]({{< baseurl >}}/rancher/v2.x/en/upgrades/upgrade-scenarios/single-node-upgrade/).
If a Rancher upgrade does not complete successfully, you'll have to roll back to your Rancher setup that you were using before [Single Node Upgrade]({{< baseurl >}}/rancher/v2.x/en/upgrades/upgrades/single-node-upgrade). Rolling back restores:
- Your previous version of Rancher.
- Your data backup created before upgrade.
## Before You Start
During rollback to a prior version of Rancher, you'll enter a series of commands, filling placeholders with data from your environment. These placeholders are denoted with angled brackets and all capital letters (`<EXAMPLE>`). Here's an example of a command with a placeholder:
```
docker pull rancher/rancher:<PRIOR_RANCHER_VERSION>
```
In this command, `<PRIOR_RANCHER_VERSION>` is the version of Rancher you were running before your unsuccessful upgrade. `v2.0.5` for example.
Cross reference the image and reference table below to learn how to obtain this placeholder data. Write down or copy this information before starting the [procedure below](#creating-a-backup).
<sup>Terminal `docker ps` Command, Displaying Where to Find `<PRIOR_RANCHER_VERSION>` and `<RANCHER_CONTAINER_NAME>`</sup>
![Placeholder Reference]({{< baseurl >}}/img/rancher/placeholder-ref-2.png)
| Placeholder | Example | Description |
| -------------------------- | -------------------------- | ------------------------------------------------------- |
| `<PRIOR_RANCHER_VERSION>` | `v2.0.5` | The rancher/rancher image you used before upgrade. |
| `<RANCHER_CONTAINER_NAME>` | `festive_mestorf` | The name of your Rancher container. |
| `<RANCHER_VERSION>` | `v2.0.5` | The version of Rancher that the backup is for. |
| `<DATE>` | `9-27-18` | The date that the data container or backup was created. |
<br/>
You can obtain `<PRIOR_RANCHER_VERSION>` and `<RANCHER_CONTAINER_NAME>` by logging into your Rancher Server by remote connection and entering the command to view the containers that are running: `docker ps`. You can also view containers that are stopped using a different command: `docker ps -a`. Use these commands for help anytime during while creating backups.
## Rolling Back Rancher
If you have issues upgrading Rancher, roll it back to its lastest known healthy state by pulling the last version you used and then restoring the backup you made before upgrade.
>**Warning!** Rolling back to a previous version of Rancher destroys any changes made to Rancher following the upgrade. Unrecoverable data loss may occur.
1. Pull the version of Rancher that you were running prior to upgrade.
1. Using a remote Terminal connection, log into the node running your Rancher Server.
1. Pull the version of Rancher that you were running prior to upgrade. Replace the `<PRIOR_RANCHER_VERSION>` with [that version](#before-you-start).
For example, if you were running Rancher v2.0.5 before upgrade, pull v2.0.5.
```
docker pull rancher/rancher:<PRIOR_VERSION>
docker pull rancher/rancher:<PRIOR_RANCHER_VERSION>
```
2. Stop the container currently running Rancher Server. Replace `<RANCHER_CONTAINER_ID>` with the ID of your Rancher container.
1. Stop the container currently running Rancher Server. Replace `<RANCHER_CONTAINER_NAME>` with the name of your Rancher container.
```
docker stop <RANCHER_CONTAINER_ID>
docker stop <RANCHER_CONTAINER_NAME>
```
You can obtain the name for your Rancher container by entering `docker ps`.
1. Move the backup tarball that you created during completion of [Single Node Upgrade]({{< baseurl >}}/rancher/v2.x/en/upgrades/upgrades/single-node-upgrade/) onto your Rancher Server. Change to the directory that you moved it to. Enter `dir` to confirm that it's there.
If you followed the naming convention we suggested in [Single Node Upgrade]({{< baseurl >}}/rancher/v2.x/en/upgrades/upgrades/single-node-upgrade/), it will have a name similar to (`rancher-data-backup-<RANCHER_VERSION>-<DATE>.tar.gz`).
1. Run the following command to replace the data in the `rancher-data` container with the data in the backup tarball, replacing the [placeholder](#before-you-start). Don't forget to close the quotes.
```
docker run --volumes-from rancher-data
-v $PWD:/backup alpine sh -c "rm /var/lib/rancher/* -rf
&& tar zxvf /backup/rancher-data-backup-<RANCHER_VERSION>-<DATE>.tar.gz"
```
3. Go to the location where you saved your [backup tar balls]({{< baseurl>}}/rancher/v2.x/en/upgrades/single-node-upgrade/#backup). Run the following command to create a data container from the backup tar ball.
```
docker run --volumes-from rancher-data \
-v $PWD:/backup alpine sh -c "rm /var/lib/rancher/* -rf \
&& tar zxvf /backup/<BACKUP_FILENAME>.tar.gz"
```
4. Start a new Rancher Server container with the `<PRIOR_VERSION>` tag pointing to the data container.
1. Start a new Rancher Server container with the `<PRIOR_RANCHER_VERSION>` tag [placeholder](#before-you-start) pointing to the data container.
```
docker run -d --volumes-from rancher-data \
--restart=unless-stopped -p 80:80 -p 443:443 rancher/rancher:<PRIOR_VERSION>
docker run -d --volumes-from rancher-data
--restart=unless-stopped -p 80:80 -p 443:443 rancher/rancher:<PRIOR_RANCHER_VERSION>
```
>**Note:** _Do not_ stop the rollback after initiating it, even if the rollback process seems longer than expected. Stopping the rollback may result in database issues during future upgrades.
1. Wait a few moments and then open Rancher in a web browser. Confirm that the rollback succeeded and that your data is restored.
**Result:** Rancher is rolled back to its version and data state prior to upgrade.
@@ -7,13 +7,13 @@ The following instructions will guide you through upgrading a high-availability
>**Note:** If you installed Rancher using the RKE Add-on yaml, see the following documents to migrate or upgrade.
>
>* [Migrating from RKE Add-On Install]({{< baseurl >}}/rancher/v2.x/en/upgrades/migrating-from-rke-add-on)
As of release v2.0.8, Rancher supports installation and upgrade by Helm chart, although RKE installs/upgrades are still supported as well. If you want to change upgrade method from RKE Add-on to Helm chart, follow this procedure.
>* [Migrating from RKE Add-On Install]({{< baseurl >}}/rancher/v2.x/en/upgrades/upgrades/migrating-from-rke-add-on)
>
> As of release v2.0.8, Rancher supports installation and upgrade by Helm chart, although RKE installs/upgrades are still supported as well. If you want to change upgrade method from RKE Add-on to Helm chart, follow this procedure.
>
>* [High Availability (HA) Upgrade - RKE Add-On Install]({{< baseurl >}}/rancher/v2.x/en/upgrades/ha-server-upgrade)
If you want to continue using RKE for upgrades, follow this procedure.
>
> If you want to continue using RKE for upgrades, follow this procedure.
## Prerequisites
@@ -23,7 +23,7 @@ This document is for upgrading Rancher HA installed with the RKE Add-On yaml. Se
>**Want records of all transactions with the Rancher API?**
>
>Enable the [API Auditing]({{< baseurl >}}/rancher/v2.x/en/installation/api-auditing) feature by editing your RKE config file (`rancher-cluster.yml`). For more information, see [RKE Documentation: API Auditing]({{< baseurl >}}\rke\v0.1.x\en\config-options\add-ons\api-auditing).
>Enable the [API Auditing]({{< baseurl >}}/rancher/v2.x/en/installation/api-auditing) feature by editing your RKE config file (`rancher-cluster.yml`). For more information, see [RKE Documentation: API Auditing]({{< baseurl >}}/rke/v0.1.x/en/config-options/add-ons/api-auditing).
1. <a id="snapshot"></a> Enter the following command. Replace `<SNAPSHOT.db>` with any name that you want to use for the snapshot (e.g. `upgrade.db`).
@@ -4,43 +4,76 @@ weight: 1010
aliases:
- /rancher/v2.x/en/upgrades/single-node-upgrade/
---
To upgrade Rancher Server 2.x after a new version is released, create a backup of your server and then run the upgrade command.
<a id="prereq"></a>
To upgrade Rancher Server 2.x when a new version is released, create a data container for your current Rancher deployment, pull the latest image of Rancher, and then start a new Rancher container using your data container.
>**Prerequisites:** Open Rancher and write down the version number displayed in the lower-left of the browser (example: `v2.0.0`). You'll need this number during the upgrade process.
## Before You Start
1. Stop the container currently running Rancher Server. Replace `<RANCHER_CONTAINER_ID>` with the ID of your Rancher container.
During upgrade, you'll enter a series of commands, filling placeholders with data from your environment. These placeholders are denoted with angled brackets and all capital letters (`<EXAMPLE>`). Here's an example of a command with a placeholder:
```
docker run --volumes-from rancher-data -v $PWD:/backup alpine tar zcvf /backup/rancher-data-backup-<RANCHER_VERSION>-<DATE>.tar.gz /var/lib/rancher
```
In this command, `<RANCHER_VERSION>-<DATE>` is the the version number and date of creation for a backup of Rancher.
Cross reference the image and reference table below to learn how to obtain this placeholder data. Write down or copy this information before starting the [procedure below](#completing-the-upgrade).
<sup>Terminal `docker ps` Command, Displaying Where to Find `<RANCHER_CONTAINER_TAG>` and `<RANCHER_CONTAINER_NAME>`</sup>
![Placeholder Reference]({{< baseurl >}}/img/rancher/placeholder-ref.png)
| Placeholder | Example | Description |
| -------------------------- | -------------------------- | --------------------------------------------------------- |
| `<RANCHER_CONTAINER_TAG>` | `v2.0.5` | The rancher/rancher image you pulled for initial install. |
| `<RANCHER_CONTAINER_NAME>` | `festive_mestorf` | The name of your Rancher container. |
| `<RANCHER_VERSION>` | `v2.0.5` | The version of Rancher that you're creating a backup for. |
| `<DATE>` | `9-27-18` | The date that the data container or backup was created. |
<br/>
You can obtain `<RANCHER_CONTAINER_TAG>` and `<RANCHER_CONTAINER_NAME>` by logging into your Rancher Server by remote connection and entering the command to view the containers that are running: `docker ps`. You can also view containers that are stopped using a different command: `docker ps -a`. Use these commands for help anytime during while creating backups.
## Completing the Upgrade
During upgrade, you create a copy of the data from your current Rancher container and a backup in case something goes wrong. Then you deploy the new version of Rancher in a new container using your existing data.
1. Using a remote Terminal connection, log into the node running your Rancher Server.
1. Stop the container currently running Rancher Server. Replace `<RANCHER_CONTAINER_NAME>` with the [name of your Rancher container](#before-you-start).
```
docker stop <RANCHER_CONTAINER_ID>
docker stop <RANCHER_CONTAINER_NAME>
```
>**Tip:** You can obtain the ID for your Rancher container by entering the following command: `docker ps`.
1. Create a container of your current Rancher data for use in your upgraded Rancher Server. Name the container `rancher-data`.
- Replace `<RANCHER_CONTAINER_ID>` with the same ID from the previous step.
- Replace `<RANCHER_CONTAINER_TAG>` with the version of Rancher that you are currently running, as mentioned in the **Prerequisite** above.
1. <a id="backup"></a>Use the command below, replacing each [placeholder](#before-you-start), to create a data container from the Rancher container that you just stopped.
```
docker create --volumes-from <RANCHER_CONTAINER_ID> \
--name rancher-data rancher/rancher:<RANCHER_CONTAINER_TAG>
docker create --volumes-from <RANCHER_CONTAINER_NAME> --name rancher-data rancher/rancher:<RANCHER_CONTAINER_TAG>
```
1. <a id="backup"></a>Create a backup tar ball of your current Rancher data. If you need to rollback, use this backup tar ball.
1. <a id="tarball"></a>From the data container that you just created (`rancher-data`), create a backup tarball (`rancher-data-backup-<RANCHER_VERSION>-<DATE>.tar.gz`).
This tarball will serve as a rollback point if something goes wrong during upgrade. Use the following command, replacing each [placeholder](#before-you-start).
- Replace `<RANCHER_VERSION>` with the tag for the version of Rancher currently installed.
```
docker run --volumes-from rancher-data -v $PWD:/backup \
alpine tar zcvf /backup/rancher-data-backup-<RANCHER_VERSION>.tar.gz \
/var/lib/rancher
docker run --volumes-from rancher-data -v $PWD:/backup alpine tar zcvf /backup/rancher-data-backup-<RANCHER_VERSION>-<DATE>.tar.gz /var/lib/rancher
```
**Step Result:** When you enter this command, a series of commands should run.
1. Enter the `dir` command to confirm that the backup tarball was created. It will have a name similar to `rancher-data-backup-<RANCHER_VERSION>-<DATE>`.
![Backup Backup Tarball]({{< baseurl >}}/img/rancher/dir-backup-tarball.png)
1. Move your backup tarball to a safe location external from your Rancher Server.
1. Pull the most recent image of Rancher.
```
docker pull rancher/rancher:latest
docker pull rancher/rancher:latest
```
>**Attention Air Gap Users:**
@@ -49,11 +82,10 @@ docker pull rancher/rancher:latest
> Example: `<registry.yourdomain.com:port>/rancher/rancher:latest`
>
1. Launch a new Rancher Server container using the `rancher-data` container.
1. Start a new Rancher Server container using the data from the `rancher-data` container.
```
docker run -d --volumes-from rancher-data --restart=unless-stopped \
-p 80:80 -p 443:443 rancher/rancher:latest
docker run -d --volumes-from rancher-data --restart=unless-stopped -p 80:80 -p 443:443 rancher/rancher:latest
```
>**Want records of all transactions with the Rancher API?**
@@ -74,10 +106,12 @@ docker run -d --volumes-from rancher-data --restart=unless-stopped \
1. Log into Rancher. Confirm that the upgrade succeeded by checking the version displayed in the bottom-left corner of the browser window.
<!--![Confirm Upgrade]({{< baseurl >}})/img/rancher/)-->
1. Remove the previous Rancher Server container.
If you only stop the previous Rancher Server container (and don't remove it), the container may restart after the next server reboot.
**Result:** Rancher Server is upgraded to the latest version.
>**Note:** If your upgrade does not complete successfully, you can roll Rancher Server and its data back to its last healthy state. For more information, see [Restoring Backups—Single Node Installs]({{< baseurl >}}/rancher/v2.x/en/backups/restorations/single-node-restoration/).
>**Note:** If your upgrade does not complete successfully, you can roll Rancher Server and its data back to its last healthy state. For more information, see [Single Node Rollback]({{< baseurl >}}/rancher/v2.x/en/upgrades/rollbacks/single-node-rollbacks/).
@@ -0,0 +1,107 @@
---
title: Migrating from Rancher v1.6 to v2.x
weight: 10000
---
Rancher 2.0 has been rearchitected and rewritten with the goal of providing a complete management solution for Kubernetes and Docker. Due to these extensive changes, there is no direct upgrade path from 1.6.x to 2.x, but rather a migration of your 1.6 application workloads into the 2.0 Kubernetes equivalent. In 1.6, the most common orchestration used was Rancher's own engine called Cattle. The following blogs (that will be converted in an official guide) explain and educate our Cattle users on running workloads in a Kubernetes environment.
If you are an existing Kubernetes user on Rancher 1.6, you only need to review the [Get Started](#1-get-started) section to prepare you on what to expect on a new 2.0 Rancher cluster.
## Kubernetes Basics
Rancher 2.0 is built on the [Kubernetes](https://kubernetes.io/docs/home/?path=users&persona=app-developer&level=foundational) container orchestrator. This shift in underlying technology for 2.0 is a large departure from 1.6, which supported several popular container orchestrators. Since Rancher is now based entirely on Kubernetes, it's helpful to learn the Kubernetes basics.
The following table introduces and defines some key Kubernetes concepts.
| **Concept** | **Definition** |
| ----------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Cluster | A collection of machines that run containerized applications managed by Kubernetes. |
| Namespace | A virtual cluster, multiple of which can be supported by a single physical cluster. |
| Node | One of the physical (or virtual) machines that make up a cluster. |
| Pod | The smallest and simplest Kubernetes object. A pod represents a set of running [containers](https://kubernetes.io/docs/concepts/overview/what-is-kubernetes/#why-containers) on your cluster. |
| Deployment | An API object that manages a replicated application. |
| Workload | Units of work that are running on the cluster, these can be pods or deployments. |
## Migration Cheatsheet
Because Rancher 1.6 defaulted to our Cattle container orchestrator, it primarily used terminology related to Cattle. However, because Rancher 2.0 uses Kubernetes, it aligns with the Kubernetes naming standard. This shift could be confusing for people unfamiliar with Kubernetes, so we've created a table that maps terms commonly used in Rancher 1.6 to their equivalents in Rancher 2.0.
| **Rancher 1.6** | **Rancher 2.0** |
| --- | --- |
| Container | Pod |
| Services | Workload |
| Load Balancer | Ingress |
| Stack | Namespace |
| Environment | Project (Administration)/Cluster (Compute)
| Host | Node |
| Catalog | Helm |
<br/>
More detailed information on Kubernetes concepts can be found in the
[Kubernetes Concepts Documentation](https://kubernetes.io/docs/concepts/).
## Migration Plan
<!-- TOC -->
- [1. Get Started](#1-get-started)
- [2. Migrate Applications](#2-migrate-applications)
- [3. Expose Your Services](#3-expose-your-services)
- [4. Monitor Your Applications](#4-monitor-your-applications)
- [5. Schedule Deployments](#5-schedule-deployments)
- [6. Service Discovery](#6-service-discovery)
<!--- [7. Load Balancing](#7-load-balancing)-->
<!-- /TOC -->
## 1. Get Started
As a Rancher 1.6 user who's interested in moving to 2.0, how should you get started with migration? The following blog provides a short checklist to help with this transition.
Blog Post: [Migrating from Rancher 1.6 to Rancher 2.0—A Short Checklist](https://rancher.com/blog/2018/2018-08-09-migrate-1dot6-setup-to-2dot0/)
## 2. Migrate Applications
In Rancher 1.6, you launch applications as _services_ and organize them under _stacks_ in an _environment_, which represents a compute and administrative boundary. Rancher 1.6 supports the Docker compose standard and provides import/export for application configurations using the following files: `docker-compose.yml` and `rancher-compose.yml`. In 2.0 the environment concept doesn't exist. Instead it's replaced by:
- **Cluster:** The compute boundary.
- **Project:** An administrative boundary.
The following article explores how to map Cattle's stack and service design to Kubernetes. It also demonstrates how to migrate a simple application from Rancher 1.6 to 2.0 using either the Rancher UI or Docker Compose.
Blog Post: [A Journey from Cattle to Kubernetes!](https://rancher.com/blog/2018/2018-08-02-journey-from-cattle-to-k8s/)
## 3. Expose Your Services
In Rancher 1.6, you could provide external access to your applications using port mapping. This article explores how to publicly expose your services in Rancher 2.0. It explores both UI and CLI methods to transition the port mapping functionality.
Blog Post: [From Cattle to Kubernetes—How to Publicly Expose Your Services in Rancher 2.0](https://rancher.com/blog/2018/expose-and-monitor-workloads/)
## 4. Monitor Your Applications
Rancher 1.6 provided TCP and HTTP healthchecks using its own healthcheck microservice. Rancher 2.0 uses native Kubernetes healthcheck support instead. This article overviews how to configure it in Rancher 2.0.
Blog Post: [From Cattle to Kubernetes—Application Healthchecks in Rancher 2.0](https://rancher.com/blog/2018/2018-08-22-k8s-monitoring-and-healthchecks/)
## 5. Schedule Deployments
Scheduling application containers on available resources is a key container orchestration technique. The following blog reviews how to schedule containers in Rancher 2.0 for those familiar with 1.6 scheduling labels (such as affinity and anti-affinity). It also explores how to launch a global service in 2.0.
Blog Post: [From Cattle to Kubernetes—Scheduling Workloads in Rancher 2.0](https://rancher.com/blog/2018/2018-08-29-scheduling-options-in-2-dot-0/)
## 6. Service Discovery
Rancher 1.6 provides service discovery within and across stacks using its own internal DNS microservice. It also supports pointing to external services and creating aliases. Moving to Rancher 2.0, you can replicate this same service discovery behavior. The following blog reviews this topic and the solutions needed to achieve service discovery parity in Rancher 2.0.
Blog Post: [From Cattle to Kubernetes—Service Discovery in Rancher 2.0](https://rancher.com/blog/2018/2018-09-04-service_discovery_2dot0/)
<!--## 7. Load Balancing
How to achieve TCP/HTTP load balancing and configure hostname/path-based routing in Rancher 2.0.
Blog Post: Coming soon!
In Rancher 1.6, a Load Balancer was used to expose your applications from within the Rancher environment for access externally. In Rancher 2.0, the concept is the same. There is a Load Balancer option to expose your services. In the language of Kubernetes, this function is more often referred to as an **Ingress**. In short, Load Balancer and Ingress play the same role.-->
@@ -54,13 +54,16 @@ ignore_docker_version: true
### Kubernetes Version
You can select which version of Kubernetes to install for your cluster. These options are the Kubernetes versions made available in Rancher v2.x. The current default Kubernetes version used by RKE is `v1.10.3-rancher2-1`. If a version is defined in `kubernetes_version` and is not found in this list, the default is used.
You can select which version of Kubernetes to install for your cluster. These options are the Kubernetes versions made available in Rancher v2.x. The current default Kubernetes version used by RKE is `v1.11.1-rancher1-1`. If a version is defined in `kubernetes_version` and is not found in this list, the default is used.
Kubernetes version|
-----------------|
v1.11.1-rancher1-1|
v1.10.5-rancher1-2|
v1.10.3-rancher2-1|
v1.10.1-rancher2-1|
v1.10.0-rancher1-1|
v1.9.7-rancher2-2|
v1.9.7-rancher2-1|
v1.9.5-rancher1-1|
v1.8.11-rancher2-1|
@@ -74,7 +77,7 @@ There are two ways to select a Kubernetes version:
- Using the configuration option `kubernetes_version`
```yaml
kubernetes_version: "v1.10.3-rancher2-1"
kubernetes_version: "v1.11.1-rancher1-1"
```
In case both are defined, the system images configuration will take precedence over `kubernetes_version`.
@@ -3,11 +3,11 @@ title: User-Defined Add-Ons
weight: 263
---
Besides the [network plug-in]({{< baseurl >}}/rke/v0.1.x/en/config-options/network-plugins/) and [ingress controllers]({{< baseurl >}}/rke/v0.1.x/en/config-options/ingress-controllers/), you can define any add-on that you want deployed after the Kubernetes cluster is deployed.
Besides the [network plug-in]({{< baseurl >}}/rke/v0.1.x/en/config-options/add-ons/network-plugins) and [ingress controllers]({{< baseurl >}}/rke/v0.1.x/en/config-options/add-ons/ingress-controllers/), you can define any add-on that you want deployed after the Kubernetes cluster is deployed.
There are two ways that you can specify an add-on.
- [In-line Add-ons](#inline-add-ons)
- [In-line Add-ons](#in-line-add-ons)
- [Referencing YAML Files for Add-ons](#referencing-yaml-files-for-add-ons)
> **Note:** When using user-defined add-ons, you *must* define a namespace for *all* your resources, otherwise they will end up in the `kube-system` namespace.
@@ -20,7 +20,8 @@ As of v0.1.8, RKE will update an add-on if it is the same name.
Prior to v0.1.8, update any add-ons by by using `kubectl edit`.
## In-line Addons
## In-line Add-ons
To define an add-on directly in the YAML file, make sure to use the YAML's block indicator `|-` as the `addons` directive is a multi-line string option. It's possible to specify multiple YAML resource definitions by separating them using the `---` directive.
```yaml
@@ -3,7 +3,7 @@ title: AWS Cloud Provider
weight: 251
---
To enable the AWS cloud provider, there are no configuration options. You only need to set the name as `aws`. In order to use the AWS cloud provider, all cluster nodes must have already been configured with an appropriate IAM role.
To enable the AWS cloud provider, there are no configuration options. You only need to set the name as `aws`. In order to use the AWS cloud provider, all cluster nodes must have already been configured with an [appropriate IAM role](#iam-requirements) and your AWS resources must be [tagged with a cluster ID](#tagging-amazon-resources).
```yaml
cloud_provider:
@@ -53,3 +53,31 @@ In order to use Elastic Load Balancers (ELBs) and EBS with Kubernetes, the node(
]
}
```
## Tagging Amazon Resources
Any resources used in a Kubernetes cluster with the Amazon cloud provider must be tagged with a cluster ID.
[Amazon Documentation: Tagging Your Amazon EC2 Resources](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html)
The following resources need to tagged with a `ClusterID`:
- **Nodes**: All hosts added in Rancher.
- **Subnet**: The subnet used for your cluster
- **Security Group**: The security group used for your cluster.
>**Note:** Do not tag multiple security groups. Tagging multiple groups generates an error when creating Elastic Load Balancer.
The tag that should be used is:
```
Key=kubernetes.io/cluster/<CLUSTERID>, Value=owned
```
`<CLUSTERID>` can be any string you choose. However, the same string must be used on every resource you tag. Setting the tag value to `owned` informs the cluster that all resources tagged with the `<CLUSTERID>` are owned and managed by this cluster.
If you share resources between clusters, you can change the tag to:
```
Key=kubernetes.io/cluster/CLUSTERID, Value=shared
```
@@ -101,4 +101,4 @@ If the Docker socket is different than the default, you can set the `docker_sock
### Labels
You have the ability to add an arbitrary map of labels for each node. It can be used when using the [ingress controller's]({{< baseurl >}}/rke/v0.1.x/en/config-options/ingress-controllers/) `node_selector` option.
You have the ability to add an arbitrary map of labels for each node. It can be used when using the [ingress controller's]({{< baseurl >}}/rke/v0.1.x/en/config-options/add-ons/ingress-controllers/) `node_selector` option.
@@ -46,10 +46,10 @@ services:
```
When a cluster is launched with the etcd snapshot service enabled, you can view the `etcd-snapshot` logs to confirm backups are being created automatically.
When a cluster is launched with the etcd snapshot service enabled, you can view the `etcd-rolling-snapshots` logs to confirm backups are being created automatically.
```
$ docker logs etcd-snapshot
$ docker logs etcd-rolling-snapshots
time="2018-05-04T18:39:16Z" level=info msg="Initializing Rolling Backups" creation=1m0s retention=24h0m0s
time="2018-05-04T18:40:16Z" level=info msg="Created backup" name="2018-05-04T18:40:16Z_etcd" runtime=108.332814ms
-41
View File
@@ -1,41 +0,0 @@
[[version]]
number = "1.6.16"
os = "Ubuntu 14.04, Ubuntu 16.04, RHEL/CentOS 7.2-7.4* (Rancher 1.6.7+ supports RHEL 7.4), RancherOS 1.1.3"
kubernetes = "1.9.4 + Docker 1.12.6, 1.13.1, 17.03.2-ce and ee"
docker = "1.12.3+, 1.13.x, 17.03.x-ce and ee, 17.06.x-cc and ee, 17.09.x-cc and ee, 17.12.x-cc and ee"
[[version]]
number = "1.5.10"
os = "Ubuntu 14.04, Ubuntu 16.04, RHEL/CentOS 7.2-7.3, RancherOS 0.8.1"
kubernetes = "1.5.4 + Docker 1.12.3 – 1.12.6"
docker = "1.12.3+, 1.13.x, 17.03.x-ce and ee, 17.06.x-cc and ee"
[[version]]
number = "1.4.3"
os = "Ubuntu 14.04, Ubuntu 16.04, RHEL/CentOS 7.2-7.3, RancherOS 0.8.1"
kubernetes = "1.5.2 + Docker 1.12.3 – 1.12.6"
docker = "1.12.3-1.12.6"
[[version]]
number = "1.3.5"
os = "Ubuntu 14.04, Ubuntu 16.04, RHEL/CentOS 7.2-7.3, RancherOS 0.7.1"
kubernetes = "1.5.1 + Docker 1.12.3 – 1.12.6"
docker = "1.12.3-1.12.6"
[[version]]
number = "1.2.4"
os = "Ubuntu 14.04, Ubuntu 16.04, RHEL/CentOS 7.2-7.3, RancherOS 0.7.1"
kubernetes = "1.4.6 + Docker 1.12.3 – 1.12.6"
docker = "1.12.3-1.12.6"
[[version]]
number = "1.1.4"
os = "Ubuntu 14.04, Ubuntu 15.10, RHEL/CentOS 7.2-7.3, RancherOS 0.5.0"
kubernetes = "1.2.4 + Docker 1.10.3"
docker = "1.10.3"
[[version]]
number = "1.0.2"
os = "Ubuntu 14.04, Ubuntu 15.10, RHEL/CentOS 7.2-7.3, RancherOS 0.4.0"
kubernetes = "1.2.4 + Docker 1.10.3"
docker = "1.10.3"
-79
View File
@@ -1,79 +0,0 @@
[[testimonial]]
company = "IBM Analytics"
logo = "ibm.png"
source = "Leon Katsnelson"
position = "Director & CTO, Emerging Technologies"
quote = "We’ve been able to migrate a massive implementation of VMs to containers using Rancher, saving money and improving the service we deliver to more than 1 million users."
[[testimonial]]
company = "LateRooms.com"
logo = "laterooms.png"
source = "Steve Elliot"
position = "Performance and Reliability Specialist"
quote = "Moving from VMs to Rancher’s orchestration has been a massive benefit for us."
[[testimonial]]
company = "Kloeckner"
logo = "kloeckner.png"
source = "Nick Thomas"
position = "Senior Developer"
quote = "It’s much easier for us to sell ideas internally with the tools and cohesive UI Rancher provides. For us, it’s made microservices tangible for our entire organization."
[[testimonial]]
company = "Institute for Health Metrics and Evaluation (IHMEI)"
logo = "ihmei.jpg"
source = "Andrew Ernst"
position = "IT Operations Manager"
quote = "Anything we can do to make the deployment process simpler and faster is an excellent way for us to focus on what we do best."
[[testimonial]]
company = "TNO"
logo = "tno.png"
source = "Johan van der Geest"
position = "Scientist Innovator"
quote = "With Rancher, the time it takes us to set up development and production environments and to upgrade services on these environments has decreased significantly."
[[testimonial]]
company = "Blippar"
logo = "blippar.png"
source = "Clement Dal Palu"
position = "Senior Data Architect, Blippar"
quote = "With Rancher, we get to finally focus on coding."
[[testimonial]]
company = "DemandBase"
logo = "demandbase.jpeg"
source = "Michael Waltz"
position = "Senior DevOps Engineer at Demandbase"
quote = "Moving to containers and leveraging Rancher allowed us to reduce deploy times from hours to minutes, while helping to reduce our infrastructure footprint."
[[testimonial]]
quote = "Rancher has made running and migrating to Docker \"Simpler, Better, faster\" right from inception all the way to Production. It is an awesome product and suite."
logo = "dstv.png"
source = "Greg Van Wyngaard"
position = "Systems Architect"
company = "DStv"
[[testimonial]]
quote = "Rancher hits that sweet spot of providing powerful container orchestration capabilities without adding too many layers of complexity"
logo = "BravissimoLtd.png"
source = "Luke Bennett"
position = "Customer Systems Development Manager"
company = "Bravissimo Ltd"
[[testimonial]]
quote = "Rancher's user-friendy UI, the way you can manage containers, the services, the easy installation, really make the difference."
logo = "orange.png"
source = "Florian Le Galudec"
position = "Ops Engineer"
company = "Orange France"
[[testimonial]]
quote = "Using Rancher 2.0 increases our efficiency and provides our engineering teams with more time to focus on creating the next great innovations that will help Sling TV build upon its leadership position"
logo = "sling.png"
source = "Brad Linder"
position = "Cloud Native and Big Data Evangelist"
company = "Sling TV"
-105
View File
@@ -1,105 +0,0 @@
[[partner]]
name = "addteq"
logo = "partner-addteq.png"
site = "http://www.addteq.com/"
description = "Addteq has been a leader of providing business solutions to Enterprise clients for more than 10 years. Through the use of DevOps automation, Addteq strives on creating innovative solutions to solve business processes. Clients depend on Addteq to provide Atlassian solutions, create custom add-ons, conduct training, offer hosting and staffing, perform DevOps services, and provide overall support services. Being named one of Atlassian’s Platinum Solution Partners, Addteq delivers superior results within a range of industries, specifically to major companies such as Cisco, MetLife and Bank of America. Addteq’s headquarters is found in Princeton, New Jersey, with offices around the globe."
type = [ "Service Provider", "Reseller" ]
[[partner]]
name = "cloudsky"
logo = "partner-cloudsky.png"
site = "https://www.cloudssky.com/en/"
description = "Clouds Sky GmbH is a German company specialized in cloud computing consulting and development. Our dedicated team of cloud computing experts advises customers by Multi-Cloud-Management, Microservices development, Orchestration with Kubernetes, Cloud Native Technology and DevOps."
type = [ "Consulting", "Reseller" ]
[[partner]]
name = "evry"
logo = "partner-evry.png"
site = "https://www.evry.com/en/"
description = "EVRY is one of the leading IT companies in the Nordic region and has a strong local and regional presence in 50 Nordic towns and cities. Through its insight, solutions and technology, EVRY contributes to the development of the information society of the future and so creates value for the benefit of its customers and for society as a whole. EVRY combines in-depth industry knowledge and technical expertise with a local delivery model and international strength."
type = [ "Service Provider" ]
[[partner]]
name = "exops"
logo = "partner-exops.png"
site = "http://ezops.com.br/"
description = "EZOps is a Brazilian startup focusing on DevOps implementation services."
type = [ "Consulting", "Service Provider", "Reseller" ]
[[partner]]
name = "Global Web Data Services Corp"
logo = "partner-globalweb.png"
site = "http://www.globalweb.com.br/"
description = "A Globalweb Outsourcing é especialista em tecnologia para o seu segmento. A nossa nuvem é uma combinação completa de produtos e serviços de TI, que se adaptam ao seu nível de necessidade e estrutura. Com foco na otimização dos processos organizacionais, as soluções são desenvolvidas para auxiliar com agilidade e precisão as tarefas diárias, proporcionando aos gestores focarem no que realmente interessa: nos negócios."
type = [ "Consulting", "Service Provider", "Reseller" ]
[[partner]]
name = "instruct"
logo = "partner-instruct.png"
site = "http://instruct.com.br/"
description = "Instruct offers IT infrastructure solutions focused on automation, configuration management and agile principles. Our highly qualified team helps organizations improve their workflow when deploying applications and new services, enabling them to save time and reduce costs and errors. Our services include: DevOps consulting, infrastructure automation, continuous integration and delivery development."
type = [ "Consulting", "Reseller" ]
[[partner]]
name = "kangaroot"
logo = "partner-kangaroot.png"
site = "http://kangaroot.net/"
description = "At Kangaroot, we design, implement, maintain & support IT infrastructure based on Linux & Open Source software. With our consulting, organisations lower their IT capital costs & operational expenses. Our certified engineers help you reduce over-provisioning, consolidate servers and increase business agility and continuity. Ask us how!"
type = [ "Consulting", "Reseller" ]
[[partner]]
name = "mobilab"
logo = "partner-mobilab.png"
site = "https://mobilabsolutions.com/"
description = "MobiLab Solutions GmbH is a German based software engineering company with offices in Cologne and Berlin. Whether we’re developing a mobile app which helps a multinational restaurant franchise offer a more engaging in-store experience to their customers, or a key piece of infrastructure in a global retailer’s core operations, we build it from ground up and tailor it to the customer’s needs.Our engineers cover full stack software solutions and our work touches thousands of users. Areas we are heavily experienced in are (mobile) payment, (mobile) ordering, infrastructure and master data management. On top of our solutions we apply awesome designs to give our end-users a unique experience."
type = [ "Consulting", "Reseller" ]
[[partner]]
name = "nelsoncash"
logo = "partner-nelsoncash.png"
site = "http://nelsoncash.com/"
description = "Nelson Cash is a creative studio with roots in Chicago, New York, and Los Angeles. Named after two artists defined by their musical storytelling, Nelson Cash is a team that approaches creative from a different perspective. We believe in fostering relationships with our clients on a simple guiding principle – your project is unique, and unique challenges require unique solutions. Our perspective allows us to strategize wisely, design quickly, and develop holistically from the ground up."
type = [ "Consulting" ]
[[partner]]
name = "novisync"
logo = "partner-novisync.png"
site = "http://novisync.com/"
description = "Founded in 2007. Novisync Inc., a global IT Solutions Provider and SystemsIntegrator,can Architect, Plan, Design, Implement and administer environments which cater to all the industry verticals and sizes. With our large team of certified, professional engineers we provide IT services and solutions, professional services, and managed services in IT Infrastructure, cloud management, converged and hyper converged infrastructure, data center management, networking (Routing, switching, load balancing), storage/data, virtualization, software development, application development, monitoring and security."
type = [ "Reseller" ]
[[partner]]
name = "qualimente"
logo = "partner-qualimente.png"
site = "https://www.qualimente.com/"
description = "QualiMente helps customers build and deploy containerized application delivery pipelines and platforms in the Cloud and on-premise using modern Lean and DevOps techniques."
type = [ "Consulting" ]
[[partner]]
name = "seqvence"
logo = "partner-seqvence.png"
site = "http://seqvence.com/"
description = "At Seqvence, we are convinced that programmability throughout the whole infrastructure stack is an inevitable outcome in the current race for automation. We founded Seqvence to help businesses transition to that future, by adopting the necessary tools and technologies."
type = [ "Consulting", "Reseller" ]
[[partner]]
name = "simac"
logo = "partner-simac.png"
site = "https://www.simac.com/"
description = "Simac Techniek N.V., founded in 1971, is a technology company in the Benelux and Central Europe. Simac supplies and maintains high-quality technology for improving the business processes of large and medium-sized organizations."
type = [ "Consulting", "Reseller" ]
[[partner]]
name = "tooit"
logo = "partner-tooit.png"
site = "http://www.tooit.com/"
description = "Tooit is a digital product development studio, committed to developing and delivering flexible web solutions from Argentina to the world. Our main expertise is in CMS development, integrating cloud computing, Docker containers and CI/CD processes to build complete and high available digital solutions.Our professional team includes expert engineers with broad experience in offshore delivery."
type = [ "Consulting" ]
[[partner]]
name = "treeptik"
logo = "partner-treeptik.png"
site = "http://treeptik.fr/"
description = "Treeptik works with customers to accelerate their business, shortening the path between innovation and final product. With deep DevOps, container, and Rancher expertise, Treeptik’s team of experts goes the extra mile to provide customers with simplified IT solutions, and well-designed, high-performance applications. Treeptik is also the developer of CloudUnit, a comprehensive set of production tools for Java developers, based on Docker."
type = [ "Consulting" ]
-35
View File
@@ -1,35 +0,0 @@
[[table]]
rancher = "1.6.X"
release = "June 8, 2017"
full = "September 31, 2019"
maintain = "March 1, 2020"
[[table]]
rancher = "1.5.10"
release = "March 21, 2017"
full = "September 1, 2017"
maintain = "March 1, 2018"
[[table]]
rancher = "1.4.3"
release = "February 13, 2017"
full = "August 1, 2017"
maintain = "February 1, 2018"
[[table]]
rancher = "1.3.5"
release = "January 13, 2017"
full = "July 1, 2017"
maintain = "January 1, 2018"
[[table]]
rancher = "1.2.4"
release = "December 1, 2016"
full = "June 1, 2017"
maintain = "December 1, 2017"
[[table]]
rancher = "1.1.4"
release = "June 30, 2016"
full = "December 1, 2016"
maintain = "June 30, 2017"
[[table]]
rancher = "1.0.2"
release = "March 28, 2016"
full = "June 30, 2016"
maintain = "March 28, 2017"
-186
View File
@@ -1,186 +0,0 @@
[[testimonial]]
quote = "Using Rancher 2.0 increases our efficiency and provides our engineering teams with more time to focus on creating the next great innovations that will help Sling TV build upon its leadership position"
logo = "octoperf.png"
source = "name"
position = "Founder"
company = "Sling TV"
[[testimonial]]
quote = "Using Rancher 2.0 increases our efficiency and provides our engineering teams with more time to focus on creating the next great innovations that will help Sling TV build upon its leadership position"
logo = "octoperf.png"
source = "name"
position = "Founder"
company = "Sling TV"
[[testimonial]]
quote = "Rancher improved our scalability by providing an amazing all-in-one Docker cluster orchestration tool."
logo = "octoperf.png"
source = "Quentin Hamard"
position = "Founder"
company = "Octoperf"
[[testimonial]]
quote = "Rancher is the most advanced product that we have been testing during our Docker evaluation. The user-friendy UI, the way you can manage containers, the services, the easy installation, are the points which are making the difference. The Rancher team was there when we needed it, for example to help us on load-balancing issues. We believe in the product, and have planned to use it with Jenkins and Docker to make a continuous deployment solution for our application."
logo = "orange-logo.png"
source = "Florian Le Galudec"
position = "Ops Engineer"
company = "Orange France"
[[testimonial]]
quote = "After trying many solutions and finding faults with them, we settled on Rancher.  Rancher removes a massive amount of the manual effort needed to build a stable Docker Infrastructure and CI/CD pipeline.  Its batteries-included-but-removable nature means you never have to bend it to your needs. Every “edge case” in our company infrastructure happens naturally in Rancher, and as a result, runs without hiccups."
logo = "HigherEducation.png"
source = "Will Stern"
position = "Software Architect"
company = "HigherEducation"
[[testimonial]]
quote = "We rely on Rancher to manage our various microservices and core API in both our lab and multiple production environments. Having a global footprint with multiple facilities is tricky to begin with, and Rancher makes it that much easier. Knowing we have a reliable container management solution in Rancher is one less thing our operators have to lie awake at night thinking about!"
logo = "packet.png"
source = "Aaron Welch"
position = "SVP Product"
company = "Packet"
[[testimonial]]
quote = "Rancher is just awesome! It gives us the best of Docker and cloud philosophy in an out-of-the box, multi-tenant Container-as-a-Service solution. Our dev team gets a real self-service PaaS, and our ops team can easily manage multiple environments."
logo = "makazi.png"
source = "Alexis Ducastel"
position = "Tech Ops Director"
company = "Makazi"
[[testimonial]]
quote = "After trying a number of tools and approaches, we found that Rancher hits that sweet spot of providing powerful container orchestration capabilities without adding too many layers of complexity and additional concepts on top of Docker itself. This has helped prevent the learning curve from getting too steep and made the introduction of new development and deployment workflows much easier."
logo = "BravissimoLtd.png"
source = "Luke Bennett"
position = "Customer Systems Development Manager"
company = "Bravissimo Ltd"
[[testimonial]]
quote = "Last year I was playing around with Docker and SpringCloud to determine the feasibility of converting one of my client's monolithic applications to a microservice based architecture. Docker is great, but my client as clamoring for a more elegant user experience that is backed up by a robust and yet easy to use orchestration solution. My attention turned to Rancher and I have not looked back since. Rancher's UI and feature set is top-notch. Better yet, the team behind it is amazing! They're experts in all areas of operations, incredibly responsive and truly focused on making their product the best in its class"
logo = "nuarch.png"
source = "Dan MacDonald"
position = "Consultant"
company = "Nuarch.com"
[[testimonial]]
quote = "For enterprises that support diverse DevOps groups, it is imperative to provide visibility and manageability into the ecosystem. Rancher embraces this by following the Docker principal \"batteries included but removable.\" Use any scheduler, overlay network or storage solution across multiple environments and disperse teams, and Rancher will provide the insight and control needed to wrangle cattle wherever they may roam."
logo = "sungard.png"
source = "Kevin McGrath"
position = "CTO Architect"
company = "Sungard Availability Services "
[[testimonial]]
quote = "By migrating from a physical box to a Rancher controlled Docker infrastructure, we have been able to lower the amount of time our teams spend working with builds, and it allows us to quickly scale up or down seamlessly. Rancher has becoming a powerful tool in our DevOps arsenal and I would highly recommend it to anyone."
logo = "sugarcrm.png"
source = "Jon Whitcraft"
position = "Sr. Devops Engineer"
company = "SugarCRM"
[[testimonial]]
quote = "We have been using Docker for a long time to support our need for both shared and consistent application deployments across a hybrid cloud+bare metal infrastructure. The key piece that was consistently missing (despite a lot of searching) was the marriage of infrastructure and application orchestration. We immediately saw the promise of Rancher after testing it early in their beta phase. We are now running 2 distributed production applications, along with several internal apps, fully managed through Rancher. The Rancher team’s professionalism and responsiveness to requests/inquiries/bug reports/etc has been outstanding and the product they have built has quickly become a cornerstone of our tech stack"
logo = "pitrho.png"
source = "Gilman Callsen"
position = "co-Founder and CTO"
company = "of Pit Rho"
[[testimonial]]
quote = "Rancher provides container orchestration for the masses. Object Partners consistently recommends Rancher to many of our clients due to its intuitive user experience, simplistic installation process, and minimal infrastructure requirements. The Rancher team has delivers a great product, provides fantastic support, and continuously engages with their community of users. We love Rancher and believe you will too."
logo = "objectpartners.png"
source = "John Engelman"
position = "Chief Technologist"
company = "Object Partners"
[[testimonial]]
quote = "Rancher is the only tool on the market that provides the full spectrum of orchestration, ACL and UI while still being easy to install and simple to understand. The developers of Rancher come from thoughtful distributed systems companies and it shows in their product."
logo = "VitalsLogo.png"
source = "Topper Bowers"
position = "Director of Engineering"
company = "Vitals"
[[testimonial]]
quote = "After trying several other orchestration solutions we found Rancher to be the most feature rich, stable and well-designed system out there. Not only does it provide powerful console integrations for our developers, they tie it together with a super easy to use interface that makes it a joy to work with!"
logo = "spyjack.png"
source = "Rik Nauta<z>CEO "
company = "Spyjack.io"
[[testimonial]]
quote = "Rancher has made running and migrating to Docker \"Simpler, Better, faster\" right from inception all the way to Production. The entire Rancher Suite is reliable with rapid time to deliver for services. I have not found a better collection of services and support from any other provider. It is an awesome product and suite."
logo = "dstv.png"
source = "Greg Van Wyngaard"
position = "Systems Architect"
company = "DStv"
[[testimonial]]
quote = "Rancher saved us a ton of time while bringing Docker into production. Rancher's core concepts are intuitive enough that we could get up and running in less than a day. As a result, we now can introduce new services with little to no operational overhead."
logo = "bloom-logo.png"
source = "Michael Wasser"
position = "CEO"
company = "BloomAPI"
[[testimonial]]
quote = "Rancher solves all of the critical issues for running containers in production, including host management, container networking, managing load balancers, resource tagging, scheduling, and scaling workloads. The UI is beautiful, and makes it so easy to get running with Docker."
logo = "bitspace.png"
source = "Alex Trauzzi"
position = "CTO"
company = "Bit Space Development"
[[testimonial]]
quote = "We considered a number of container management platforms before deciding to deploy Rancher. It is a simple, practical and fully functional container provisioning platform. Rancher’s UI makes managing containers appear simple, but the software is actually incredibly powerful. With Rancher we can achieve enterprise-scale container deployments instantly. Rancher is a fantastic product, with a bright future."
logo = "unitedelectronics.png"
source = "Bingli Shi"
position = "R&D Center, VP"
company = "United Electronics"
[[testimonial]]
quote = "Rancher is a powerful and easy-to-use container deployment and management platform. Rancher is a great choice for companies looking to quickly deploy and use containers in the cloud. RancherOS is a complete OS for supporting containers. The design philosophy of Rancher and RancherOS is excellent."
logo = "cloudsoar.png"
source = "James Dai"
position = "CTO"
company = "Cloudsoar "
[[testimonial]]
quote = "Rancher is a user friendly container management platform with broad functionality. It is easy to deploy, supports container ecosystems such as Kubernetes and Mesos, and also provides an excellent container data persistence solution. The architecture of Rancher is light weight which is in line with how we are deploying containers. Rancher makes container management easy and convenient."
logo = "cntv.png"
source = "Qin He"
position = "System Engineer"
company = "CNTV"
[[testimonial]]
quote = "Before we started using Rancher, I needed a few days to install and deploy a new software package. Now, leveraging the Rancher Catalog, I can deploy an application in minutes. It is very fast and incredibly easy."
logo = "Tianhe2.png"
source = "Tony Huo"
position = "Senior Engineer, Tianhe2 (www.nscc-gz.cn)"
[[testimonial]]
quote = "Linksame develops software for large enterprises. Introducing Rancher has dramatically reduced the difficulty of our product development and management processes. We’re using Rancher and Docker to improve all aspects of developing and maintaining our software platform."
logo = "linksame.png"
source = "Nengwei Yao"
position = "General Manager & Founder"
company = "Linksame Inc."
[[testimonial]]
quote = "Since we started using Docker, we have tried a number of tools to simplify the orchestration of containers so that our developers get the greatest level of flexibility. We chose Rancher, because it exposes the native Docker tool set while adding a powerful set of tools around it. We have used Rancher to isolate and manage all of our games running in AWS."
logo = "cerebralfix.png"
source = "Alister Galpin"
position = "Server Engineer,"
company = "Cerebralfix, Ltd"
[[testimonial]]
quote = "After trying several approaches, getting to know Rancher has dramatically improved the way we work. Rancher is an open-source project that makes it possible to deploy our complex solution across multiple computing clusters for various clients without adding a big learning layer on top of Docker concepts... what more can you ask for?"
logo = "instore.png"
source = "Romain Di Giorgio"
position = "DevOps"
company = "instore.digital"
[[testimonial]]
quote = "When building the Nuxeo cloud infrastructure, we tried several approaches for managing Docker based deployment; we even started building our own container orchestration system. Rancher provides a simple abstraction with a good API and administration UI to manage Containers as a service while allowing us the freedom to use Docker Swarm or Kubernetes if needed."
logo = "nuxeo.png"
source = "Thierry Delprat"
position = "CTO,"
company = "Nuxeo"
[[testimonial]]
quote = "Rancher is not only a turnkey solution for containers; it's a total shift in the way the new cloud is approached. We have had great success where continuous delivery is key and the platform is utilised by all users types from developer to product owner."
logo = "industrieit.png"
source = "Chris Fordham"
position = "Cloud Platform Architect"
company = "Industrie IT"
+9 -4
View File
@@ -13,7 +13,8 @@ import buffer from 'vinyl-buffer';
import babelify from 'babelify';
import watch from 'gulp-watch';
const atomicalgolia = require("atomic-algolia");
const fs = require('fs');
// const fs = require('fs');
import uglify from 'gulp-uglify';
const $ = gulpLoadPlugins();
const browserSync = require('browser-sync').create();
@@ -54,14 +55,14 @@ gulp.task('build-dev', (cb) => {
});
gulp.task('hugo', (cb) => {
return spawn('hugo', ['--buildFuture', '--baseURL=/docs'], { stdio: 'inherit' }).on('close', (/* code */) => {
return spawn('hugo', ['--buildFuture', '--baseURL=https://rancher.com/docs'], { stdio: 'inherit' }).on('close', (/* code */) => {
browserSync.reload();
cb();
});
});
gulp.task('hugo-staging', (cb) => {
return spawn('hugo', ['--buildDrafts', '--buildFuture', '--baseURL=/docs'], { stdio: 'inherit' }).on('close', (/* code */) => {
return spawn('hugo', ['--buildDrafts', '--buildFuture', '--baseURL=https://staging.rancher.com/docs'], { stdio: 'inherit' }).on('close', (/* code */) => {
browserSync.reload();
cb();
});
@@ -127,14 +128,17 @@ gulp.task('build:vendor', () => {
return b.bundle()
.pipe(source('vendor.js'))
.pipe(buffer())
.pipe(uglify())
.pipe(gulp.dest('static/js'));
});
gulp.task('build:app', () => {
const debug = isProduction ? false : true;
return browserify({
entries: ['./node_modules/rancher-website-theme/static/js/base.js', './src/js/app.js'],
extensions: ['.js',],
debug: true,
debug: debug,
insertGlobals: true
})
.external(vendors) // Specify all vendors as external source
@@ -142,6 +146,7 @@ gulp.task('build:app', () => {
.bundle()
.pipe(source('app.js'))
.pipe(buffer())
.pipe(uglify())
.pipe(gulp.dest('static/js'));
});
+34 -35
View File
@@ -28,59 +28,58 @@
{{ .Content }}
{{ range (.Paginator 5).Pages }}
{{ $paginator := .Scratch.Get "paginator" }}
{{ range $paginator.Pages }}
<div class="box m-b-md">
<div class="p-a-sm">
<h3><a href="{{.URL}}">{{.Title}}</a></h3>
<div class="p-a-sm">
<h3><a href="{{.URL}}">{{.Title}}</a></h3>
{{ if .Params.Image }}
<div class="thumbnail"><img src="{{ .Params.Image }}" alt="{{ .Params.Title }}"></div>
{{ if .Params.Image }}
<div class="thumbnail"><img src="{{ .Params.Image }}" alt="{{ .Params.Title }}"></div>
{{end}}
<p>{{ .Summary | safeHTML }}</p>
{{ if .Truncated }}
<div>
<a href="{{ .RelPermalink }}">Read More…</a>
</div>
{{ end }}
</div>
<div class="bg-default">
<div class="row">
{{ with .Params.Author }}
<div class="p-h-sm p-v-xs"><i class="material-icons">person_outline</i> By: {{ . }}</div>
{{end}}
<p>{{ .Summary | safeHTML }}</p>
{{ if .Truncated }}
<div>
<a href="{{ .RelPermalink }}">Read More…</a>
</div>
{{ end }}
</div>
<div class="bg-default">
<div class="row">
{{ with .Params.Author }}
<div class="p-h-sm p-v-xs"><i class="material-icons">person_outline</i> By: {{ . }}</div>
{{ if eq .Section "events" }}
{{ with .Params.EventDate }}
<div class="p-h-sm p-v-xs"><i class="material-icons">event</i> {{ . }}</div>
{{end}}
{{ if eq .Section "events" }}
{{ with .Params.EventDate }}
<div class="p-h-sm p-v-xs"><i class="material-icons">event</i> {{ . }}</div>
{{end}}
{{ else }}
{{ else }}
{{ with .Params.Date }}
<div class="p-h-sm p-v-xs"><i class="material-icons">event</i> {{ .Format "January 2, 2006" }}</div>
{{end}}
{{ with .Params.Date }}
<div class="p-h-sm p-v-xs"><i class="material-icons">event</i> {{ .Format "January 2, 2006" }}</div>
{{end}}
{{end}}
{{ if eq .Section "blog" }}
<div class="p-h-sm p-v-xs"><i class="material-icons">timer</i> Read Time: {{.ReadingTime}} minutes</div>
{{end}}
{{ if eq .Section "blog" }}
<div class="p-h-sm p-v-xs"><i class="material-icons">timer</i> Read Time: {{.ReadingTime}} minutes</div>
{{end}}
{{ with .Params.Location }}
<div class="p-h-sm p-v-xs"><i class="material-icons">location_on</i> {{ . }}</div>
{{end}}
{{ with .Params.Location }}
<div class="p-h-sm p-v-xs"><i class="material-icons">location_on</i> {{ . }}</div>
{{end}}
</div>
</div>
</div>
</div>
{{ end }}
</div>
{{ template "_internal/pagination.html" . }}
<div class="p-v-xs">{{ partial "page-edit.html" . }}</div>
</article>
<!-- {{ with .TableOfContents }}
<div class="offset-watch invisible"></div>
-21
View File
@@ -1,21 +0,0 @@
<table>
<thead>
<tr>
<th>Version</th>
<th>Host OS</th>
<th>Kubernetes*</th>
<th>Docker</th>
</tr>
</thead>
<tbody>
{{ range .Site.Data.compatibility.version }}
<tr>
<td>{{.number}}</td>
<td>{{.os}}</td>
<td>{{.kubernetes}}</td>
<td>{{.docker}}</td>
</tr>
{{ end }}
</tbody>
</table>
-17
View File
@@ -1,17 +0,0 @@
{{ range .Site.Data.homepage.testimonial }}
<li class="js_slide testimonial m-a-sm">
<!-- <hr/> -->
<blockquote class="text-lg text-left p-a-md m-a-0">
<div class="p-b-sm">"{{.quote}}"</div>
<hr class="m-a-0" />
<div class="row middle-md between-md p-a-sm border-right">
<div class="col-md-2 p-a-sm p-l-0">
<img src="{{ .Site.BaseURL }}/img/quotelogos/{{.logo}}" alt="{{.company}}">
</div>
<div class="col-md-10 p-a-0">
<cite class="text-md text-left p-l-sm">{{.source}},<br/>{{.position}}, {{.company}}</cite>
</div>
</div>
</blockquote>
</li>
{{ end }}
+6 -6
View File
@@ -1,8 +1,8 @@
<blockquote>
<p><strong>Note:</strong></p>
<p>The <code>rancher/rancher</code> container is hosted on <a href="https://hub.docker.com/r/rancher/rancher/tags/">DockerHub</a>. If you don't have access to DockerHub, or you are installing Rancher without an Internet connection, refer to how to prepare for an <a href="/docs/rancher/v2.x/en/installation/air-gap-installation/">Air Gap Installation</a>.</p>
<p><strong>Note:</strong></p>
<p>For a list of other Rancher Server tags available, refer to <a href="/docs/rancher/v2.x/en/installation/server-tags/">Rancher Server Tags</a>.</p>
<p><strong>Notes:</strong></p>
<ul>
<li>If you are using RancherOS, make sure you switch the Docker engine to a supported version using <code>sudo ros engine switch docker-17.03.2-ce</code>
</li>
<li>The <code>rancher/rancher</code> container is hosted on <a href="https://hub.docker.com/r/rancher/rancher/tags/">DockerHub</a>. If you don't have access to DockerHub, or you are installing Rancher without an Internet connection, refer to how to prepare for an <a href="/docs/rancher/v2.x/en/installation/air-gap-installation/">Air Gap Installation</a>.</li>
</ul>
</blockquote>
-14
View File
@@ -1,14 +0,0 @@
<div class="row">
{{ range .Site.Data.partners.partner }}
<div class="col-md-3 box m-a-sm">
<img src="{{ .Site.BaseURL }}/img/{{.logo}}" height="50" alt="{{.name}}">
<h3>{{.name}}</h3>
<p>{{.description}}</p>
<span class="row">
{{ range .type }}
<span class="bg-accent tag">{{ . }}</span>
{{ end }}
</span>
</div>
{{ end }}
</div>
@@ -10,10 +10,10 @@
</tr>
<tr>
<td>Small</td>
<td>Up to 10</td>
<td>Up to 5</td>
<td>Up to 50</td>
<td>2</td>
<td>4GB</td>
<td>4</td>
<td>16GB</td>
</tr>
<tr>
<td>Medium</td>
@@ -1,9 +1,7 @@
<div>
<ul>
<li>
<p>Docker</p>
<blockquote><strong>Note:</strong>If you are using RancherOS, make sure you switch the Docker engine to a supported version using <code>sudo ros engine switch docker-17.03.2-ce</code></blockquote>
<p><strong>Supported Versions</strong></p>
<p>A supported version of <a href="https://www.docker.com/">Docker</a> is required.</p>
<p>Supported Versions:</p>
<ul>
<li><code>1.12.6</code></li>
<li><code>1.13.1</code></li>
@@ -11,6 +9,5 @@
</ul>
<br/>
<p><a href="https://docs.docker.com/install/">Docker Documentation: Installation Instructions</a></p>
</li>
</ul>
</div>
-20
View File
@@ -1,20 +0,0 @@
<table>
<thead>
<tr>
<th>Rancher Version</th>
<th>Release Date</th>
<th>End full support</th>
<th>Dend maintainance support</th>
</tr>
</thead>
<tbody>
{{ range .Site.Data.support.table }}
<tr>
<td>{{.rancher}}</td>
<td>{{.release}}</td>
<td>{{.full}}</td>
<td>{{.maintain}}</td>
</tr>
{{ end }}
</tbody>
</table>
-22
View File
@@ -1,22 +0,0 @@
<div class="slider js_slider js_multislides multislides">
<div class="frame js_frame">
<ul class="testimonials slides js_slides">
{{ range .Site.Data.testimonials.testimonial }}
<li class="js_slide testimonial">
<div class="p-a-xs bg-accent">{{.company}}</div>
<div class="p-a-sm">
<img src="{{ .Site.BaseURL }}/img/quotelogos/{{.logo}}" height="50" alt="{{.company}}">
<p>{{.quote}}</p>
<cite>{{.source}}, {{.position}}</cite>
</div>
</li>
{{ end }}
</ul>
</div>
<span class="js_prev prev">
<svg xmlns="http://www.w3.org/2000/svg" width="50" height="50" viewBox="0 0 501.5 501.5"><g><path fill="#2E435A" d="M302.67 90.877l55.77 55.508L254.575 250.75 358.44 355.116l-55.77 55.506L143.56 250.75z"/></g></svg>
</span>
<span class="js_next next">
<svg xmlns="http://www.w3.org/2000/svg" width="50" height="50" viewBox="0 0 501.5 501.5"><g><path fill="#2E435A" d="M199.33 410.622l-55.77-55.508L247.425 250.75 143.56 146.384l55.77-55.507L358.44 250.75z"/></g></svg>
</span>
</div>
-2
View File
@@ -6,8 +6,6 @@
"build": "gulp build",
"build:preview": "gulp build-preview",
"dev": "gulp dev",
"server": "gulp server",
"server:with-drafts": "gulp server:with-drafts",
"cms:delete": "gulp cms-delete",
"algolia": "node build-algolia.js"
},
+1 -1
View File
@@ -28,7 +28,7 @@ Usage:
-d - Build the dev image instead of pulling from the registry
-p PORT - Port to listen on
-t DIR - Use DIR to for the theme, to devlop the theme at the same time
-u - Upload tbe build image after building
-u - Upload the build image after building
EOF
}
+1
View File
@@ -0,0 +1 @@
<mxfile userAgent="Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36" version="9.1.2" editor="www.draw.io" type="device"><diagram id="7ea6640c-60bc-73f1-1f73-8767a7d2ddba" name="Page-1">7VzZcqM4FP0aV8082MVisHm0naVTnZ5JtVMz048yyJgJRgzIWfrrRwKxCIQBg5ckbVclcBGSuMvh6HLxQF1sX28D4G++IQu6A0WyXgfq1UBRDE0if6ngLRbI+liNJXbgWEyWCZbOT8iE7ER751gw5BpihFzs+LzQRJ4HTczJQBCgF77ZGrn8qD6wYUmwNIFblv7tWHgTS6fJdVH5F+jYm2RkWWJHVsB8sgO089h4A0VdR5/48BYkfbH24QZY6CUnUq8H6iJACMdb29cFdKluE7XF591UHE3nHUAPNzlhHJ/wDNwdTGasu+TUueU80/nhN6YT/b8dndQcw1c8BK5jewN1Rk1ARoIB2SDHIlV7eBhGBqVH5an/mp1Ltmz2PxpjFRQlZKbRwLz0FHMJfeAVZbSDyMtcFHAD58xa7O878MxNNIlvwCN+soVRHw8u8GDuKuOuSxcvmkW9lhROO0rkf5BaWCaHXzYOhksfmPToC4lXItvgrcsOpx5Id0y0dUyyTRUY4gA9wUV67epkujAWN+mRJDDGVFGO6+ZaStJEm02ZAjk5/RA5s9kVMxgRBCZDAZnO4xkG2CHhOGPtMPJZbzdg67gUVnzk+45H4nxuuyAM2aTL/s9CgvYIX3MiFg+3EG0hDt5IE3ZUZaHJsGs4YfsvAiDY5EBgymSAYY+d9pzFH9lgIVgRv5NSPD4SHy9ZmDo+b8YAEkcHq6gBVYSPHA9HM9HmA+2KqniHUch0nDOBC9e4UuPEHU3Hsx/pztVwXLboTfQp2iZAK4RR0bl6sI02UTjjqIZSMs5YYBulB9vohgArC3ah0O9X+y8fJQxB1LmH7sEKJpbMa9hDBDTaaC69JTJX4G4rDbxdHpe9XTYEGk2FXVQ61Zqq9HgKUDRlpJ1TB3pzt+KBvSLkqmE7H4xVvljWdGqk7qpWRxOtrFpdHymaQLua0oN2y4B65tulUlb+9eJGuqm2aBXklm6iAtvpFbYr2+hkFpl+botURVNl1MjyaDopIJRx4igS3fo4ilzm5kXyrfHkW0yqZUC/+0j1PdjRTYtsft2tYOBBTBaK+5iyiGmXGzZdYkR0qbdFhGrRr7A/sKV+7q1Cv/5yKhYO3RZT+6+0n6uSCt2t4yDPTmUhV+pq4e7CeKn34pAQIBMh+2hLNjxkwXBUr7BmbnFRK63GQJWtjRojlZixdsKvhKNPTwtWCSk7nKcfkW3qxjn5tiE3V81ZuGZqu/fINZO16CdlNkbz1fzJLKJ+botURdMlc02jOiXdmGsq+xK9VVQjuWnWkLv2VDfu5W7rI2IGSlwZeQkHB+R9RbRl5xYlrtMzmX1Cft10iZgOe+SJPJJ7APJI3F3CZL5/vabmvL+7iNl4yBtmCyU/QM9O6CAvcjnTRbv4P+PN7edLhGVHK3nk+0ZXtnLpwI9bYO65+PEFJF3Hk8k5afBFpFxTzxQ40XtOuRqfO+VqXF7K1fjcKdfKaLpoGlybcm2bejsn+f2CQlzK2UoPlKJYtWykMQ/ulukVLiJYJUmnLDCX83zgaNmKOh3jbKMaNRwzmyteQcSSW4Rs0rki3VK2W0NoY8lsC34i6i7XX5cNT/nmmAEKEZ2kNKs5q4qJCtTTNP/7UdGwMW29+LSuLIl4az0ispqj/KOndrGflfQN2QC0SWCvflM0jbZSyNylwvbvh6HD4FoZEAIxVwb7sWBfH9kScAmD52jj8X4Zz3pM6zDrUKYORguxAi0bLtkuCvAG2cgD7nUm5WKiKm5cWgEzT1VdKIAJMQjwjBZ2FmQ3DnWYqGfoWUmLlYvMp1jEGtAh/oUYv7EqM1oMRUTZfO9RVOPUPuRICAVv/9A5jNTpJBH8oH2NJJUWwcFXB8cNNLb3I50yafoAA4dEAw3XSMhjD7mEpDBub31biHYBu6enRQ9EQTZkzVhWjRqrCQOSRrKUnBNAF2DnGXLjiUKZ9fZAS89ya73k6TEDDkUz+C7iqbOzMkAodaROZZ6SFau64uvd01HSEK3XIeTaROiTqqEZIKkiWv3eASkHQFVPoOsAqWcAOhfc5JDjTNDCIwGHgblp5OEhatMaLxS1LTiMJV3tBRxktZAIUs4a0mNRZuiQkK6PsEXDCFsuv8Shk02lvKbpMsAV8aQoSK8A3EasPY1Wwlj1FquwQqQeVKRcR2C3jmVFUV4Rwfnny+2iTRAqKcJ3zsMNpZE+UXXO14dyLyE0lAu9Fm6vPUVGgxxSPTTziPZZeKEhKQVeKKtV7O8QvpcUHhzC9zo638TQS6kyvRktO8gLD8uKtcLny1+SfTicHfeGs9JI0pJ3DRNAVPqBWUXYa78oqzUo0DozyiYYeiEcOQezulaE2Xj53QBmD+PNRod1dkdv1KbqKXE3SeAJcLdtyfMeLBbiLl2/ck8NZg93MXLqPHQ2Koz+cNCp9fZMnkCnUmSoydthnbGTTwGpBU/tCTxF1X6/yMEvD888XDHkAjk4zhpsegT/Fr6rX7B2p6qV9O3sA6tWerOTlhWt7KsPOubTJuVzVw6nvnY5RSwNarY+sEFavyk/FpSwaCeuYREVglVXanSrMCnc6ZsXuDR8tbDrT3Y0LmLp8/U8MeH4g74hR+2dFOVEVSiR8u8AWI725I0rVHCWuhTRpWaFJ4s92fLqC9lXoSIa78qxHQyoz/9pwsgNjj7k7OcugKcY6K/QJ3FR95s1whkcWLJzaXAOzbW0bgzn8ox+m9Dntm8ZVoJ88cc7JsetySG72S9TxQw2+/kv9fp/</diagram></mxfile>
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 41 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 103 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 81 KiB

-1
View File
@@ -1 +0,0 @@
<svg id="Layer_1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 2374.4 541.3"><style>.st0{fill:#fff}.st1{opacity:.5}</style><path class="st0" d="M1175.5-1248.9c0-47.4-46.5-82.7-92.1-70.1 6.1-80.5-53.1-154.1-133.1-165.1s-158.9 45.3-173.3 125.9c-54.1-16.8-112 19.9-119.8 75.9-35.9-15.5-77.3-5.7-77.3 33.3l595.6.1zM.3-1298.6c-4.4-57.1 39.2-109.4 96-117.1 56.8-7.7 112.7 32.2 122.9 89.3 38.4-11.9 79.5 14.1 85 53.9 25.5-11 54.9-4.1 54.9 23.6H.3v-49.7zm2379.8 49.7h-358.8c0-27.7 29.4-34.6 54.9-23.6 5.5-39.8 46.6-65.8 85-53.9 10.2-57.1 66.1-97 122.9-89.3 56.8 7.7 100.4 60 96 117.1v49.7zm-797.3-.1c0-32.3-31.7-56.3-62.8-47.7 4.1-54.8-36.2-105-90.7-112.4s-108.2 30.9-118 85.8c-36.8-11.5-76.3 13.6-81.6 51.7-24.4-10.6-52.6-3.9-52.6 22.7l405.7-.1zm436.8.1c0-39.9-39-69.4-77.3-58.8 5-67.5-44.6-129.3-111.7-138.4s-133.2 38-145.3 105.6c-66.9-20-105.2 35.5-100.5 91.6h434.8zm-1441.3 0c0-19.9-19.5-34.7-38.7-29.4 2.5-33.7-22.3-64.6-55.8-69.2s-66.6 19-72.6 52.8c-33.5-10-52.6 17.7-50.2 45.8h217.3z"/><g class="st1"><path class="st0" d="M694.9-1337.5c0-13-12.7-22.7-25.3-19.3 1.7-22.1-14.6-42.4-36.6-45.4-22.1-3-43.7 12.5-47.6 34.6-14.8-4.6-30.8 5.5-33 20.9-9.8-4.3-21.2-1.6-21.2 9.1l163.7.1z"/></g><g class="st1"><path class="st0" d="M179.6-1414.8h81.9c0-5.4-5.7-6.7-10.6-4.6-1.1-7.7-9.1-12.7-16.5-10.4-2-11.1-12.7-18.8-23.8-17.3s-19.2 11.6-18.4 22.7c-6.3-1.7-12.6 3.1-12.6 9.6z"/></g><g class="st1"><path class="st0" d="M1132.3-1367.6H1296c0-10.7-11.4-13.4-21.2-9.1-2.2-15.4-18.1-25.5-33-20.9-3.9-22.2-25.5-37.7-47.6-34.6-22.1 3-38.3 23.3-36.6 45.4-12.6-3.5-25.3 6.2-25.3 19.2z"/></g><g class="st1"><path class="st0" d="M1647.7-1444.8c0-6.5-6.4-11.4-12.7-9.6.8-11-7.3-21.2-18.3-22.7s-21.8 6.2-23.8 17.3c-7.4-2.3-15.4 2.8-16.5 10.4-4.9-2.1-10.6-.8-10.6 4.6h81.9z"/></g><g class="st1"><path class="st0" d="M2059.9-1347.3c0-3.9-3.9-6.9-7.7-5.8.5-6.7-4.4-12.8-11.1-13.7-6.7-.9-13.2 3.8-14.4 10.5-4.5-1.4-9.3 1.7-10 6.3-3-1.3-6.4-.5-6.4 2.8l49.6-.1z"/></g><linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="-1831.575" y1="606.991" x2="-1831.575" y2="103.584" gradientTransform="matrix(-1 0 0 1 -1370.697 0)"><stop offset="0" stop-color="#fff" stop-opacity="0"/><stop offset=".095" stop-color="#fff" stop-opacity=".055"/><stop offset=".856" stop-color="#fff" stop-opacity=".5"/></linearGradient><path d="M73.4 134.2c30.4-19.4 66.4-30.6 105.1-30.6 85.4 0 157.9 54.7 184.6 130.9 25.4-12 53.7-18.7 83.6-18.7 48.7 0 93.2 17.8 127.4 47.3 24-47.1 72.8-79.3 129.3-79.3 80.1 0 145 64.9 145 145s-64.9 145-145 145c-24 0-46.7-5.9-66.6-16.2C616 543.3 538.8 607 446.7 607c-85.4 0-157.9-54.7-184.7-131-25.4 12-53.7 18.7-83.6 18.7-38.7 0-74.7-11.3-105.1-30.6V134.2z" fill="url(#SVGID_1_)"/><linearGradient id="SVGID_2_" gradientUnits="userSpaceOnUse" x1="1570.733" y1="601.7" x2="1570.733" y2="137.278"><stop offset="0" stop-color="#fff" stop-opacity="0"/><stop offset=".095" stop-color="#fff" stop-opacity=".055"/><stop offset=".856" stop-color="#fff" stop-opacity=".5"/></linearGradient><path d="M2374.4 597.7V168.2c-35.3-19.7-76-30.9-119.3-30.9-107.3 0-198.4 68.8-231.9 164.7-8.4-1.1-17-1.7-25.7-1.7-38.9 0-75.1 11.5-105.5 31.2-13.2-94.5-94.3-167.3-192.4-167.3-85.4 0-158 55.2-184 131.8-17.6-7.2-36.8-11.3-56.9-11.3-70.4 0-129.5 48.7-145.3 114.3-8.2-1.4-16.7-2.2-25.3-2.2-47.8 0-90.4 22.5-117.8 57.4-20.4-25.9-52.1-42.6-87.7-42.6-10.7 0-21.1 1.5-30.9 4.4-23.8-51.1-75.6-86.5-135.6-86.5-82.6 0-149.6 67-149.6 149.6 0 50.8 25.4 95.7 64.1 122.7h170.9c.4-.3.7-.5 1.1-.8.2.3.5.5.8.8H1427c2.6-6.5 4.8-13.2 6.4-20.1 8.2 1.4 16.7 2.2 25.3 2.2 52.8 0 99.3-27.4 125.9-68.8 32.2 23.7 72 37.8 115.1 37.8 38.9 0 75.1-11.5 105.5-31.2 4.1 29.3 14.7 56.5 30.3 80.1h539c2.4-1.4-2.7-2.7-.1-4.1z" fill="url(#SVGID_2_)"/><path class="st0" d="M2374.4 30c-62.6 21.1-109.4 76.6-118.1 144.1-127 22.2-223.6 132.9-223.6 266.3 0 8.7.5 17.3 1.3 25.8-7.9-1.1-15.9-1.7-24-1.7-52.6 0-99.7 23.1-131.9 59.7-37.2-104.9-137.2-180-254.9-180-82.4 0-156.1 36.9-205.7 95-4-.3-8.1-.5-12.2-.5-49 0-93.3 20-125.1 52.3-27-16.8-58.8-26.6-92.9-26.6-34.1 0-65.9 9.7-92.9 26.6-31.9-32.3-76.2-52.3-125.1-52.3-4.1 0-8.2.2-12.2.5-49.6-58.1-123.3-95-205.7-95-117.6 0-217.7 75.1-254.9 180-32.2-36.6-79.4-59.7-131.9-59.7-8.1 0-16.2.6-24 1.7.8-8.5 1.3-17.1 1.3-25.8 0-133.4-96.6-244.1-223.6-266.3C109.4 106.6 62.6 51.1 0 30v621.3h2374.4V30z"/></svg>

Before

Width:  |  Height:  |  Size: 4.2 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 7.2 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 19 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 81 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 85 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 294 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 19 KiB

-1
View File
@@ -1 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1920 1080"><linearGradient id="a" gradientUnits="userSpaceOnUse" y1="540" x2="1920" y2="540"><stop offset="0" stop-color="#193672"/><stop offset=".172" stop-color="#1c3e83"/><stop offset=".471" stop-color="#214899"/><stop offset=".753" stop-color="#244fa7"/><stop offset="1" stop-color="#2551ac"/></linearGradient><path fill="url(#a)" d="M0 0h1920v1080H0z"/><linearGradient id="b" gradientUnits="userSpaceOnUse" x1="254.992" y1="1001.195" x2="1665.815" y2="1001.195"><stop offset="0" stop-color="#92b1f1"/><stop offset=".227" stop-color="#aec5f5"/><stop offset=".55" stop-color="#cfdcf9"/><stop offset=".82" stop-color="#e3ebfb"/><stop offset="1" stop-color="#eaf0fc"/></linearGradient><path d="M1665.8 1033.4h-25.3l-105-253.1c-3.5-8.9-10.8-17.2-21.3-24.2-1-.7-2.1-1.3-3.2-1.9-7.9-4.6-17.2-8.3-27.3-11L990.3 606c-25.8-7.2-55.7-7.2-81.4 0L422.2 743.5c-22.9 6.4-40.2 17.9-47.9 32-1 1.7-1.8 3.4-2.4 5.1l-94.3 252.8H255v69.7h.2c1.2 11.3 8.5 22.3 21.1 31.3l344.3 246.9c2.2 1.6 4.5 3.1 7 4.5 17.6 10.2 41.6 16 66.7 16l544.3-.2c28.5 0 55.4-7.6 72.9-20.5l334.5-247c12.1-9 18.9-19.8 19.7-31h.1v-69.7z" fill="url(#b)"/><path d="M1511.1 694.7c1.1.6 2.1 1.3 3.2 1.9 10.4 6.9 17.8 15.2 21.3 24.2l127.7 307.8c6.7 16.1.4 33-17.2 46l-334.5 247c-17.6 13-44.4 20.5-72.9 20.5l-544.3.2c-25.1 0-49.1-5.9-66.7-16-2.4-1.4-4.8-2.9-7-4.5l-344.3-246.9c-18.1-12.8-25.2-29.7-19.3-45.8l114.9-308c.7-1.7 1.5-3.4 2.4-5.1 7.7-14 25-25.6 47.9-32L909 546.6c25.7-7.2 55.6-7.2 81.4 0l493.5 137.1c10 2.7 19.3 6.4 27.2 11z" fill="#fff"/><path opacity=".05" fill="#0ff" d="M456 990.7l56.9-152.5 436.8-123.3 447.6 124.4 64.7 155.9-235.3 173.8-521.8.1z"/><linearGradient id="c" gradientUnits="userSpaceOnUse" x1="657.573" y1="855.992" x2="805.019" y2="-344.861"><stop offset="0" stop-color="#0ff" stop-opacity=".5"/><stop offset="1" stop-color="#2551ac" stop-opacity="0"/></linearGradient><path opacity=".5" fill="url(#c)" d="M512.9 838.2v-1042l436.8-123.3v1042z"/><linearGradient id="d" gradientUnits="userSpaceOnUse" x1="1106.274" y1="803.55" x2="1240.713" y2="-291.365"><stop offset="0" stop-color="#0ff" stop-opacity=".5"/><stop offset="1" stop-color="#2551ac" stop-opacity="0"/></linearGradient><path opacity=".5" fill="url(#d)" d="M949.7 714.9l447.6 124.4v-1042L949.7-327.1z"/><linearGradient id="e" gradientUnits="userSpaceOnUse" x1="1357.666" y1="982.421" x2="1501.614" y2="-189.939"><stop offset="0" stop-color="#0ff" stop-opacity=".5"/><stop offset="1" stop-color="#2551ac" stop-opacity="0"/></linearGradient><path opacity=".5" fill="url(#e)" d="M1462 995.2l-64.7-155.9v-1042L1462-46.8z"/><linearGradient id="f" gradientUnits="userSpaceOnUse" x1="1014.643" y1="1014.882" x2="1674.057" y2="107.276"><stop offset="0" stop-color="#0ff" stop-opacity=".75"/><stop offset=".041" stop-color="#0ff" stop-opacity=".694"/><stop offset=".545" stop-color="#0ff" stop-opacity="0"/></linearGradient><path opacity=".5" fill="url(#f)" d="M1226.7 1169V126.9L1462-46.8v1042z"/><linearGradient id="g" gradientUnits="userSpaceOnUse" x1="627.831" y1="1113.361" x2="1303.705" y2="183.1"><stop offset="0" stop-color="#0ff" stop-opacity=".75"/><stop offset=".058" stop-color="#0ff" stop-opacity=".694"/><stop offset=".784" stop-color="#0ff" stop-opacity="0"/></linearGradient><path opacity=".5" fill="url(#g)" d="M1226.7 1169.2v-1042H704.9v1042.2z"/><linearGradient id="h" gradientUnits="userSpaceOnUse" x1="190.637" y1="797.857" x2="778.293" y2="-10.982"><stop offset="0" stop-color="#0ff" stop-opacity=".5"/><stop offset="1" stop-color="#2551ac" stop-opacity="0"/></linearGradient><path opacity=".5" fill="url(#h)" d="M512.9 838.2v-1042L456-51.4V990.7z"/><linearGradient id="i" gradientUnits="userSpaceOnUse" x1="332.148" y1="900.67" x2="828.788" y2="217.103"><stop offset="0" stop-color="#0ff" stop-opacity=".75"/><stop offset=".041" stop-color="#0ff" stop-opacity=".694"/><stop offset=".55" stop-color="#0ff" stop-opacity="0"/></linearGradient><path opacity=".5" fill="url(#i)" d="M704.9 1169.1v-1042L456-51.4V990.7z"/><linearGradient id="j" gradientUnits="userSpaceOnUse" x1="474.691" y1="1173.802" x2="509.352" y2="678.135"><stop offset="0" stop-color="#fff" stop-opacity="0"/><stop offset="1" stop-color="#326ce5" stop-opacity=".5"/></linearGradient><path d="M704.9 1169.1L456 990.7V674.4l-40.9 11.8s-32.6 6.2-47.5 46-107.3 287.7-107.3 287.7-18.7 27.5 8.8 49.1 138.7 100.1 138.7 100.1h297.1z" fill="url(#j)"/></svg>

Before

Width:  |  Height:  |  Size: 4.3 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 8.7 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 12 KiB

-1
View File
@@ -1 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1920 1080"><linearGradient id="a" gradientUnits="userSpaceOnUse" x1="-2" y1="541.338" x2="1918" y2="541.338"><stop offset="0" stop-color="#193672"/><stop offset=".172" stop-color="#1c3e83"/><stop offset=".471" stop-color="#214899"/><stop offset=".753" stop-color="#244fa7"/><stop offset="1" stop-color="#2551ac"/></linearGradient><path fill="url(#a)" d="M-2 1.3h1920v1080H-2z"/><linearGradient id="b" gradientUnits="userSpaceOnUse" x1="254.992" y1="564.04" x2="1665.815" y2="564.04"><stop offset="0" stop-color="#92b1f1"/><stop offset=".227" stop-color="#aec5f5"/><stop offset=".55" stop-color="#cfdcf9"/><stop offset=".82" stop-color="#e3ebfb"/><stop offset="1" stop-color="#eaf0fc"/></linearGradient><path d="M1665.8 596.2h-25.3l-105-253.1c-3.5-8.9-10.8-17.2-21.3-24.2-1-.7-2.1-1.3-3.2-1.9-7.9-4.6-17.2-8.3-27.3-11L990.3 168.9c-25.8-7.2-55.7-7.2-81.4 0L422.2 306.3c-22.9 6.4-40.2 17.9-47.9 32-1 1.7-1.8 3.4-2.4 5.1l-94.3 252.8H255v69.7h.2c1.2 11.3 8.5 22.3 21.1 31.3L620.6 944c2.2 1.6 4.5 3.1 7 4.5 17.6 10.2 41.6 16 66.7 16l544.3-.2c28.5 0 55.4-7.6 72.9-20.5l334.5-247c12.1-9 18.9-19.8 19.7-31h.1v-69.6z" fill="url(#b)"/><path d="M1511.1 257.5c1.1.6 2.1 1.3 3.2 1.9 10.4 6.9 17.8 15.2 21.3 24.2l127.7 307.8c6.7 16.1.4 33-17.2 46l-334.5 247c-17.6 13-44.4 20.5-72.9 20.5l-544.3.2c-25.1 0-49.1-5.9-66.7-16-2.4-1.4-4.8-2.9-7-4.5L276.3 637.7c-18.1-12.8-25.2-29.7-19.3-45.8l114.9-308c.7-1.7 1.5-3.4 2.4-5.1 7.7-14 25-25.6 47.9-32l486.7-137.4c25.7-7.2 55.6-7.2 81.4 0l493.5 137.1c10.1 2.7 19.4 6.4 27.3 11z" fill="#fff"/><path opacity=".05" fill="#0ff" d="M456 553.5l56.9-152.4 436.8-123.3 447.6 124.3 64.7 156-235.3 173.7-521.8.2z"/><linearGradient id="c" gradientUnits="userSpaceOnUse" x1="657.573" y1="418.837" x2="805.019" y2="-782.016"><stop offset="0" stop-color="#0ff" stop-opacity=".5"/><stop offset="1" stop-color="#2551ac" stop-opacity="0"/></linearGradient><path opacity=".3" fill="url(#c)" d="M512.9 401.1V-641l436.8-123.3V277.8z"/><linearGradient id="d" gradientUnits="userSpaceOnUse" x1="1106.274" y1="366.395" x2="1240.713" y2="-728.519"><stop offset="0" stop-color="#0ff" stop-opacity=".5"/><stop offset="1" stop-color="#2551ac" stop-opacity="0"/></linearGradient><path opacity=".3" fill="url(#d)" d="M949.7 277.8l447.6 124.3v-1042L949.7-764.3z"/><linearGradient id="e" gradientUnits="userSpaceOnUse" x1="1357.666" y1="545.266" x2="1501.614" y2="-627.094"><stop offset="0" stop-color="#0ff" stop-opacity=".5"/><stop offset="1" stop-color="#2551ac" stop-opacity="0"/></linearGradient><path opacity=".3" fill="url(#e)" d="M1462 558.1l-64.7-156v-1042L1462-484z"/><linearGradient id="f" gradientUnits="userSpaceOnUse" x1="1014.643" y1="577.727" x2="1674.057" y2="-329.879"><stop offset="0" stop-color="#0ff" stop-opacity=".75"/><stop offset=".041" stop-color="#0ff" stop-opacity=".694"/><stop offset=".545" stop-color="#0ff" stop-opacity="0"/></linearGradient><path opacity=".3" fill="url(#f)" d="M1226.7 731.8v-1042L1462-484V558.1z"/><linearGradient id="g" gradientUnits="userSpaceOnUse" x1="627.831" y1="676.206" x2="1303.705" y2="-254.055"><stop offset="0" stop-color="#0ff" stop-opacity=".75"/><stop offset=".058" stop-color="#0ff" stop-opacity=".694"/><stop offset=".784" stop-color="#0ff" stop-opacity="0"/></linearGradient><path opacity=".3" fill="url(#g)" d="M1226.7 732V-310H704.9V732.2z"/><linearGradient id="h" gradientUnits="userSpaceOnUse" x1="190.637" y1="360.702" x2="778.293" y2="-448.137"><stop offset="0" stop-color="#0ff" stop-opacity=".5"/><stop offset="1" stop-color="#2551ac" stop-opacity="0"/></linearGradient><path opacity=".3" fill="url(#h)" d="M512.9 401.1V-641L456-488.5v1042z"/><linearGradient id="i" gradientUnits="userSpaceOnUse" x1="332.148" y1="463.515" x2="828.788" y2="-220.052"><stop offset="0" stop-color="#0ff" stop-opacity=".75"/><stop offset=".041" stop-color="#0ff" stop-opacity=".694"/><stop offset=".55" stop-color="#0ff" stop-opacity="0"/></linearGradient><path opacity=".3" fill="url(#i)" d="M704.9 732V-310.1L456-488.5v1042z"/><linearGradient id="j" gradientUnits="userSpaceOnUse" x1="474.691" y1="736.646" x2="509.352" y2="240.979"><stop offset="0" stop-color="#fff" stop-opacity="0"/><stop offset="1" stop-color="#326ce5" stop-opacity=".5"/></linearGradient><path d="M704.9 732L456 553.5V237.3L415.2 249s-32.6 6.2-47.5 46-107.3 287.7-107.3 287.7-18.7 27.5 8.8 49.1C296.6 653.5 407.8 732 407.8 732h297.1z" fill="url(#j)"/></svg>

Before

Width:  |  Height:  |  Size: 4.3 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 7.4 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 805 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 983 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 377 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 12 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 13 KiB

-1
View File
@@ -1 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 266.9 266.9"><path d="M252.2 0H14.7C6.6 0 0 6.6 0 14.7v237.4c0 8.1 6.6 14.7 14.7 14.7h127.8V163.5h-34.8v-40.3h34.8V93.6c0-34.5 21.1-53.2 51.8-53.2 14.7 0 27.4 1.1 31.1 1.6v36h-21.3c-16.7 0-20 7.9-20 19.6v25.7H224l-5.2 40.3h-34.7V267h68c8.1 0 14.7-6.6 14.7-14.7V14.7c.1-8.1-6.5-14.7-14.6-14.7z" fill="#3c5a99"/></svg>

Before

Width:  |  Height:  |  Size: 369 B

-1
View File
@@ -1 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32.6 31.8"><path d="M16.3 0C7.3 0 0 7.3 0 16.3c0 7.2 4.7 13.3 11.1 15.5.8.1 1.1-.4 1.1-.8v-2.8c-4.5 1-5.5-2.2-5.5-2.2-.7-1.9-1.8-2.4-1.8-2.4-1.5-1 .1-1 .1-1 1.6.1 2.5 1.7 2.5 1.7 1.5 2.5 3.8 1.8 4.7 1.4.1-1.1.6-1.8 1-2.2-3.6-.4-7.4-1.8-7.4-8.1 0-1.8.6-3.2 1.7-4.4-.1-.3-.7-2 .2-4.2 0 0 1.4-.4 4.5 1.7 1.3-.4 2.7-.5 4.1-.5 1.4 0 2.8.2 4.1.5 3.1-2.1 4.5-1.7 4.5-1.7.9 2.2.3 3.9.2 4.3 1 1.1 1.7 2.6 1.7 4.4 0 6.3-3.8 7.6-7.4 8 .6.5 1.1 1.5 1.1 3V31c0 .4.3.9 1.1.8 6.5-2.2 11.1-8.3 11.1-15.5C32.6 7.3 25.3 0 16.3 0z" fill-rule="evenodd" clip-rule="evenodd" fill="#191717"/></svg>

Before

Width:  |  Height:  |  Size: 628 B

-1
View File
@@ -1 +0,0 @@
<svg viewBox="0 0 128 128" xmlns="http://www.w3.org/2000/svg"><g clip-rule="evenodd" fill-rule="evenodd"><path fill="none" d="M0 0h128v128H0z"/><path d="M3.229 43.133h24.948v79.049H3.229V43.133zm11.838-9.887h-.181C5.855 33.246 0 27.203 0 19.543 0 11.734 6.028 5.818 15.24 5.818c9.204 0 14.864 5.901 15.044 13.703 0 7.659-5.84 13.725-15.217 13.725zM128 122.182H99.71V81.275c0-10.707-4.425-18.017-14.156-18.017-7.443 0-11.582 4.933-13.509 9.686-.722 1.706-.61 4.083-.61 6.46v42.777H43.409s.361-72.462 0-79.049h28.026v12.406c1.656-5.424 10.611-13.166 24.903-13.166 17.731 0 31.661 11.37 31.661 35.855v43.955z" fill="#007EBB"/></g></svg>

Before

Width:  |  Height:  |  Size: 633 B

-1
View File
@@ -1 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 121.9 121.8"><path d="M79 7.5c-1.9-5.7-8-8.8-13.7-7-5.7 1.9-8.8 8-7 13.7l28.1 86.4c1.9 5.3 7.7 8.3 13.2 6.7 5.8-1.7 9.3-7.8 7.4-13.4 0-.2-28-86.4-28-86.4z" fill="#ecb32d"/><path d="M35.5 21.6c-1.9-5.7-8-8.8-13.7-7-5.7 1.9-8.8 8-7 13.7l28.1 86.4c1.9 5.3 7.7 8.3 13.2 6.7 5.8-1.7 9.3-7.8 7.4-13.4 0-.2-28-86.4-28-86.4z" fill="#63c1a0"/><path d="M114.4 79c5.7-1.9 8.8-8 7-13.7-1.9-5.7-8-8.8-13.7-7L21.2 86.5c-5.3 1.9-8.3 7.7-6.7 13.2 1.7 5.8 7.8 9.3 13.4 7.4.2 0 86.5-28.1 86.5-28.1z" fill="#e01a59"/><path d="M39.2 103.5c5.6-1.8 12.9-4.2 20.7-6.7-1.8-5.6-4.2-12.9-6.7-20.7l-20.7 6.7 6.7 20.7z" fill="#331433"/><path d="M82.8 89.3c7.8-2.5 15.1-4.9 20.7-6.7-1.8-5.6-4.2-12.9-6.7-20.7l-20.7 6.7 6.7 20.7z" fill="#d62027"/><path d="M100.2 35.5c5.7-1.9 8.8-8 7-13.7-1.9-5.7-8-8.8-13.7-7L7.1 42.9C1.8 44.8-1.2 50.6.4 56.1c1.7 5.8 7.8 9.3 13.4 7.4.2 0 86.4-28 86.4-28z" fill="#89d3df"/><path d="M25.1 59.9c5.6-1.8 12.9-4.2 20.7-6.7-2.5-7.8-4.9-15.1-6.7-20.7l-20.7 6.7 6.7 20.7z" fill="#258b74"/><path d="M68.6 45.8c7.8-2.5 15.1-4.9 20.7-6.7-2.5-7.8-4.9-15.1-6.7-20.7l-20.7 6.7 6.7 20.7z" fill="#819c3c"/></svg>

Before

Width:  |  Height:  |  Size: 1.1 KiB

-1
View File
@@ -1 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 300 244.187" height="244.19" width="300"><path d="M94.72 243.18c112.46 0 173.96-93.168 173.96-173.96 0-2.646-.054-5.28-.173-7.903a124.338 124.338 0 0 0 30.498-31.66c-10.955 4.87-22.744 8.147-35.11 9.625 12.622-7.569 22.313-19.543 26.885-33.817a122.62 122.62 0 0 1-38.824 14.841C240.8 8.422 224.916.99 207.327.99c-33.764 0-61.144 27.381-61.144 61.132 0 4.798.537 9.465 1.586 13.941-50.815-2.556-95.874-26.886-126.03-63.88a60.977 60.977 0 0 0-8.279 30.73c0 21.212 10.794 39.938 27.208 50.893a60.685 60.685 0 0 1-27.69-7.646c-.009.256-.009.506-.009.78 0 29.61 21.075 54.332 49.051 59.934a61.218 61.218 0 0 1-16.122 2.152c-3.933 0-7.766-.387-11.49-1.103 7.783 24.293 30.354 41.971 57.114 42.465-20.926 16.402-47.287 26.171-75.937 26.171-4.929 0-9.798-.28-14.584-.846 27.06 17.344 59.19 27.464 93.722 27.464" fill="#1da1f2"/></svg>

Before

Width:  |  Height:  |  Size: 879 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 125 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 309 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 255 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 126 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 111 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.4 KiB

Some files were not shown because too many files have changed in this diff Show More