User Tools

Site Tools


devsecops_и_промышленные_решения

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
devsecops_и_промышленные_решения [2025/12/08 09:25]
val [2.2 Развертывание GitLab]
devsecops_и_промышленные_решения [2025/12/15 12:59] (current)
val [2.3 Стратегии развертывания и масштабирование нагрузки]
Line 22: Line 22:
 ==== 1.1 Схема стенда,​ импорт,​ настройка и запуск VM gate и server ==== ==== 1.1 Схема стенда,​ импорт,​ настройка и запуск VM gate и server ====
  
-  * !!! kubeN 8Gb !!!+  * !!! kubeN 8Gb RAM + 4 CPU!!!
  
 <​code>​ <​code>​
Line 91: Line 91:
   * [[Система Kubernetes#​Подготовка к развертыванию через Kubespray]]   * [[Система Kubernetes#​Подготовка к развертыванию через Kubespray]]
   * Развертывание Kubernetes через Kubespray ([[Система Kubernetes#​Вариант 2 (docker)]])   * Развертывание Kubernetes через Kubespray ([[Система Kubernetes#​Вариант 2 (docker)]])
- 
-==== 1.5 (??? может в k8s?) Развертывание GitLab ==== 
- 
-  * FreeIPA [[Решение FreeIPA#​Создание ключа и сертификата для gitlab на той же системе]] 
-  * Инструмент GitLab [[Инструмент GitLab|Установка через docker-compose]] ​ 
-<​code>​ 
-# cat docker-compose.yml 
-... 
-    userns_mode:​ '​host'​ 
-... 
-        external_url '​https://​server.corpX.un:​4443'​ 
-... 
-      - '​4443:​4443'​ 
-... 
-</​code>​ 
- 
-  * Создать УЗ student через [[Инструмент GitLab#REST API интерфейс]] ​ ??? Может это в ДЕВОПС2 а здесь интегрировать с KC?  
- 
-  * ??? Может, не понадобится,​ или не сразу 
-<​code>​ 
-bash -c ' 
-scp /​opt/​freeipa-data/​etc/​ipa/​ca.crt kube1:/​usr/​local/​share/​ca-certificates/​ 
-ssh kube1 update-ca-certificates 
-ssh kube1 systemctl restart containerd 
-scp /​opt/​freeipa-data/​etc/​ipa/​ca.crt kube2:/​usr/​local/​share/​ca-certificates/​ 
-ssh kube2 update-ca-certificates 
-ssh kube2 systemctl restart containerd 
-scp /​opt/​freeipa-data/​etc/​ipa/​ca.crt kube3:/​usr/​local/​share/​ca-certificates/​ 
-ssh kube3 update-ca-certificates 
-ssh kube3 systemctl restart containerd 
-scp /​opt/​freeipa-data/​etc/​ipa/​ca.crt kube4:/​usr/​local/​share/​ca-certificates/​ 
-ssh kube4 update-ca-certificates 
-ssh kube4 systemctl restart containerd 
-' 
- 
-kubeN# 
-crictl pull server.corpX.un:​5000/​student/​gowebd 
-crictl images 
-crictl rmi server.corpX.un:​5000/​student/​gowebd 
-</​code>​ 
  
 ==== 1.5 Установка и инициализация компьютеров пользователей ==== ==== 1.5 Установка и инициализация компьютеров пользователей ====
Line 189: Line 149:
 </​code>​ </​code>​
  
-  * Инструмент GitLab [[Инструмент GitLab#​Установка через docker-compose]] + %s/server.co/gitlab.co/g+  * Инструмент GitLab [[Инструмент GitLab#​Установка через docker-compose]] + %s/server.corpX/gitlab.corpX/ 
 +<​code>​ 
 +... 
 +    privileged: true 
 +... 
 +      - '​22:​22'​ 
 +... 
 +#      - '/​etc/​gitlab:/​etc/​gitlab'​ 
 +... 
 +</​code>​ 
 +  * Инструмент GitLab [[Инструмент GitLab#​Клиент OpenID]] + %s/​^/​8пробелов/​ 
   * [[Система Kubernetes#​kompose]]   * [[Система Kubernetes#​kompose]]
 +
 <​code>​ <​code>​
-kube1:​~/​gitlab#​ cat docker-compose.yml 
-</​code><​code>​ 
-services: 
-  gitlab: 
-    image: '​gitlab/​gitlab-ce:​latest'​ 
-    restart: always 
-    hostname: '​gitlab'​ 
-    environment:​ 
-      GITLAB_ROOT_PASSWORD:​ "​strongpassword"​ 
-      GITLAB_OMNIBUS_CONFIG:​ | 
-        prometheus_monitoring['​enable'​] = false 
-        gitlab_rails['​registry_enabled'​] = true 
-        gitlab_rails['​registry_host'​] = "​gitlab.corpX.un"​ 
-        external_url '​http://​gitlab.corpX.un'​ 
-        registry_external_url '​http://​gitlab.corpX.un:​5000'​ 
-        gitlab_rails['​registry_port'​] = "​5050"​ 
-        registry['​registry_http_addr'​] = "​0.0.0.0:​5050"​ 
-    ports: 
-      - '​80:​80'​ 
-      - '​2222:​22'​ 
-      - '​5000:​5000'​ 
-    volumes: 
-      - vol1:/​var/​opt/​gitlab 
-    shm_size: '​256m'​ 
-    logging: 
-      driver: "​json-file"​ 
-      options: 
-        max-size: "​2048m"​ 
-volumes: 
-  vol1: 
-</​code><​code>​ 
 kube1:​~/​gitlab#​ kompose convert kube1:​~/​gitlab#​ kompose convert
  
 kube1:​~/​gitlab#​ cat vol1-persistentvolumeclaim.yaml kube1:​~/​gitlab#​ cat vol1-persistentvolumeclaim.yaml
 +</​code><​code>​
 ... ...
       storage: 2000Mi       storage: 2000Mi
 +</​code><​code>​
 kube1:​~/​gitlab#​ cat gitlab-deployment.yaml kube1:​~/​gitlab#​ cat gitlab-deployment.yaml
 +</​code><​code>​
 +...
 +          image: ...
 +          lifecycle:
 +            postStart:
 +              exec:
 +                command:
 +                - /bin/sh
 +                - -c
 +                - |
 +                  mkdir -p /​etc/​gitlab/​trusted-certs/​
 +                  cp /​etc/​gitlab/​tmp/​ca.crt /​etc/​gitlab/​trusted-certs/​ca.crt
 ...    ...   
-        ​volumeMounts:​ +          ​volumeMounts:​ 
-        - name: secret-tls-volume +            - name: secret-tls-volume 
-          subPath: tls.crt +              subPath: tls.crt 
-          mountPath: /​etc/​gitlab/​ssl/​gitlab.corp13.un.crt +              mountPath: /​etc/​gitlab/​ssl/​gitlab.corpX.un.crt 
-        - name: secret-tls-volume +            - name: secret-tls-volume 
-          subPath: tls.key +              subPath: tls.key 
-          mountPath: /​etc/​gitlab/​ssl/​gitlab.corp13.un.key +              mountPath: /​etc/​gitlab/​ssl/​gitlab.corpX.un.key 
-        - name: secret-tls-volume +            - name: secret-tls-volume 
-          subPath: ca.crt +              subPath: ca.crt 
-          mountPath: /​etc/​gitlab/​trusted-certs/ca.crt   ​+              mountPath: /​etc/​gitlab/​tmp/ca.crt
 ... ...
 +      hostname: gitlab
       volumes:       volumes:
 +        - name: secret-tls-volume
 +          secret:
 +            secretName: gitlab-tls
 ... ...
-      - name: secret-tls-volume +</​code><​code>​
-        secret: +
-          secretName: gitlab-tls +
-... +
 kube1:​~/​gitlab#​ cat gitlab-service.yaml kube1:​~/​gitlab#​ cat gitlab-service.yaml
-...   ​ +</​code><​code>​ 
-  loadBalancerIP:​ 192.168.13.66+... 
 +spec:  
 +  loadBalancerIP:​ 192.168.X.66
   type: LoadBalancer    type: LoadBalancer
 ... ...
 +</​code><​code>​
 kube1:​~/​gitlab#​ kubectl -n my-gitlab-ns apply -f vol1-persistentvolumeclaim.yaml,​gitlab-service.yaml,​gitlab-deployment.yaml kube1:​~/​gitlab#​ kubectl -n my-gitlab-ns apply -f vol1-persistentvolumeclaim.yaml,​gitlab-service.yaml,​gitlab-deployment.yaml
 +
 +kube1:​~/​gitlab#​ kubectl -n my-gitlab-ns logs pods/​gitlab-<​TAB>​ -f
 </​code>​ </​code>​
  
 +  * Создать УЗ user1 через [[Инструмент GitLab#REST API интерфейс]] и связать через [[Инструмент GitLab#​Клиент OpenID]]
  
 +==== 2.3 Стратегии развертывания и масштабирование нагрузки ====
  
-  * Стратегии ​развертывания и масштабирование ​нагрузки +  * Добавляем корпоративный сертификат в кластер kubernetes 
-  * ArgoCD и универсальный Helm Chart+<​code>​ 
 +server# 
 + 
 +bash -c ' 
 +scp /​opt/​freeipa-data/​etc/​ipa/​ca.crt kube1:/​usr/​local/​share/​ca-certificates/​ 
 +ssh kube1 update-ca-certificates 
 +ssh kube1 systemctl restart containerd 
 +scp /​opt/​freeipa-data/​etc/​ipa/​ca.crt kube2:/​usr/​local/​share/​ca-certificates/​ 
 +ssh kube2 update-ca-certificates 
 +ssh kube2 systemctl restart containerd 
 +scp /​opt/​freeipa-data/​etc/​ipa/​ca.crt kube3:/​usr/​local/​share/​ca-certificates/​ 
 +ssh kube3 update-ca-certificates 
 +ssh kube3 systemctl restart containerd 
 +scp /​opt/​freeipa-data/​etc/​ipa/​ca.crt kube4:/​usr/​local/​share/​ca-certificates/​ 
 +ssh kube4 update-ca-certificates 
 +ssh kube4 systemctl restart containerd 
 +
 +</​code>​ 
 + 
 +  * [[Система Kubernetes#​Управление ​образами]] 
 + 
 +  * [[Стратегии деплоя в Kubernetes]] 
 + 
 +==== 2.4 ArgoCD и универсальный Helm Chart ====
  
 ===== Модуль 3: Безопасность в DevOps ===== ===== Модуль 3: Безопасность в DevOps =====
Line 299: Line 282:
   * Брокеры сообщения (Kafka или RabbitMQ)   * Брокеры сообщения (Kafka или RabbitMQ)
   * Service Mesh (Istio)   * Service Mesh (Istio)
 +
 +
devsecops_и_промышленные_решения.1765175123.txt.gz · Last modified: 2025/12/08 09:25 by val