TIPS Kubernates Project

Da GazziNet.
Versione del 15 mag 2024 alle 14:27 di Admin (discussione | contributi)
(diff) ← Versione meno recente | Versione attuale (diff) | Versione più recente → (diff)
Vai alla navigazione Vai alla ricerca

- Leggere teoria del DEVOPS -

Master Server Ruoli (alta disponibilità quindi consigliato isolarli a Vcenter o in macchine protette).

1- Gateway
2- Scheduling
3- Manager


Nodi mutevoli in base al ruolo che prendendo.

I Nodi master vengono chiamati Control plane vedi openshift: Al cui interno: KubeApiserver, etcd, control Manager, scheduler.

ETCD:  archivio che non ha che fare con ETC ma fa la stessa funzione e deve essere visibile da tutti, (Nasce da CoreOS) archivio chive valore veloce e distribuito- comunicazione scrittura e lettura JSON rest.
API: tutte le comunicazioni che http post e get di comunicazione - RESTFULL
KUBE-CONTROL-MANAGER: All'interno vi sono dei controller che effettuano attività varie.
SCHEDULER: Distribuzione del job piano dichiarativo e decide che fare.


Deployment - ReplicaSet - Replication Controller (Aggiornamenti)-> Controller di Replica gestione dei numero dei pod attivi aventi all'interno vari container.

Deployment - Oggetto che ReplicaSet/ReplicaController - Gestione alla C***ACR*

Per l'aggiornamento degli applicazione aggiorno i Replication Controller attraverso il deployments.

Stateful sets pod specializzati con ordinamento unico.


- Nei Nodi: Kubelet -> docker o contaniner manager locale / Network-proxy - KubeProxy ponte tra rete pods e rete esterna.


Master - Json (Manifest) -> Nodo Kubelet - Docker Engine

App consigliate:

- Cabin - Mobile Access a Kubernates
- kube-PSL (KubeShell alternative)
- Kube-Prompt

Monitoraggio:

- Kube-Ops-View (Monitoraggio open-source - MultiCluster) 

Installazione Applicativi:

- Teresa


Note a margine:

- Ingress - Bilanciatore di carico



Al di fuori del cluster che comunica solo e solamente con il Master. KubeCtl (Android, IOS)


kube-controller-manager / cloud-controller-manager (espansione verso il cloud)

https://metallb.universe.tf/configuration/

Le immagini vanno referenziate solo e solamente da Docker.



Distribuzioni Kubernates

1. MicroK8s
2. Charmed Kubernetas (Default di fatto)
3. Cloud Hosted
4. KubeADM (Usata prelevante su fisico)


[18:04] Emanuel Agro kubectl apply -f https://raw.githubusercontent.com/projectcalico/calico/v3.25.0/manifests/calico.yaml

enabled_plugins = ["cri"] [plugins."io.containerd.grpc.v1.cri".containerd]

 endpoint = "unix:///var/run/containerd/containerd.sock"


usare:

https://dev.to/ajeetraina/step-by-step-guide-installing-kubernetes-cluster-on-centos-8-e1g



Installazione nodi:


sudo yum install -y yum-utils;
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo;
sudo yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -y;
sudo systemctl start docker;
sudo systemctl enable docker;

USATPo: https://upcloud.com/resources/tutorials/install-kubernetes-cluster-centos-8


https://metallb.universe.tf/configuration/



# Set SELinux in permissive mode (effectively disabling it)
sudo setenforce 0
sudo sed -i 's/^SELINUX=enforcing$/SELINUX=permissive/' /etc/selinux/config
# This overwrites any existing configuration in /etc/yum.repos.d/kubernetes.repo
cat <<EOF | sudo tee /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://pkgs.k8s.io/core:/stable:/v1.29/rpm/
enabled=1
gpgcheck=1
gpgkey=https://pkgs.k8s.io/core:/stable:/v1.29/rpm/repodata/repomd.xml.key
exclude=kubelet kubeadm kubectl cri-tools kubernetes-cni
EOF
sudo yum install -y kubelet kubeadm kubectl --disableexcludes=kubernetes
sudo systemctl enable --now kubelet


kind: Job, CronJob



IGNORARE


Prereq project:

- Virtual Machine Linux - Docker Framework

Oracle Linux 8:

Problema pods c'e' installato un "coso" alternativo docker: https://www.ibm.com/docs/en/eam/4.2?topic=questions-troubleshooting-tips#uninstall_podman

 yum remove buildah skopeo podman containers-common atomic-registries docker container-tools -y 

Docker Framework: https://docs.docker.com/engine/install/centos/

Creazione un utente di gestione (simil ansible)

[root@minikube01 ~]# cd /etc
[root@minikube01 etc]# vi group
Add user generic es. admin in /etc/group gruppo docker
minikube config set driver docker
minikube start
kubectl port-forward service/hello-minikube 8080:8080 --address='0.0.0.0'


In caso di riavvio della macchina da utente admin:

http://10.2.2.35:7080/

minikube start


Links:

https://amalgjose.com/2021/06/08/how-to-configure-kubernetes-port-forward-bind-to-0-0-0-0-instead-of-default-127-0-0-1/
https://docs.docker.com/engine/install/centos/
https://minikube.sigs.k8s.io/docs/start/

-- Oracle Linux 9.3 --

sudo yum update
sudo yum install yum-utils
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
sudo yum install docker-ce docker-ce-cli containerd.io
sudo systemctl start docker
sudo systemctl enable docker

Test:

sudo docker --version


https://docs.oracle.com/en/learn/ol-kube/#introduction


sudo tee /etc/yum.repos.d/kubernetes.repo <<EOF
[kubernetes]
name=Kubernetes
baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-\$basearch
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg
EOF
sudo yum install -y kubelet kubeadm kubectl