Using Ansible to automate the deployment of an on-prem HA Kubernetes cluster with Cisco ACI CNI plugin

In this post, I will share my experience in setting up an HA Kubernetes cluster. The cluster consists of 3 external etcd nodes, 3 master nodes and 3 worker nodes. The nodes are VMs hosted inside VMWare ESXi (integrated with ACI using VMM domain) on a HyperFlex cluster. However, you can perform the same steps on any standard ESXi deployment with VMM domain integration. In my setup I also use Cisco ACI CNI plugin to provide network connectivities among pods within the Kubernetes cluster. Ansible is used to provide automation to the installation:

  • spinning up the VMs on ESXi
  • installing HA etcd cluster
  • creating an active/standby haproxy as LB for multiple master nodes
  • configuring a Kubernetes cluster using kubeadm
  • applying ACI CNI plugin to have a fully working K8S cluster.

[Edit] I put the Ansible playbook code and the Jinja2 template files on my Github repo.

Continue reading “Using Ansible to automate the deployment of an on-prem HA Kubernetes cluster with Cisco ACI CNI plugin”

Tutorial: How to install ACI integration with OpenStack

Motivation

One of the main features that I’ve always been impressed with ACI is its capabilities to integrate with popular virtualization domains- VMWare, OpenStack, Microsoft SCVMM, Kubernetes, etc. There have been quite a lot of resources covering ACI integration with VMWare in great details. You can find the lab guide in any Cisco DC specialization courses such as DCVAI / DCAC9K, and many other sources you can google for yourself. However, there are not as many for OpenStack. This tutorial is based on Cisco’s official installation guide, adapted to a newer OpenStack release (Queens) on Ubuntu 18.04 Bionic. I hope it will be helpful for those who are seeking a quick and easy way to setup an OpenStack environment with ACI integration. In the future posts, I may write about some key benefits, features, and mechanisms of this ACI-OpenStack integration.

Continue reading “Tutorial: How to install ACI integration with OpenStack”

Tutorial: Provision and consume bare metals with MAAS and Juju – Part 1

In this multi-part tutorial series, I will demonstrate how MAAS and Juju have helped me quickly setup and consume both bare metal servers and virtual machines in our lab in an automated, cloud-like fashion.

The first part will cover the high level introduction to MAAS and Juju, my MAAS installation, and MAAS network service configuration.

Part 2 is here.

Continue reading “Tutorial: Provision and consume bare metals with MAAS and Juju – Part 1”

Plan for 2020: NextGen network engineer skills

New year marks a fresh start. At the start of the year, we often take time to reflect on the previous year and plan the goal for the coming months. In this blog post, I would do the same by having a quick look back at 2019 and sketch a plan of my technical skills developement for the rest of 2020.

Continue reading “Plan for 2020: NextGen network engineer skills”