Skip to content

Deploy de servidores no vmware e criação de cluster kubernetes automatizada

Notifications You must be signed in to change notification settings

bmcentos/ansibe_k8s_on_vmware

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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

#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

About

Deploy de servidores no vmware e criação de cluster kubernetes automatizada

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published