Вы просматриваете документацию для Cozystack v1.4. Документация последней версии доступна по ссылке: v1.5.

Управляемый сервис HTTP-кеширования на основе Nginx

Сервис HTTP-кеширования на основе Nginx предназначен для оптимизации веб-трафика и повышения производительности веб-приложений.

Сервис HTTP-кеширования на основе Nginx предназначен для оптимизации веб-трафика и повышения производительности веб-приложений. Сервис объединяет специально собранные экземпляры Nginx и HAProxy для эффективного кеширования и балансировки нагрузки.

Информация о развёртывании

Экземпляры Nginx включают следующие модули и возможности:

  • модуль VTS для статистики
  • интеграция с ip2location
  • интеграция с ip2proxy
  • поддержка 51Degrees
  • функция очистки кеша

HAProxy играет ключевую роль в этой схеме: он направляет входящий трафик на конкретные экземпляры Nginx на основе консистентного хеша, вычисляемого от URL. Каждый экземпляр Nginx использует Persistent Volume Claim (PVC) для хранения кешированного содержимого, обеспечивая быстрый и надёжный доступ к часто используемым ресурсам.

Детали развёртывания

Архитектура развёртывания показана на схеме ниже:


          ┌─────────┐
          │ metallb │ arp announce
          └────┬────┘
               │
               │
       ┌───────▼───────────────────────────┐
       │  kubernetes service               │  node
       │ (externalTrafficPolicy: Local)    │  level
       └──────────┬────────────────────────┘
                  │
                  │
             ┌────▼────┐  ┌─────────┐
             │ haproxy │  │ haproxy │   loadbalancer
             │ (active)│  │ (backup)│      layer
             └────┬────┘  └─────────┘
                  │
                  │ balance uri whole
                  │ hash-type consistent
           ┌──────┴──────┬──────────────┐
       ┌───▼───┐     ┌───▼───┐      ┌───▼───┐ caching
       │ nginx │     │ nginx │      │ nginx │  layer
       └───┬───┘     └───┬───┘      └───┬───┘
           │             │              │
      ┌────┴───────┬─────┴────┬─────────┴──┐
      │            │          │            │
  ┌───▼────┐  ┌────▼───┐  ┌───▼────┐  ┌────▼───┐
  │ origin │  │ origin │  │ origin │  │ origin │
  └────────┘  └────────┘  └────────┘  └────────┘

Известные проблемы

Параметры

Общие параметры

ИмяОписаниеТипЗначение
sizeРазмер Persistent Volume Claim, доступный для данных приложения.quantity10Gi
storageClassStorageClass, используемый для хранения данных.string""
externalРазрешить внешний доступ извне кластера.boolfalse

Параметры приложения

ИмяОписаниеТипЗначение
endpointsКонфигурация конечных точек в виде списка ip:port.[]string[]

Параметры HAProxy

ИмяОписаниеТипЗначение
haproxyКонфигурация HAProxy.object{}
haproxy.replicasКоличество реплик HAProxy.int2
haproxy.resourcesЯвная конфигурация CPU и памяти. Если не задана, применяется пресет, указанный в resourcesPreset.object{}
haproxy.resources.cpuCPU, доступный каждой реплике.quantity""
haproxy.resources.memoryПамять (RAM), доступная каждой реплике.quantity""
haproxy.resourcesPresetПресет размеров по умолчанию, используемый, когда resources не задан.stringt1.nano

Параметры Nginx

ИмяОписаниеТипЗначение
nginxКонфигурация Nginx.object{}
nginx.replicasКоличество реплик Nginx.int2
nginx.resourcesЯвная конфигурация CPU и памяти. Если не задана, применяется пресет, указанный в resourcesPreset.object{}
nginx.resources.cpuCPU, доступный каждой реплике.quantity""
nginx.resources.memoryПамять (RAM), доступная каждой реплике.quantity""
nginx.resourcesPresetПресет размеров по умолчанию, используемый, когда resources не задан.stringt1.nano

Примеры параметров и справка

resources и resourcesPreset

resources задаёт явную конфигурацию CPU и памяти для каждой реплики. Если значение не указано, применяется пресет, заданный в resourcesPreset.

resources:
  cpu: 4000m
  memory: 4Gi

resourcesPreset задаёт именованную конфигурацию CPU и памяти для каждой реплики. Эта настройка игнорируется, если задано соответствующее значение resources.

Имя пресетаCPUПамять
nano250m128Mi
micro500m256Mi
small1512Mi
medium11Gi
large22Gi
xlarge44Gi
2xlarge88Gi

endpoints

endpoints - плоский список IP-адресов:

endpoints:
  - 10.100.3.1:80
  - 10.100.3.11:80
  - 10.100.3.2:80
  - 10.100.3.12:80
  - 10.100.3.3:80
  - 10.100.3.13:80