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/18 08:50] val [Шаг 6.2. Закрываем доступ в сеть кластера] |
доступ_к_приложениям_в_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 121: | Line 125: | ||
| ===== Шаг 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 182: | 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 206: | Line 211: | ||
| server# ssh gate2 tail -f /var/log/messages | 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 220: | Line 254: | ||
| </code> | </code> | ||
| - | * Установка [[Система Kubernetes#Helm]] на kube1 | + | * Установка [[Система Kubernetes#Helm]] на kube1 !!! Может быть уже установлен |
| * Развертываем через [[Система Kubernetes#Работа с готовыми Charts]] [[Система Kubernetes#ingress-nginx]] | * Развертываем через [[Система Kubernetes#Работа с готовыми Charts]] [[Система Kubernetes#ingress-nginx]] | ||
| Line 233: | 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 292: | 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 319: | Line 354: | ||
| ===== Шаг 14. Готовимся к развертыванию Кeycloak ===== | ===== Шаг 14. Готовимся к развертыванию Кeycloak ===== | ||
| + | |||
| + | !!! В классе, если нет второго кластера, можно просто посмотреть !!! | ||
| * Настраиваем HAProxy на работу с несколькими кластерами | * Настраиваем HAProxy на работу с несколькими кластерами | ||
| Line 344: | Line 381: | ||
| ===== Дополнительные материалы ===== | ===== Дополнительные материалы ===== | ||
| - | ===== Шаг 6.2. Закрываем доступ в сеть кластера ===== | + | ==== Как все вернуть обратно ==== |
| - | + | ||
| - | * Добавляем [[Сервис NAT]] | + | |
| - | <code> | + | |
| - | gateN# apt install iptables conntrack iptables-persistent | + | |
| - | + | ||
| - | gateN# | + | |
| - | </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 | ||