User Tools

Site Tools


работа_с_хранилищами_в_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
работа_с_хранилищами_в_kubernetes [2024/04/08 14:13]
val
работа_с_хранилищами_в_kubernetes [2024/04/24 09:36] (current)
val [Запись вебинара]
Line 15: Line 15:
 ===== Запись вебинара ===== ===== Запись вебинара =====
  
-  * Будет здесь!!!+  * [[https://​www.youtube.com/​watch?​v=-5_XB4EcU9s]]
   * Тэги: Kubernetes, Keycloak, OpenID, PersistentVolume,​ PersistentVolumeClaim,​ rancher, local-path-provisioner,​ longhorn   * Тэги: Kubernetes, Keycloak, OpenID, PersistentVolume,​ PersistentVolumeClaim,​ rancher, local-path-provisioner,​ longhorn
- 
 ===== Методическая подготовка ===== ===== Методическая подготовка =====
  
   * Продолжение вебинаров [[Практические примеры Keycloak]] и [[Доступ к приложениям в Bare-Metal Kubernetes]] ​   * Продолжение вебинаров [[Практические примеры Keycloak]] и [[Доступ к приложениям в Bare-Metal Kubernetes]] ​
  
-===== Шаг 1. Подготовка =====+===== Шаг 1. Подготовка ​(сделано заранее) ​=====
  
   * Выключаем тестовый кластер (node) через [[Технология Vagrant]]   * Выключаем тестовый кластер (node) через [[Технология Vagrant]]
-  ​Устанавливаем 4GB для узлов кластера kube (попробовать 6144MB)+ 
 +  ​Выключаем kube кластер,​ устанавливаем 4GB для узлов, включаем
  
 ===== Шаг 2. Использование статических PV для приложений с PVC ===== ===== Шаг 2. Использование статических PV для приложений с PVC =====
Line 37: Line 37:
 </​code>​ </​code>​
  
-===== Шаг ​N. Управление заголовками в HAProxy и Ingress контроллере =====+===== Шаг ​3. Управление заголовками в HAProxy и Ingress контроллере =====
  
   * Устанавливаем [[Chrome]] на client2 ​   * Устанавливаем [[Chrome]] на client2 ​
Line 45: Line 45:
   * Добавляем use-forwarded-headers в конфигурацию [[Система Kubernetes#​ingress-nginx]]   * Добавляем use-forwarded-headers в конфигурацию [[Система Kubernetes#​ingress-nginx]]
  
-===== Шаг ​1. Использование local-path-provisioner для Dynamic Volume Provisioning =====+===== Шаг ​4. Использование local-path-provisioner для Dynamic Volume Provisioning =====
  
   * Удаляем Keycloak из [[Сервис Keycloak#​Kubernetes]] (можно ns), затем "​вручную"​ его [[Система Kubernetes#​Volumes]] и файлы с /disk2   * Удаляем Keycloak из [[Сервис Keycloak#​Kubernetes]] (можно ns), затем "​вручную"​ его [[Система Kubernetes#​Volumes]] и файлы с /disk2
Line 58: Line 58:
  
   * Удаляем Keycloak из [[Сервис Keycloak#​Kubernetes]] (можно ns), его PV и файлы удалятся автоматически ​   * Удаляем Keycloak из [[Сервис Keycloak#​Kubernetes]] (можно ns), его PV и файлы удалятся автоматически ​
-  * Удаляем [[Система Kubernetes#​rancher local-path-provisioner]] (лучше полностью,​ иначе останется sc)+  * Удаляем [[Система Kubernetes#​rancher local-path-provisioner]] (лучше полностью,​ иначеостанется sc)
  
-===== Шаг ​1. Использование распределенного блочного хранилища longhorn =====+===== Шаг ​5. Использование распределенного блочного хранилища longhorn =====
  
-==== Dynamic Volume Provisioning и отказоустойчивость ====+==== 5.1 Dynamic Volume Provisioning и отказоустойчивость ====
  
-  * Устанавливаем [[Система Kubernetes#​longhorn]] (open-iscsi на kube4 тоже) (5 минут)+  * Устанавливаем [[Система Kubernetes#​longhorn]] (open-iscsi ​и на kube4 тоже) (5 минут)
   * Указываем storageClass:​ longhorn и postgresql в values.yaml и устанавливаем Keycloak в [[Сервис Keycloak#​Kubernetes]] (10 минут)   * Указываем storageClass:​ longhorn и postgresql в values.yaml и устанавливаем Keycloak в [[Сервис Keycloak#​Kubernetes]] (10 минут)
   * Подключаемся к UI и настраиваем Pod Deletion Policy When Node is Down: delete-statefuset-pod   * Подключаемся к UI и настраиваем Pod Deletion Policy When Node is Down: delete-statefuset-pod
Line 71: Line 71:
   * Выключаем узел, на котором развернулся postgresql Keycloak (обычно kube3)   * Выключаем узел, на котором развернулся postgresql Keycloak (обычно kube3)
   * Дожидаемся восстановления работоспособность KK создаем пользователя   * Дожидаемся восстановления работоспособность KK создаем пользователя
 +<​code>​ 
 +kube1# kubectl -n my-keycloak-ns logs pods/​my-keycloak-1 -f | grep VALIDATION 
 +</​code>​
   * Проводим [[Система Kubernetes#​Удаление узла]] через kubeadm   * Проводим [[Система Kubernetes#​Удаление узла]] через kubeadm
   * Запускаем процесс [[Система Kubernetes#​Добавление узла через Kubespray]] (замена kube3 на kube4) и наблюдаем поведение longhorn (20 минут)   * Запускаем процесс [[Система Kubernetes#​Добавление узла через Kubespray]] (замена kube3 на kube4) и наблюдаем поведение longhorn (20 минут)
  
-==== Использование snapshot-ов ====+==== 5.2 Использование snapshot-ов ====
  
   * Проверяем [[Система Kubernetes#​Использование snapshot-ов]] в longhorn ​   * Проверяем [[Система Kubernetes#​Использование snapshot-ов]] в longhorn ​
  
-==== Использование backup-ов ====+==== 5.3 Использование backup-ов ====
  
   * Разворачиваем [[Сервис NFS]] на server ​   * Разворачиваем [[Сервис NFS]] на server ​
   * Выполняем [[Система Kubernetes#​Использование backup-ов]] в longhorn   * Выполняем [[Система Kubernetes#​Использование backup-ов]] в longhorn
 +
 +  * Можно выключить kube кластер ​
  
   * Включаем тестовый кластер (node) через [[Технология Vagrant]] (в Vagrantfile указать 4ГБ ОЗУ)   * Включаем тестовый кластер (node) через [[Технология Vagrant]] (в Vagrantfile указать 4ГБ ОЗУ)
   * Устанавливаем [[Система Kubernetes#​longhorn]] (5 минут)   * Устанавливаем [[Система Kubernetes#​longhorn]] (5 минут)
-<​code>​ +  * Технология Vagrant [[Технология Vagrant#​Provision с использованием внешних скриптов]]
-vagrant.exe ssh node2 -c 'sudo apt install open-iscsi -y'+
  
-vagrant.exe ssh node3 -c 'sudo apt install open-iscsi -y'+<​code>​ 
 +$ scp root@192.168.13.201:​.kube/​config ~/.kube/
 </​code>​ </​code>​
 +  * Подключаемся через UI [[Система Kubernetes#​longhorn]]
 +
  
-  * Подключаемся через UI 
   * Через [[Система Kubernetes#​Использование backup-ов]] восстанавливаем Volume (количество реплик = 2)   * Через [[Система Kubernetes#​Использование backup-ов]] восстанавливаем Volume (количество реплик = 2)
  
-  * Правим конфигурацию [[Система Kubernetes#​Baremetal ingress-nginx-controller]] +  * Правим конфигурацию [[Система Kubernetes#​Baremetal ingress-nginx-controller]] ​(ValidatingWebhookConfiguration,​ use-forwarded-headers) 
-  * Устанавливаем Keycloak в [[Сервис Keycloak#​Kubernetes]] (не указываем количество реплик ​КК+  * Устанавливаем Keycloak в [[Сервис Keycloak#​Kubernetes]] (не указываем количество реплик) 
-  * Правим настройки HAProxy+  * Правим настройки ​[[Решение ​HAProxy]] 
 + 
 +  * Дожидаемся загрузки Keycloak в [[Сервис Keycloak#​Kubernetes]] кластере node 
 + 
 +===== Вопросы?​ ===== 
 + 
 +===== Дополнительные материалы =====
  
-===== Как все вернуть обратно ​=====+==== Как все вернуть обратно ====
  
 <​code>​ <​code>​
Line 112: Line 123:
 $ cp .kube/​config_kube .kube/​config $ cp .kube/​config_kube .kube/​config
 </​code>​ </​code>​
-===== Вопросы?​ ===== 
- 
- 
работа_с_хранилищами_в_kubernetes.1712574822.txt.gz · Last modified: 2024/04/08 14:13 by val