Code Monkey home page Code Monkey logo

ansibe_k8s_on_vmware's Introduction

###############################################################################

#Objetivo desse projeto é provisionar maquinas automaticamente no VmWare, instalanco um cluster Kubernetes em alta disponibilidade (Multi Mater), com load balancers e Rancher ja configurado

Deploy automatico no vSphere de cluster Kubernetes, Single e Multi master
- MetalLb
- Metrics Server
- Ingress Controller com service LoadBalancer
- Rancher

#####################################################################

#By Bruno Miquelini

#Versão: 1.0

#Released: 05/2022

Estrutura:

  • Caso a flag "lb_enabled: yes" em vars/vars_files.yaml esteja habilitada, será realizado o deploy de um cluter multi master, para isso informar no arquivo de inventario hosts, no grupo lb, as maquinas que farão parte do cluster
  • Caso utilize CentOs, adicionar a flag satellite_enabled:no
  • O Load balancer irá trabalhar com o Keepalibed, para manter um IP flutuante entre os Nós
  • Esse IP flutuante será o endereço de API Server do cluster Kubernetes
  • Caso seja criado um cluster Single master, adicionar apenas um host no grupo [master], e remover as entradas de hosts do grupo [lb], assim como desabilitar a flag "lb_enabled

#Caso queira fazer modificações nos templates de VM, como por exemplo servidores DNS, modificar os aruivos ''' - playbooks/k8s.yaml - playbooks/haproxy.yaml - playbooks/rancher.yaml '''

#Estrutura de arquivos

├── deploy.yaml    #Main, arquivo que fará o deploy da stack
├── files
│   ├── 10-flannel.conflist
│   ├── cni.yaml
│   ├── crictl.yaml
│   ├── internet-ingress.yaml
│   ├── kubelet.service
│   ├── kubernetes.repo
│   ├── metallb.yaml
│   └── metrics-server.yaml
├── get_cni.sh
├── hosts	#Arquivo onde serão definido os hosts 
├── playbooks
│   ├── cluster.yaml
│   ├── haproxy.yaml
│   ├── k8s.yaml
│   ├── lb.yaml
│   ├── master.yaml
│   ├── rancher.yaml
│   └── worker.yaml
├── templates
│   ├── cm_metallb.yaml.j2
│   ├── config.toml.j2
│   ├── containerd.service.j2
│   ├── containerdInstall.sh.j2
│   ├── docker-http-proxy.conf.j2
│   ├── haproxy.cfg.j2
│   ├── import-cluster-rancher.sh.j2 
│   ├── keepalived.conf.j2
│   └── yum.conf.j2
└── vars
    └── vars_file.yaml   #Arquivo de definição de variaveis

#uso:

Antes de executar, confirmar se seu arquivo hosts e vars/vars_file.yaml estão devidamente ajustados

ansible-playbook -i hosts deploy.yaml    #-k, caso prefira usar a senha

A Execução levará aproximadamente 30 minutos, com a conclusão das tarefas abaixo:

image

Nodes instalados

image

Metric Server instalado

image

Ingress Controller ja instalado com endereço Externo

image

MetalLb ja instalado

image

Rancher Server

image

ansibe_k8s_on_vmware's People

Contributors

bmcentos avatar

Watchers

 avatar

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.