Stand up Kubernetes

We will install Calico on a Kubernetes cluster. To demonstrate a highly available Calico control plane, we will use five nodes in this guide. This lab walks you through provisioning a Kubernetes cluster in AWS using kubeadm.

Provision EC2 Nodes

  1. Provision five nodes
    1. Ubuntu 20.04 LTS - Focal
    2. T2.medium
    3. Ensure the instances are in the same subnet, and security group policy allows them communicate freely with one another.
    4. Disable Source / Destination Checks on the Elastic Network Interface for each instance
  2. Install Docker on each node
    1. sudo apt update
    2. sudo apt install docker.io
    3. sudo systemctl enable docker

Install Kubernetes

  1. Install kubeadm, kubelet, kubectl by following official documentation

  2. Choose one node as your Kubernetes master. On that node sudo kubeadm init --pod-network-cidr=192.168.0.0/16

    The Kubernetes pod-network-cidr is the IP prefix for all pods in the Kubernetes cluster. This range must not clash with other networks in your VPC.

  3. On all other nodes sudo kubeadm join <output from kubeadm init>

  4. Copy admin credentials

  5. Test Access

    1. Run

      kubectl get nodes

      Verify all nodes have joined. At this point nodes have joined but they are in NotReady state, because Kubernetes can’t find a networking provider and configuration.

Next

The Calico datastore