This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision Next revision Both sides next revision | ||
система_kubernetes [2024/04/11 09:33] val [Развертывание через kubeadm] |
система_kubernetes [2024/06/03 09:50] val [Развертывание через Kubespray] |
||
---|---|---|---|
Line 265: | Line 265: | ||
$ kubectl cordon kube3 | $ kubectl cordon kube3 | ||
- | $ time kubectl drain kube3 --force --ignore-daemonsets --delete-emptydir-data | + | $ time kubectl drain kube3 #--ignore-daemonsets --delete-emptydir-data --force |
$ kubectl delete node kube3 | $ kubectl delete node kube3 | ||
Line 333: | Line 333: | ||
==== Развертывание через Kubespray ==== | ==== Развертывание через Kubespray ==== | ||
+ | |||
+ | === !!! Обратитесь к преподавателю !!! === | ||
* [[https://github.com/kubernetes-sigs/kubespray]] | * [[https://github.com/kubernetes-sigs/kubespray]] | ||
Line 348: | Line 350: | ||
kube1# ssh-copy-id kube1;ssh-copy-id kube2;ssh-copy-id kube3;ssh-copy-id kube4; | kube1# ssh-copy-id kube1;ssh-copy-id kube2;ssh-copy-id kube3;ssh-copy-id kube4; | ||
- | kube1# apt update | + | kube1# #apt update |
- | kube1# apt install python3-pip -y | + | kube1# #apt install python3-pip -y |
kube1# git clone https://github.com/kubernetes-sigs/kubespray | kube1# git clone https://github.com/kubernetes-sigs/kubespray | ||
Line 360: | Line 362: | ||
~/kubespray# git branch -r | ~/kubespray# git branch -r | ||
- | ~/kubespray# ### git checkout origin/release-2.22 | + | ~/kubespray# git checkout origin/release-2.22 |
~/kubespray# git tag -l | ~/kubespray# git tag -l | ||
~/kubespray# ### git checkout tags/v2.22.1 | ~/kubespray# ### git checkout tags/v2.22.1 | ||
- | ~/kubespray# git checkout 4c37399c7582ea2bfb5202c3dde3223f9c43bf59 | + | ~/kubespray# ### git checkout 4c37399c7582ea2bfb5202c3dde3223f9c43bf59 |
~/kubespray# ### git checkout master | ~/kubespray# ### git checkout master | ||
Line 384: | Line 386: | ||
~/kubespray# less inventory/mycluster/hosts.yaml | ~/kubespray# less inventory/mycluster/hosts.yaml | ||
+ | </code> | ||
+ | * [[Сервис Ansible#Использование модулей]] Ansible для отключения swap | ||
+ | * Настройка registry-mirrors для установки и работы кластера | ||
+ | <code> | ||
+ | ~/kubespray# cat inventory/mycluster/group_vars/all/docker.yml | ||
+ | </code><code> | ||
+ | ... | ||
+ | docker_registry_mirrors: | ||
+ | - https://mirror.gcr.io | ||
+ | ... | ||
+ | </code><code> | ||
+ | ~/kubespray# cat inventory/mycluster/group_vars/all/containerd.yml | ||
+ | </code><code> | ||
+ | ... | ||
+ | containerd_registries_mirrors: | ||
+ | - prefix: docker.io | ||
+ | mirrors: | ||
+ | - host: https://mirror.gcr.io | ||
+ | capabilities: ["pull", "resolve"] | ||
+ | skip_verify: false | ||
+ | ... | ||
+ | </code> | ||
+ | * Развертывание кластера | ||
+ | <code> | ||
~/kubespray# time ansible-playbook -i inventory/mycluster/hosts.yaml cluster.yml | ~/kubespray# time ansible-playbook -i inventory/mycluster/hosts.yaml cluster.yml | ||
real 45m31.796s | real 45m31.796s | ||
Line 395: | Line 421: | ||
=== Добавление узла через Kubespray === | === Добавление узла через Kubespray === | ||
+ | |||
+ | * [[https://github.com/kubernetes-sigs/kubespray/blob/master/docs/operations/nodes.md|Adding/replacing a node (github.com/kubernetes-sigs/kubespray)]] | ||
+ | * [[https://nixhub.ru/posts/k8s-nodes-scale/|K8s - добавление нод через kubespray]] | ||
+ | |||
<code> | <code> | ||
~/kubespray# cat inventory/mycluster/hosts.yaml | ~/kubespray# cat inventory/mycluster/hosts.yaml | ||
Line 470: | Line 500: | ||
$ kubectl delete pod my-debian | $ kubectl delete pod my-debian | ||
+ | $ ###kubectl delete pod my-debian --grace-period=0 --force | ||
$ kubectl create deployment my-debian --image=debian -- "sleep" "3600" | $ kubectl create deployment my-debian --image=debian -- "sleep" "3600" | ||
Line 598: | Line 629: | ||
$ kubectl delete pod/my-webd-NNNNNNNNNN-NNNNN -n my-ns | $ kubectl delete pod/my-webd-NNNNNNNNNN-NNNNN -n my-ns | ||
+ | </code> | ||
+ | |||
+ | * [[https://learnk8s.io/kubernetes-rollbacks|How do you rollback deployments in Kubernetes?]] | ||
+ | |||
+ | <code> | ||
+ | gitlab-runner@server:~$ kubectl -n my-ns rollout history deployment/my-webd | ||
+ | deployment.apps/my-webd | ||
+ | REVISION CHANGE-CAUSE | ||
+ | 1 <none> | ||
+ | ... | ||
+ | N <none> | ||
+ | |||
+ | gitlab-runner@server:~$ kubectl -n my-ns rollout history deployment/my-webd --revision=1 | ||
+ | ... | ||
+ | Image: server.corpX.un:5000/student/webd:ver1.1 | ||
+ | ... | ||
+ | |||
+ | kubectl -n my-ns rollout undo deployment/my-webd --to-revision=1 | ||
+ | |||
+ | gitlab-runner@server:~$ kubectl -n my-ns rollout undo deployment/my-webd --to-revision=1 | ||
+ | |||
+ | gitlab-runner@server:~$ kubectl -n my-ns rollout history deployment/my-webd | ||
+ | deployment.apps/my-webd | ||
+ | REVISION CHANGE-CAUSE | ||
+ | 2 <none> | ||
+ | ... | ||
+ | N+1 <none> | ||
</code> | </code> | ||
Line 648: | Line 706: | ||
$ minikube service list | $ minikube service list | ||
- | $ minikube service my-webd -n my-ns --url | + | $ minikube service my-webd --url -n my-ns |
http://192.168.49.2:NNNNN | http://192.168.49.2:NNNNN | ||
- | $ curl $(minikube service my-webd -n my-ns --url) | + | $ curl http://192.168.49.2:NNNNN |
</code> | </code> | ||
Line 697: | Line 755: | ||
$ ### kubectl delete -f first-pool.yaml && rm first-pool.yaml | $ ### kubectl delete -f first-pool.yaml && rm first-pool.yaml | ||
- | $ ### kubectl apply -f https://raw.githubusercontent.com/metallb/metallb/v0.14.3/config/manifests/metallb-native.yaml | + | $ ### kubectl delete -f https://raw.githubusercontent.com/metallb/metallb/v0.14.3/config/manifests/metallb-native.yaml |
</code> | </code> | ||
Line 1158: | Line 1216: | ||
== Использование backup-ов == | == Использование backup-ов == | ||
+ | |||
+ | * Разворачиваем [[Сервис NFS]] на server | ||
+ | |||
<code> | <code> | ||
Setting -> General -> Backup Target -> nfs://server.corp13.un:/var/www (nfs client linux не нужен) | Setting -> General -> Backup Target -> nfs://server.corp13.un:/var/www (nfs client linux не нужен) |