This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision Next revision | Previous revision | ||
|
devsecops_и_промышленные_решения [2026/02/21 11:44] val [2.3 Стратегии развертывания и масштабирование нагрузки] |
devsecops_и_промышленные_решения [2026/03/16 10:47] (current) val [2.4 ArgoCD и универсальный Helm Chart] |
||
|---|---|---|---|
| Line 120: | Line 120: | ||
| * [[Система Kubernetes#MetalLB]] | * [[Система Kubernetes#MetalLB]] | ||
| * [[Система Kubernetes#Установка Helm]] | * [[Система Kubernetes#Установка Helm]] | ||
| + | |||
| + | * [[Как и чем заменить Ingress NGINX]] | ||
| * [[Система Kubernetes#traefik]] | * [[Система Kubernetes#traefik]] | ||
| Line 236: | Line 238: | ||
| * Для демонстрации OpenID можно создать УЗ user1 через [[Инструмент GitLab#REST API интерфейс]] и связать через [[Инструмент GitLab#Клиент OpenID]] | * Для демонстрации OpenID можно создать УЗ user1 через [[Инструмент GitLab#REST API интерфейс]] и связать через [[Инструмент GitLab#Клиент OpenID]] | ||
| - | ==== 2.3 ArgoCD и универсальный Helm Chart ==== | + | ==== 2.3 Стратегии развертывания и масштабирование нагрузки ==== |
| + | |||
| + | * htwebd A 192.168.X.66 | ||
| - | * [[Как и чем заменить Ingress NGINX]] | ||
| * [[Система Kubernetes#Deployment]] | * [[Система Kubernetes#Deployment]] | ||
| - | * [[Система Kubernetes#Service]] | ||
| <code> | <code> | ||
| Line 251: | Line 253: | ||
| cd /usr/local/apache2/htdocs/ | cd /usr/local/apache2/htdocs/ | ||
| echo "<h1>Hello from htwebd on $(hostname) ver1.1</h1>" > index.html | echo "<h1>Hello from htwebd on $(hostname) ver1.1</h1>" > index.html | ||
| - | </code><code> | + | </code> |
| - | kube1:~/traefik# kubectl get ingressclasses | + | |
| - | kube1:~/webd-k8s# cat my-ingressroute.yaml | + | * [[Система Kubernetes#Service]] |
| - | </code><code> | + | |
| - | apiVersion: traefik.io/v1alpha1 | + | |
| - | kind: IngressRoute | + | |
| - | metadata: | + | |
| - | name: my-ingressroute | + | |
| - | spec: | + | |
| - | entryPoints: | + | |
| - | - web | + | |
| - | routes: | + | |
| - | - match: Host(`htwebd.corpX.un`) | + | |
| - | kind: Rule | + | |
| - | services: | + | |
| - | - name: my-webd | + | |
| - | port: 80 | + | |
| - | </code><code> | + | |
| - | kube1:~/traefik# kubectl get gatewayclasses | + | |
| - | kube1:~/traefik# cat values.yaml | + | * Можно показать и, затем удалить [[Система Kubernetes#Horizontal Pod Autoscaler]] |
| - | </code><code> | + | |
| - | service: | + | |
| - | spec: | + | |
| - | loadBalancerIP: "192.168.X.64" | + | |
| - | providers: | + | |
| - | kubernetesGateway: | + | |
| - | enabled: true | + | |
| - | gateway: | + | |
| - | listeners: | + | |
| - | web: | + | |
| - | namespacePolicy: | + | |
| - | from: All | + | |
| - | ingressRoute: | + | |
| - | dashboard: | + | |
| - | enabled: true | + | |
| - | matchRule: Host(`dashboard-traefik.corpX.un`) | + | |
| - | entryPoints: | + | |
| - | - web | + | |
| - | kube1:~/traefik# helm upgrade traefik traefik -f values.yaml --repo https://traefik.github.io/charts -n traefik --version 39.0.1 | + | * [[Система Kubernetes#cert-manager]] |
| + | * [[Система Kubernetes#Gateway]] | ||
| + | * [[Система Kubernetes#HTTPRoute]] | ||
| - | kube1:~/webd-k8s# cat my-httproute.yaml | + | <code> |
| - | apiVersion: gateway.networking.k8s.io/v1 | + | kube1:~/webd-k8s# cp my-webd-deployment.yaml my-webd-deployment2.yaml |
| - | kind: HTTPRoute | + | kube1:~/webd-k8s# cp my-webd-service.yaml my-webd-service2.yaml |
| - | metadata: | + | ... |
| - | name: my-httproute | + | |
| - | spec: | + | |
| - | hostnames: | + | |
| - | - htwebd.corpX.un | + | |
| - | parentRefs: | + | |
| - | - name: traefik-gateway | + | |
| - | namespace: traefik | + | |
| - | rules: | + | |
| - | - matches: | + | |
| - | - path: | + | |
| - | type: Exact | + | |
| - | value: / | + | |
| - | backendRefs: | + | |
| - | - name: my-webd | + | |
| - | port: 80 | + | |
| </code> | </code> | ||
| + | |||
| + | * [[Стратегии деплоя в Kubernetes]] | ||
| + | |||
| + | ==== 2.4 ArgoCD и универсальный Helm Chart ==== | ||
| * [[Универсальный Helm-чарт]] | * [[Универсальный Helm-чарт]] | ||
| <code> | <code> | ||
| + | kube1:~/webd-k8s# kubectl delete ns my-ns | ||
| + | |||
| kube1:~/webd-k8s# curl -fsSL https://val.bmstu.ru/unix/uni-webd-chart.tgz | tar xzvf - | kube1:~/webd-k8s# curl -fsSL https://val.bmstu.ru/unix/uni-webd-chart.tgz | tar xzvf - | ||
| - | kube1:~/webd-k8s# cp -v my-httproute.yaml uni-webd-chart/templates/ | + | kube1:~/webd-k8s# less uni-webd-chart/values.yaml |
| - | </code> | + | </code><code> |
| + | ... | ||
| + | service: | ||
| + | port: 80 | ||
| + | ... | ||
| + | <code></code> | ||
| + | kube1:~/webd-k8s# mkdir -p apps/htwebd/ | ||
| - | ==== 2.4 Стратегии развертывания и масштабирование нагрузки ==== | + | kube1:~/webd-k8s# cat apps/htwebd/values.yaml |
| + | </code><code> | ||
| + | hostname: htwebd | ||
| - | * [[Стратегии деплоя в Kubernetes]] | + | replicaCount: 2 |
| - | + | image: | |
| - | <code> | + | repository: httpd |
| - | kube1:~/webd-k8s# cat my-general-httproute.yaml | + | </code><code> |
| - | apiVersion: gateway.networking.k8s.io/v1 | + | kube1:~/webd-k8s# cat env.yaml |
| - | kind: HTTPRoute | + | </code><code> |
| - | metadata: | + | domain: corpX.un |
| - | name: y-general-httproute | + | </code><code> |
| - | spec: | + | kube1:~/webd-k8s# helm template my-htwebd uni-webd-chart/ -f apps/htwebd/values.yaml -f env.yaml |
| - | hostnames: | + | |
| - | - htwebd.corpX.un | + | |
| - | parentRefs: | + | |
| - | - name: traefik-gateway | + | |
| - | namespace: traefik | + | |
| - | rules: | + | |
| - | - matches: | + | |
| - | - path: | + | |
| - | type: Exact | + | |
| - | value: / | + | |
| - | backendRefs: | + | |
| - | - name: my-webd | + | |
| - | port: 80 | + | |
| - | weight: 70 | + | |
| - | - name: my-webd2 | + | |
| - | port: 80 | + | |
| - | weight: 30 | + | |
| </code> | </code> | ||
| + | |||
| + | * [[Универсальный Helm-чарт#Добавляем lifecycle.postStart и Gateway API]] | ||