TIPS Kubernates Project
- 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)
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"
https://infotechys.com/install-a-kubernetes-cluster-on-rhel-9/
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;
# 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
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