Skip to content

Installare un Bare Metal Cluster Kubernetes per testing e produzione senza utilizzare nessun servizio di terze parti. Riflessioni, guide e work in progress.

Notifications You must be signed in to change notification settings

lascuolaopensource/sos-cluster

Repository files navigation

SOS-CLUSTER

Installare un Bare Metal Cluster Kubernetes per testing e produzione senza utilizzare nessun servizio di terze parti (load balancer, storage, etc.).

Riflessioni, guide e work in progress.

In progress

  • HA storage

To do

  • Load balancing dei worker (Metallb)
  • Certificate issuer (Cert-manager)
  • CI/CD

Juju

Generare chiave ssh sul primo nodo:

ssh-keygen

Copiare la chiave ssh su tutti gli altri nodi:

ssh-copy-id node2@192.168.1.2
ssh-copy-id node3@192.168.1.3
ssh-copy-id node4@192.168.1.4
ssh-copy-id node5@192.168.1.5
ssh-copy-id node6@192.168.1.6
ssh-copy-id node7@192.168.1.7
ssh-copy-id node8@192.168.1.8
ssh-copy-id node9@192.168.1.9

Installare juju:

sudo snap install juju --classic

Creare il cloud:

juju add-cloud

Fare il bootstrap del controller:

juju bootstrap cloud_name manual_controller_name

Aggiungere le macchine al cloud creato:

juju add-machine ssh:node0@192.168.1.1
juju add-machine ssh:node1@192.168.1.2
juju add-machine ssh:node2@192.168.1.3
juju add-machine ssh:node3@192.168.1.4
juju add-machine ssh:node4@192.168.1.5
juju add-machine ssh:node5@192.168.1.6
juju add-machine ssh:node6@192.168.1.7
juju add-machine ssh:node7@192.168.1.8
juju add-machine ssh:node8@192.168.1.9

Deploy Charmed Kubernetes

Vanilla Bundle

Fare il deploy di Charmed Kubernetes sul nodo dove è installato juju:

juju deploy charmed-kubernetes --map-machines=existing

Custom bundle

Scaricare il modello custom sul nodo dove è installato juju e fare il deploy:

wget https://raw.githubusercontent.com/lascuolaopensource/pala-cluster/main/charmed-k8s-9nodi-180421.yaml
juju deploy ./*.yaml --map-machines=existing

Scalare master e kubeapi loadbalancer (solo per Vanilla Bundle)

juju add-unit -n 1 kubernetes-master --to 4
juju add-unit -n 2 kubeapi-load-balancer --to 4,5

Deploy HAcluster (solo per Vanilla Bundle)

juju deploy hacluster --series focal
juju config kubeapi-load-balancer ha-cluster-vip="192.168.1.10 192.168.1.11"
juju relate kubeapi-load-balancer hacluster

Teardown

Rimuovere cloud, modelli e controller (sperimentale)

juju destroy-model "MODEL_NAME"
juju destroy-contoller "CONTROLLER_NAME"
juju remove-cloud "CLOUD_NAME"
sudo /sbin/remove-juju-services
rm ~/.kube/config
rm /home/ubuntu/*

Links

GUI Per Juju

Vault come EasyRSA

Loadbalancer

Riflessioni su HA

HACluster

MetalLB

Storage

Rook-Ceph

Rook site

Rook + Ceph - Survival guide

CephFS

Ceph Cluster Configuration

NFS

HA NFS Storage

External NFS Storage Provider

Hosted NFS

NFS example

StorageOS

StorageOS su Juju

StorageOS Host Managing

Possibile Guida StorageOS

Juju Storage

Juju Storage Pools and Kubernetes

Juju Storage Read Write Many

About

Installare un Bare Metal Cluster Kubernetes per testing e produzione senza utilizzare nessun servizio di terze parti. Riflessioni, guide e work in progress.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published