Giter Site home page Giter Site logo

aci_kubeadm's Introduction

End to End LAB Deployment with ACI-CNI

Requirements:

Ansible Host:

Supported OS:

  • Ubuntu 18

  • If you want you can grab an Ubuntu VM at this link: Ubuntu18

    • This VM is configured with:
      • 2 CPU, 16GB HD, 2GB RAM and 2 NIC
      • username/pass: cisco/123Cisco123
      • The VM IS NOT a Template. It is a normal VM with a Snapshot called "Base".
      • By default the scripts deployes Linked Clones, if you are ok with this no action is needed.
  • New Virtual Machine requirements:

    • One NICs
    • Install SSH and Python
    • PowerOff the VM, Createa a Snapshot.
      • If you call the Snapsop anything else than "Base" edit vm_snapshotname variale in inventory/group_vars/all.yml
  • All the VM parametes, hostname, IP etc... are taken from the inventory file and the inventory/group_vars/all.yml file.

Supported K8S Versions:

  • 1.17 (older should work as well)

ACI Fabric Pre-Requisites

Your fabric needs to have basic connectivity pre-configured for your hosts. This scripts assumes you are deploying VMs as such I expect to have ACI configured with VMM integration to your vCenter.

Tenant(s), VRF and L3OUT

For the tenant configuration you have two options:

  • Configure your kubernetes VRF and L3OUT in the common tenant and have a separate tenant for the Kubernetes cluster (Preferred Option)
  • Configure everything in a dedicated Kubernetes tenant

I would recommend to use the first option as, un-provisioning a cluster, deletes the Kubernetes Tenant and if you are redeploying it multiple time you will need to re-configure every time the VRF and L3OUT. The demo configuration that is in this repository is assuming you have deployed the VRF and the L3OUT in common.

Configure Host Note:

  • The hosts are configured with 2 interfaces:
    • ACI facing interface (ens192): This is the interface toward the ACI fabric and is the default GW of the nodes. You MUST have internet connectivity trough this interfaces.
    • Management interface (ens160): I expect the ansible host to be in the same subent, no you can't use this as your default GW

Download acc-provision:

From Cisco.com download dist-debs-<version>.tar.gz, unzip it and place the .deb file under roles/aci-host/files/ Thi scrips is pre-configured to use acc -provision_1.9.0-23_amd64.deb, if you use a diffenret file you need edit the inventory/group_vars/all.yml file.

Set the parameters

inventory/group_vars/all.yml

Customize inventory/group_vars/all.yml as per your requirements. The included file has the configuration of my lab and every option should be self explanatory or has a comment.

inventory/inventory

Configure your inventory file as per your requirements

Deploy with this command:

ansible-playbook -i inventory/inventory -b lab_setup.yml

Current Issues:

vmware_guest_network fails to select my existing DVS PortGroup and instead creates a new standard port group. Might be related to This Issue For now ansible will pause and wait for the user to fix the port group manually and then press return

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.