This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
доступ_к_приложениям_в_bare-metal_kubernetes [2024/03/17 10:12] val [Шаг 6.2. Закрываем доступ в сеть кластера] |
доступ_к_приложениям_в_bare-metal_kubernetes [2024/04/04 08:20] (current) val [Шаг 1. Исходные данные] |
||
---|---|---|---|
Line 14: | Line 14: | ||
===== Запись вебинара ===== | ===== Запись вебинара ===== | ||
- | * Будет здесь!!! | + | * https://youtu.be/oIczkkD-hOU |
* Тэги: Kubernetes, LoadBalancer, ClusterIP, MetalLB, Nginx, Keepalived, Ingress-Nginx, Helm, HAProxy, ArgoCD, Dashboard | * Тэги: Kubernetes, LoadBalancer, ClusterIP, MetalLB, Nginx, Keepalived, Ingress-Nginx, Helm, HAProxy, ArgoCD, Dashboard | ||
Line 21: | Line 21: | ||
* В процессе прохождения курса [[DevOps2. Использование Kubernetes]] в конце лабораторной работы 5.3 обнаружено, что кластер kubernetes, развернутый kubespray не поддерживает insecure-registry | * В процессе прохождения курса [[DevOps2. Использование Kubernetes]] в конце лабораторной работы 5.3 обнаружено, что кластер kubernetes, развернутый kubespray не поддерживает insecure-registry | ||
* Вместо решения, описанного в последнем фрагменте видео выбираем альтернативный вариант | * Вместо решения, описанного в последнем фрагменте видео выбираем альтернативный вариант | ||
- | |||
- | ==== Вернуть обратно ==== | ||
- | |||
- | * 1. Удалить gowebd с kube | ||
- | <code> | ||
- | kube1:~# kubectl delete -f application.yaml | ||
- | |||
- | kube1:~# kubectl delete ns my-ns | ||
- | |||
- | kube1:~# rm application.yaml | ||
- | |||
- | kube1:~# crictl rmi server.corp13.un:5000/student/gowebd:ver1.1 | ||
- | |||
- | kube1:~# crictl rmi server.corp13.un:5000/student/gowebd:ver1.2 | ||
- | </code> | ||
- | * 2. Удалить [[Система Kubernetes#Kubernetes Dashboard]] и Argo CD | ||
- | <code> | ||
- | kube1:~# kubectl delete -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml | ||
- | |||
- | kube1:~# kubectl delete ns argocd | ||
- | |||
- | cmder> rm -rf ~/.kube/ | ||
- | |||
- | cmder> rm /usr/bin/kubectl.exe | ||
- | </code> | ||
- | * 3. Удалить ingress-nginx и Helm с kube1 | ||
- | <code> | ||
- | kube1:~# helm delete ingress-nginx --namespace ingress-nginx | ||
- | |||
- | kube1:~# kubectl delete ns ingress-nginx | ||
- | |||
- | kube1:~# rm -r helm* linux-amd64/ /usr/local/bin/helm | ||
- | |||
- | kube1:~# rm -r gowebd/ ingress-nginx/ | ||
- | </code> | ||
- | * 4. Удалить корневые сертификаты с kubeN | ||
- | <code> | ||
- | kubeN# | ||
- | rm /usr/local/share/ca-certificates/ca.crt /etc/ssl/certs/ca.pem | ||
- | update-ca-certificates | ||
- | systemctl restart containerd | ||
- | </code> | ||
- | * 5. Удалить манифесты и сертификаты проекта gowebd с kube1 | ||
- | <code> | ||
- | kube1:~# rm gowebd.crt gowebd.key my-ingress.yaml my-webd-service.yaml my-webd-deployment.yaml | ||
- | </code> | ||
- | * 6. Удалить VM client2 и gate2 | ||
- | * 7. Перезагрузить gate.isp.un | ||
- | * 8. Восстановить из снапшотов gate и server | ||
- | * 9. Удалить каталог, которого не было в курсе | ||
- | <code> | ||
- | server# rm -rf /var/www/ | ||
- | </code> | ||
===== Шаг 1. Исходные данные ===== | ===== Шаг 1. Исходные данные ===== | ||
Line 82: | Line 29: | ||
~/kubespray# time ansible-playbook -i inventory/mycluster/hosts.yaml reset.yml | ~/kubespray# time ansible-playbook -i inventory/mycluster/hosts.yaml reset.yml | ||
- | ~/kubespray# cp -rfp inventory/sample/* inventory/mycluster | + | ~/kubespray# git checkout origin/release-2.22 |
+ | |||
+ | ~/kubespray# time pip3 install -r requirements.txt | ||
+ | |||
+ | ~/kubespray# cp -rvfpT inventory/sample inventory/mycluster | ||
~/kubespray# time ansible-playbook -i inventory/mycluster/hosts.yaml cluster.yml | ~/kubespray# time ansible-playbook -i inventory/mycluster/hosts.yaml cluster.yml | ||
Line 171: | Line 122: | ||
</code> | </code> | ||
+ | * Тестируем отказоустойчивость, отключая узлы kubeN | ||
===== Шаг 6. Делаем отказоустойчивым gate ===== | ===== Шаг 6. Делаем отказоустойчивым gate ===== | ||
Line 255: | Line 207: | ||
* Сервис Nginx [[Сервис HTTP#Подключение, тестирование, применение и мониторинг конфигурации]] | * Сервис Nginx [[Сервис HTTP#Подключение, тестирование, применение и мониторинг конфигурации]] | ||
<code> | <code> | ||
- | server# ssh gateN tail -f /var/log/messages | + | server# ssh gate1 tail -f /var/log/nginx/access.log |
- | server# ssh gateN tail -f /var/log/nginx/access.log | + | server# ssh gate2 tail -f /var/log/messages |
</code> | </code> | ||
Line 285: | Line 237: | ||
<code> | <code> | ||
- | kube1:~# curl https://kubeN/ -H "Host: gowebd.corpX.un" -k | + | $ curl --connect-to "":"":kubeN:443 https://gowebd.corpX.un #-vk |
</code> | </code> | ||
Line 402: | Line 354: | ||
gateN# apt install iptables conntrack iptables-persistent | gateN# apt install iptables conntrack iptables-persistent | ||
- | gateN# cat natfw.sh | + | gateN# |
</code><code> | </code><code> | ||
iptables -t nat --flush | iptables -t nat --flush | ||
- | iptables -t nat -A POSTROUTING -o eth1 -s 192.168.13.0/24 -j SNAT --to-source 172.16.1.13 | + | iptables -t nat -A POSTROUTING -o eth1 -j SNAT --to-source 172.16.1.13 |
iptables -t nat -A PREROUTING -i eth1 --destination 172.16.1.13 -p udp --dport 53 -j DNAT --to-destination 192.168.13.10:53 | iptables -t nat -A PREROUTING -i eth1 --destination 172.16.1.13 -p udp --dport 53 -j DNAT --to-destination 192.168.13.10:53 | ||
iptables --flush | iptables --flush | ||
+ | iptables -A FORWARD -i eth0 -j ACCEPT | ||
iptables -A FORWARD -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT | iptables -A FORWARD -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT | ||
iptables -A FORWARD -i eth1 -p udp -d 192.168.13.10 --dport 53 -j ACCEPT | iptables -A FORWARD -i eth1 -p udp -d 192.168.13.10 --dport 53 -j ACCEPT | ||
- | #iptables -A FORWARD -i eth1 -p tcp -d 192.168.13.10 --dport 443 -j ACCEPT | ||
iptables -A FORWARD -j DROP | iptables -A FORWARD -j DROP | ||
- | conntrack -F | ||
+ | conntrack -F | ||
netfilter-persistent save | netfilter-persistent save | ||
</code> | </code> | ||
Line 420: | Line 372: | ||
* Настраиваем win client2 dns: 172.16.1.13 | * Настраиваем win client2 dns: 172.16.1.13 | ||
+ | ===== Как все вернуть обратно ===== | ||
+ | |||
+ | * 1. Удалить gowebd с kube | ||
+ | <code> | ||
+ | kube1:~# kubectl delete -f application.yaml | ||
+ | |||
+ | kube1:~# kubectl delete ns my-ns | ||
+ | |||
+ | kube1:~# rm application.yaml | ||
+ | |||
+ | kube1:~# crictl rmi server.corp13.un:5000/student/gowebd:ver1.1 | ||
+ | |||
+ | kube1:~# crictl rmi server.corp13.un:5000/student/gowebd:ver1.2 | ||
+ | </code> | ||
+ | * 2. Удалить [[Система Kubernetes#Kubernetes Dashboard]] и Argo CD | ||
+ | <code> | ||
+ | kube1:~# kubectl delete -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml | ||
+ | |||
+ | kube1:~# kubectl delete ns argocd | ||
+ | |||
+ | cmder> rm -rf ~/.kube/ | ||
+ | |||
+ | cmder> rm /usr/bin/kubectl.exe | ||
+ | </code> | ||
+ | * 3. Удалить ingress-nginx и Helm с kube1 | ||
+ | <code> | ||
+ | kube1:~# helm delete ingress-nginx --namespace ingress-nginx | ||
+ | |||
+ | kube1:~# kubectl delete ns ingress-nginx | ||
+ | |||
+ | kube1:~# rm -r helm* linux-amd64/ /usr/local/bin/helm | ||
+ | |||
+ | kube1:~# rm -r gowebd/ ingress-nginx/ | ||
+ | </code> | ||
+ | * 4. Удалить корневые сертификаты с kubeN | ||
+ | <code> | ||
+ | kubeN# | ||
+ | rm /usr/local/share/ca-certificates/ca.crt /etc/ssl/certs/ca.pem | ||
+ | update-ca-certificates | ||
+ | systemctl restart containerd | ||
+ | </code> | ||
+ | * 5. Удалить манифесты и сертификаты проекта gowebd с kube1 | ||
+ | <code> | ||
+ | kube1:~# rm gowebd.crt gowebd.key my-ingress.yaml my-webd-service.yaml my-webd-deployment.yaml | ||
+ | </code> | ||
+ | * 6. Удалить VM client2 и gate2 | ||
+ | * 7. Перезагрузить gate.isp.un | ||
+ | * 8. Восстановить из снапшотов gate и server | ||
+ | * 9. Удалить, чего не было в курсе | ||
+ | <code> | ||
+ | server# rm -rf /var/www/ | ||
+ | |||
+ | server# rm server.key | ||
+ | </code> |