Skip to content

Test Cluster Deployment

James Lott edited this page Jan 11, 2017 · 7 revisions

Test Cluster Architecture

This document describes an architecture and deployment procedure for a kubernetes cluster which can be used for testing purposes

Overview

The authoritative reference on Kubernetes architecture should always be considered to be the Kubernetes architecture documentation, but this document will briefly cover Kubernetes components most pertinent to the test cluster deployment.

Containers in a Kubernetes cluster are deployed to and run on one of any number of nodes. The deployment of containers to the cluster is orchestrated by one of any number of master nodes. Every Kubernetes cluster must at a very minimum deploy one of each such class of infrastructure.

Container deployment to kubernetes clusters is intended to be node unaware-- that is, a container shouldn't care which node it is actually scheduled to run on. This presents a practical challenge for containers which depend on persistent storage; should such a container need to change nodes for any reason, its persistent storage must travel with it. In order to help solve this problem, Kubernetes offers Persistent Volume and Persistent Volume Claim resources to assign persistent storage resources to containers. This test cluster calls for the deployment of a NFS server in order to provide backing storage for those cluster resources.

Details

This testing cluster essentially calls for the deployment of 3 different infrastructure classes:

  1. Kubernetes master/control plane server (1)
  2. Kubernetes node/worker server (1 or more)
  3. NFS storage server (1 or more)

Kubernetes master/control plane server

The process described in this document performs Kubernetes master server deployment via the ansible playbooks provided by kubernetes. Kubernetes master servers are deployed with the Fedora operating system for compatibility with the kubernetes ansible playbooks.

Kubernetes node/worker server

Like master servers, the process for deployment of Kubernetes node servers covered by this document utilizes the ansible playbooks provided by kubernetes, and as such, is deployed on top of a running Fedora server.

NFS storage server

The NFS storage server deployment process described by this document is performed manually. The server is provisioned on top of the OpenSUSE Leap 42.2 distribution for ease of access to ZFS kernel modules and utilities

Deployment

Requirements

In addition to the aforementioned operating system requirements for each infrastructure class, the deployment machine (the machine which the ansible playbooks will be run from) must have the following tools installed:

  • Ansible 1.9
  • python-netaddr

Clone this wiki locally