доступ_к_приложениям_в_bare-metal_kubernetes

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
доступ_к_приложениям_в_bare-metal_kubernetes [2024/03/18 07:25]
val [Как все вернуть обратно]
доступ_к_приложениям_в_bare-metal_kubernetes [2025/03/18 15:36] (current)
val [Шаг 12. Использование ArgoCD для развертывания http приложения]
Line 14: Line 14:
 ===== Запись вебинара ===== ===== Запись вебинара =====
  
-  * Будет здесь!!!+  * [[https://​youtu.be/​oIczkkD-hOU|Доступ к приложениям в Bare-Metal Kubernetes]] ([[https://​rutube.ru/​video/​356186164509624a323079127c4bd690/​|RuTube]])
   * Тэги: 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 29: 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 38: Line 42:
 </​code>​ </​code>​
  
-  * GitLab и его registry c http доступом и проектом с образом gowebd+  * GitLab и его registry c http доступом и проектом с образом ​student/gowebd
  
 ===== Шаг 2. Переводим GitLab и его registry на https ===== ===== Шаг 2. Переводим GitLab и его registry на https =====
Line 118: Line 122:
 </​code>​ </​code>​
  
 +  * Тестируем отказоустойчивость,​ отключая узлы kubeN
 ===== Шаг 6. Делаем отказоустойчивым gate ===== ===== Шаг 6. Делаем отказоустойчивым gate =====
  
-  * Импортируем gate2+  * Импортируем gate2 (debian 12)
 <​code>​ <​code>​
-server# cat /etc/bind/corp13.un+server# cat /etc/bind/corpX.un
 </​code><​code>​ </​code><​code>​
 ... ...
-gate1           ​A ​      ​192.168.13.21 +gate1           ​A ​      ​192.168.X.21 
-gate2           ​A ​      ​192.168.13.22+gate2           ​A ​      ​192.168.X.22
 </​code>​ </​code>​
   * Превращаем gate в gate1    * Превращаем gate в gate1 
Line 181: Line 186:
 scp -3 gate1:/​etc/​resolv.conf gate2:/etc/ scp -3 gate1:/​etc/​resolv.conf gate2:/etc/
 scp -3 gate1:/​etc/​sysctl.conf gate2:/etc/ scp -3 gate1:/​etc/​sysctl.conf gate2:/etc/
 +scp -3 gate1:/​etc/​sysctl.d/​* gate2:/​etc/​sysctl.d/​
  
 gate2# hostnamectl set-hostname gate2.corp13.un gate2# hostnamectl set-hostname gate2.corp13.un
Line 202: Line 208:
   * Сервис 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 
 +  или 
 +server# ssh gate2 journalctl -f
 </​code>​ </​code>​
  
   * Обсуждаем достоинства (все работает) и недостатки (учет IP адресов в ПО версии 0.14.3 :)   * Обсуждаем достоинства (все работает) и недостатки (учет IP адресов в ПО версии 0.14.3 :)
-  * Если есть время и желание выполняем [[#Шаг 6.2. Закрываем доступ в сеть кластера]]+ 
 +===== Шаг 6.2. Закрываем доступ в сеть кластера ​=====  
 + 
 +  * Добавляем [[Сервис NAT]] 
 +<​code>​ 
 +gateN# apt install iptables conntrack iptables-persistent 
 + 
 +gateN# 
 +</​code>​ 
 + 
 +!!! Скопируйте в блокнот и поправьте номер стенда X !!! 
 + 
 +<​code>​ 
 +iptables -t nat --flush 
 +iptables -t nat -A POSTROUTING -o eth1 -j SNAT --to-source 172.16.1.X 
 +iptables -t nat -A PREROUTING -i eth1 --destination 172.16.1.X -p udp --dport 53 -j DNAT --to-destination 192.168.X.10:​53 
 + 
 +iptables --flush 
 +iptables -A FORWARD -i eth0 -j ACCEPT 
 +iptables -A FORWARD -m conntrack --ctstate RELATED,​ESTABLISHED -j ACCEPT 
 +iptables -A FORWARD -i eth1 -p udp -d 192.168.X.10 --dport 53 -j ACCEPT 
 +iptables -A FORWARD -j DROP 
 + 
 +conntrack -F 
 +netfilter-persistent save 
 +</​code>​ 
 + 
 +  * Настраиваем win client2 dns: 172.16.1.X
  
 ===== Шаг 7. Заменяем nginx на ingress-nginx ===== ===== Шаг 7. Заменяем nginx на ingress-nginx =====
Line 219: Line 254:
 </​code>​ </​code>​
  
-  * Установка [[Система Kubernetes#​Helm]] на kube1+  * Установка [[Система Kubernetes#​Helm]] на kube1   !!! Может быть уже установлен
   * Развертываем через [[Система Kubernetes#​Работа с готовыми Charts]] [[Система Kubernetes#​ingress-nginx]]   * Развертываем через [[Система Kubernetes#​Работа с готовыми Charts]] [[Система Kubernetes#​ingress-nginx]]
  
Line 232: Line 267:
  
 <​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 291: Line 326:
  
   * Удаляем приложение,​ можно просто namespace ​   * Удаляем приложение,​ можно просто namespace ​
 +  * Переименовываем в gowebd-k8s .gitlab-ci.yml_stop
 <​code>​ <​code>​
 kube1# kubectl delete ns my-ns kube1# kubectl delete ns my-ns
Line 318: Line 354:
  
 ===== Шаг 14. Готовимся к развертыванию Кeycloak ===== ===== Шаг 14. Готовимся к развертыванию Кeycloak =====
 +
 +!!! В классе,​ если нет второго кластера,​ можно просто посмотреть !!!
  
   * Настраиваем HAProxy на работу с несколькими кластерами   * Настраиваем HAProxy на работу с несколькими кластерами
Line 343: Line 381:
 ===== Дополнительные материалы ===== ===== Дополнительные материалы =====
  
-===== Шаг 6.2. Закрываем доступ в сеть кластера =====  +==== Как все вернуть обратно ====
- +
-  * Добавляем [[Сервис NAT]] +
-<​code>​ +
-gateN# apt install iptables conntrack iptables-persistent +
- +
-gateN# cat natfw.sh +
-</​code><​code>​ +
-iptables -t nat --flush +
-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 --flush +
-iptables -A FORWARD -i eth0 -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 -j DROP +
- +
-conntrack -F +
-netfilter-persistent save +
-</​code>​ +
- +
-  * Настраиваем win client2 dns: 172.16.1.13 +
- +
-===== Как все вернуть обратно ​=====+
  
   * 1. Удалить gowebd с kube   * 1. Удалить gowebd с kube
доступ_к_приложениям_в_bare-metal_kubernetes.1710735926.txt.gz · Last modified: 2024/03/18 07:25 by val