This is an old revision of the document!
Laboratorul 05. Kubernetes
5.1. Pods
Nota: pe parcursul laboratoarelor de mai jos, va rog sa inlocuiti “id” cu numarul aferent fiecarui student.
mkdir ~/.kube
cp config ~/.kube
kubectl get nodes
kubectl config view
kubectl create ns student[id]
kubectl get ns
kubectl config set-context –current –namespace=student[id]
kubectl config view
kubectl apply -f pod01.yaml
kubectl get pods
kubectl get pods webserver-student-id -owide
kubectl get pods webserver-student-id -oyaml
kubectl exec -it webserver-student-id – bash
kubectl delete pod webserver-student-id
kubectl get po -o wide # Should output “No resources found.”
kubectl apply -f pod02.yaml
kubectl get po -o wide
kubectl describe pod webserver
kubectl exec -it webserver -c webwatcher – /bin/bash
root@webserver:/# cat /etc/os-release
kubectl exec -it webserver -c webserver – /bin/bash
root@webserver:/# cat /etc/os-release
kubectl delete -f pod02.yaml
kubectl apply -f pod03.yaml
kubectl exec webserver -c c1 – /bin/cat /usr/share/nginx/html/index.html
kubectl exec webserver -c c2 – /bin/cat /html/index.html
kubectl delete pod webserver
cd ../Laborator2
5.2. Deployments, stateless/stateful
Deployments - de obicei folosit de aplicatii stateless
kubectl apply -f deploy-01.yaml
kubectl get deployments
kubectl get pods
kubectl get replicaset
kubectl scale deployments/nginx-deployment –replicas=4
kubectl get pods -o wide # vom vedea 4 pod-uri
kubectl scale deployments/nginx-deployment –replicas=2
kubectl get pods -o wide
kubectl set image deployments/nginx-deployment nginx=nginx:1.9.1
kubectl rollout undo deployments/nginx-deployment
kubectl rollout status deployments/nginx-deployment
kubectl describe deploy nginx-deployment
kubectl delete deployment nginx-deployment
Statefulset - aplicatii stateful
/exports/data-0001
/exports/data-0002
sudo showmount -e localhost
Fiecare student va folosi propria adresa ip, mai departe in cadrul acestui laborator.
Adresa ip poate fi obtinuta folosind comanda de mai jos
ip -f inet addr show ens3
Editati fisierele nfs-0001.yaml si nfs-0002.yaml, adaugand adresa ip proprie in campul
spec.nfs.server si actualizati campul metadata.name cu id-ul de student aferent.
kubectl apply -f nfs-0001.yaml
kubectl apply -f nfs-0002.yaml
kubectl get pv | grep studentid
kubectl describe pv <pv_name>
kubectl apply -f statefulset-01.yaml
kubectl get statefulset
kubectl describe statefulset
kubectl get pods
echo 'Hello World' /exports/data-0001/index.html
echo “Hello $USER” > /exports/data-0002/index.html
kubectl exec -it web-0 – cat /usr/share/nginx/html/index.html
kubectl exec -it web-1 – cat /usr/share/nginx/html/index.html
kubectl create -f service.yaml
kubectl describe svc nginx
kubectl delete -f statefulset-01.yaml
cd ../Laborator3
5.3. Daemonsets
Daemonset-urile sunt resurse stateless, folosite pentru a putea rula, spre exemplu, un proces pe toate nodurile din cluster.
Daemonset-urile se asigura ca anumite nod-uri Kubernetes sau chiar toate ruleaza o copie a unui pod.
Editam continutul fisierului daemonset.yaml, actualizand “student[id]” cu id-ul corespunzator
vi daemonset.yaml
kubectl apply -f daemonset.yaml
kubectl get pods -owide
kubectl describe daemonset daemonset-studentid
vi daemonset.yaml
kubectl apply -f daemonset.yaml
kubectl get daemonset
kubectl get pods -owide
kubectl delete pod daemonset-student[id]-xxxxx
kubectl delete daemonset daemonset-student[id]
sau
kubectl delete -f daemonset.yaml