diff --git a/content/rancher/v2.x/en/cluster-provisioning/rke-clusters/custom-nodes/_index.md b/content/rancher/v2.x/en/cluster-provisioning/rke-clusters/custom-nodes/_index.md index dd27877c907..6f3bc901216 100644 --- a/content/rancher/v2.x/en/cluster-provisioning/rke-clusters/custom-nodes/_index.md +++ b/content/rancher/v2.x/en/cluster-provisioning/rke-clusters/custom-nodes/_index.md @@ -8,25 +8,25 @@ aliases: ## Custom Nodes -Use Rancher to create a Kubernetes cluster on your on-premise bare metal servers. This option creates a cluster using a combination of Docker Machine and RKE, which is Rancher's own lightweight Kubernetes installer. In addition to bare metal servers, RKE can also create clusters on _any_ IaaS providers by integrating with node drivers. +Use Rancher to create a Kubernetes cluster on your on-premise bare metal servers. This option creates a cluster using a combination of [Docker Machine](https://docs.docker.com/machine/) and RKE, which is Rancher's own lightweight Kubernetes installer. In addition to bare metal servers, RKE can also create clusters on _any_ IaaS providers by integrating with node drivers. To use this option you'll need access to servers you intend to use as your Kubernetes cluster. Provision each server according to Rancher [requirements](#requirements), which includes some hardware specifications and Docker. After you install Docker on each server, run the command provided in the Rancher UI to turn each server into a Kubernetes node. ## Objectives for Creating Cluster with Custom Nodes -1. [Provision a Linux Host](#provision-a-linux-host) +>**Want to use Windows hosts as Kubernetes workers?** +> +>See [Configuring Custom Clusters for Windows]({{< baseurl >}}/rancher/v2.x/en/cluster-provisioning/rke-clusters/custom-nodes/windows-clusters/) before you start. - Begin by provisioning a Linux host. + -2. [Create the Cluster](#create-the-custom-cluster) +- [1. Provision a Linux Host](#1-provision-a-linux-host) +- [2. Create the Custom Cluster](#2-create-the-custom-cluster) +- [3. Amazon Only: Tag Resources](#3-amazon-only-tag-resources) - Use your new Linux host as a template for your new Kubernetes cluster. + -2. **Amazon Only:** [Tag Resources](#amazon-only-br-tag-resources) - - If you're using Amazon to create your custom cluster, log into AWS and tag your resources with a cluster ID. - -## Provision a Linux Host +## 1. Provision a Linux Host Begin creation of a custom cluster by provisioning a Linux host. Your host can be: @@ -44,7 +44,7 @@ Provision the host according to the requirements below. Each node in your cluster must meet our [Requirements]({{< baseurl >}}/rancher/v2.x/en/installation/requirements). -## Create the Custom Cluster +## 2. Create the Custom Cluster Use {{< product >}} to clone your Linux host and configure them as Kubernetes nodes. @@ -58,15 +58,20 @@ Use {{< product >}} to clone your Linux host and configure them as Kubernetes no 5. {{< step_create-cluster_cluster-options >}} -6. Click **Next**. + >**Using Windows nodes as Kubernetes workers?** + > + >- See [Enable the Windows Support Option]({{< baseurl >}}/rancher/v2.x/en/cluster-provisioning/rke-clusters/custom-nodes/windows-clusters/#enable-the-windows-support-option). + >- The only Network Provider available for clusters with Windows support is Flannel. See [Networking Option]({{< baseurl >}}/rancher/v2.x/en/cluster-provisioning/rke-clusters/custom-nodes/windows-clusters/#networking-option). +6. Click **Next**. 7. From **Node Role**, choose the roles that you want filled by a cluster node. - >**Bare-Metal Server Reminder:** + >**Notes:** > - If you plan on dedicating bare-metal servers to each role, you must provision a bare-metal server for each role (i.e. provision multiple bare-metal servers). + >- Using Windows nodes as Kubernetes workers? See [Node Configuration]({{< baseurl >}}/rancher/v2.x/en/cluster-provisioning/rke-clusters/custom-nodes/windows-clusters/#node-configuration). + >- Bare-Metal Server Reminder: If you plan on dedicating bare-metal servers to each role, you must provision a bare-metal server for each role (i.e. provision multiple bare-metal servers). -8. **Optional**: Add **Labels** to your cluster nodes to help schedule workloads later. +8. **Optional**: Add **Labels** to your cluster nodes to help schedule workloads later. [Kubernetes Documentation: Labels](https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/) @@ -80,7 +85,7 @@ Use {{< product >}} to clone your Linux host and configure them as Kubernetes no {{< result_create-cluster >}} -## Amazon Only:
Tag Resources +## 3. Amazon Only: Tag Resources If you have configured your cluster to use Amazon as **Cloud Provider**, tag your AWS resources with a cluster ID. diff --git a/content/rancher/v2.x/en/cluster-provisioning/windows-clusters/_index.md b/content/rancher/v2.x/en/cluster-provisioning/rke-clusters/custom-nodes/windows-clusters/_index.md similarity index 59% rename from content/rancher/v2.x/en/cluster-provisioning/windows-clusters/_index.md rename to content/rancher/v2.x/en/cluster-provisioning/rke-clusters/custom-nodes/windows-clusters/_index.md index 45f00a5b98b..4d5dcb6957c 100644 --- a/content/rancher/v2.x/en/cluster-provisioning/windows-clusters/_index.md +++ b/content/rancher/v2.x/en/cluster-provisioning/rke-clusters/custom-nodes/windows-clusters/_index.md @@ -1,23 +1,18 @@ --- -title: Using Windows Container +title: Configuring Custom Clusters for Windows weight: 2600 --- -Using Rancher, you can provision Windows Server hosts as nodes in a custom Kubernetes cluster. +When provisioning a [custom cluster]({{< baseurl >}}/rancher/v2.x/en/cluster-provisioning/custom-clusters/) using Rancher, you have the option of configuring it to support Windows Server hosts as Kubernetes workers. Using this feature, you can provision a custom Kubernetes cluster with a mix of Linux and Windows nodes. >**Notes:** > ->- Windows nodes are experimental and not yet officially supported. Therefore, we do not recommend using Windows and in a production environment. +>- Windows nodes are experimental and not yet officially supported in Rancher. Therefore, we do not recommend using Windows nodes in a production environment. >- For a summary of Kubernetes features supported in Windows, see [Using Windows Server Containers in Kubernetes](https://kubernetes.io/docs/getting-started-guides/windows/#supported-features). -## Before You Start -- Your host must be running [Windows Server version 1803](https://docs.microsoft.com/en-us/windows-server/get-started/whats-new-in-windows-server-1803). -- Your host must be able to run [microsoft/nanoserver:1803 -](https://hub.docker.com/r/microsoft/nanoserver/tags/) as a Windows Server container (_not_ a [Hyper-V container](https://docs.microsoft.com/en-us/virtualization/windowscontainers/manage-containers/hyperv-container)). -- [Docker v17.06](https://docs.docker.com/install/windows/docker-ee/) or later must be installed. -- Flannel is the only network plug-in supported for Windows [host-gw](https://github.com/coreos/flannel/blob/master/Documentation/backends.md#host-gw), which means you need to make some manual network configuration if you host your Windows node using a cloud service. +## Objectives for Creating Cluster with Windows Support -## Objectives for Creating Cluster with Windows support +When setting up a custom cluster with support for Windows nodes and containers, complete the series of tasks below. @@ -32,13 +27,19 @@ Using Rancher, you can provision Windows Server hosts as nodes in a custom Kuber ## 1. Provision Hosts -The first thing you should do when provisioning a cluster with Windows workers is to prepare your host servers. Provision three nodes according to our [requirements]({{< baseurl >}}/rancher/v2.x/en/installation/requirements/)—two Linux, one Windows. The table below lists the [role]({{< baseurl >}}/rancher/v2.x/en/cluster-provisioning/#kubernetes-cluster-node-components) that each node will fill in your cluster. +The first thing you should do when provisioning a custom cluster that includes Windows nodes is to prepare your host servers. Provision three nodes according to our [requirements]({{< baseurl >}}/rancher/v2.x/en/installation/requirements/)—two Linux, one Windows. Your hosts can be: -Node | Operating System | Role +- A cloud-hosted virtual machine (VM) +- An on-premise VM +- A bare-metal server + +The table below lists the [Kubernetes role]({{< baseurl >}}/rancher/v2.x/en/cluster-provisioning/#kubernetes-cluster-node-components) that each node will fill in your cluster, although you won't enable these roles until further along in the configuration process—we're just informing you of each node's purpose. + +Node | Operating System | Future Cluster Role --------|------------------|------ Node 1 | Linux | [All]({{< baseurl >}}/rancher/v2.x/en/cluster-provisioning/#control-plane-nodes) Node 2 | Windows | [Worker]({{< baseurl >}}/rancher/v2.x/en/cluster-provisioning/#worker-nodes) -Node 3 (Optional) | Linux | [Worker]({{< baseurl >}}/rancher/v2.x/en/cluster-provisioning/#worker-nodes) (for Ingress Support) +Node 3 (Optional) | Linux | [Worker]({{< baseurl >}}/rancher/v2.x/en/cluster-provisioning/#worker-nodes) (This node is used for Ingress support) >**Bare-Metal Server Note:** @@ -47,9 +48,8 @@ While creating your cluster, you must assign Kubernetes roles to your cluster no ## 2. Create the Custom Cluster -Follow the instructions in [Creating a Cluster with Custom Nodes]({{< baseurl >}}rancher/v2.x/en/cluster-provisioning/rke-clusters/custom-nodes/#create-the-custom-cluster). +To create a custom cluster that supports Windows nodes, follow the instructions in [Creating a Cluster with Custom Nodes]({{< baseurl >}}/rancher/v2.x/en/cluster-provisioning/rke-clusters/custom-nodes/#2-create-the-custom-cluster), starting from [2. Create the Custom Cluster]({{< baseurl >}}/rancher/v2.x/en/cluster-provisioning/rke-clusters/custom-nodes/#2-create-the-custom-cluster). While completing the linked instructions, look for steps that requires special actions for Windows nodes, which are flagged with a note. These notes will link back here, to the special Windows instructions listed in the headings below. -These instructions flag each step that requires special actions for Windows nodes, which are listed below. ### Enable the Windows Support Option @@ -57,13 +57,15 @@ While choosing **Cluster Options**, set **Windows Support (Experimental)** to ** ![Enable Windows Support]({{< baseurl >}}/img/rancher/enable-windows-support.png) +After you select this option, resume [Creating a Cluster with Custom Nodes]({{< baseurl >}}/rancher/v2.x/en/cluster-provisioning/rke-clusters/custom-nodes/#create-the-custom-cluster) from [step 6]({{< baseurl >}}/rancher/v2.x/en/cluster-provisioning/rke-clusters/custom-nodes/#step-6). + ### Networking Option -When choosing a network provider for a cluster that supports Windows, the only option available is Flannel. +When choosing a network provider for a cluster that supports Windows, the only option available is Flannel, as [host-gw](https://github.com/coreos/flannel/blob/master/Documentation/backends.md#host-gw) is needed for IP routing. ![Flannel]({{< baseurl >}}/img/rancher/flannel.png) -If you want some automation supporting by cloud environment, such as load balancers or persistent storage devices, please follow [Selecting Cloud Providers]({{< baseurl >}}/rancher/v2.x/en/cluster-provisioning/rke-clusters/options/cloud-providers) to configure. +If your nodes are hosted by a cloud provider and you want automation support such as load balancers or persistent storage devices, see [Selecting Cloud Providers]({{< baseurl >}}/rancher/v2.x/en/cluster-provisioning/rke-clusters/options/cloud-providers) for configuration info. ### Node Configuration @@ -76,6 +78,9 @@ Node Roles | etcd
Control Plane
Worker ![Recommended Linux Control Plane Configuration]({{< baseurl >}}/img/rancher/linux-control-plane.png) +When you're done with these configurations, resume [Creating a Cluster with Custom Nodes]({{< baseurl >}}/rancher/v2.x/en/cluster-provisioning/rke-clusters/custom-nodes/#create-the-custom-cluster) from [step 8]({{< baseurl >}}/rancher/v2.x/en/cluster-provisioning/rke-clusters/custom-nodes/#step-8). + + ## 3. Cloud-host VM Networking Configuration >**Note:** This step only applies to nodes hosted on cloud-hosted virtual machines. If you're using on-premise virtual machines or baremetal servers, skip ahead to [4. Adding Windows Workers](#4-adding-windows-workers). @@ -90,7 +95,7 @@ Azure VM | [Enable or Disable IP Forwarding](https://docs.microsoft.com/en-us/az ## 4. Adding Windows Workers -After the initial provisioning of your custom cluster, add your Windows workers to it. Add nodes using the instructions below. +After the initial provisioning of your custom cluster, you cluster only has a single Linux host. You still have to Windows workers to it. Add nodes using the instructions below. 1. From the main menu, select **Nodes**. @@ -127,4 +132,8 @@ To confirm the destination address of each route, you can run this script using ### Troubleshooting -If the Windows worker is already starting (console prints "Starting plan monitor"), but it's still _Unavailable_ on {{< product >}} UI, you can try to restart the Nginx proxy on Windows host via `docker restart nginx-proxy`. +If the Windows worker is already starting (i.e., Terminal outputs `Starting plan monitor`), yet it displays a status of `Unavailable` in the Rancher UI, try to restarting the Nginx proxy on the Windows host using the following Docker command: + +``` +docker restart nginx-proxy +```