Понимание ingress, lstio и apisix в одной статье
Понимание ingress, lstio и apisix в одной статье

Об входе, lstio, apisix

Ingress, Istio и APISIX — это технологии, тесно связанные с облачными средами и играющие важную роль в развертывании современных приложений, особенно в архитектуре микросервисов. В сегодняшней статье давайте сначала разберемся, что они делают, а затем в чем различия. Дальнейшие статьи дадут их более глубокое понимание с примерами.

Официальная документация:

Ingress:https://kubernetes.io/docs/concepts/services-networking/ingress/

lstio:https://istio.io/latest/zh/

Apisix: https://apisix.apache.org/docs/

Короче говоря, наиболее подробный контент по-прежнему находится на официальном сайте, но некоторая часть контента, упомянутого на официальном сайте, относительно неясна, поэтому часто читая официальный сайт и полагаясь на объяснения других людей, вы определенно получите вдвое больший результат с половиной усилий. . ну давай же!

ingress

Давайте сначала поговорим о входе. Ingress — это компонент Kubernetes. Ingress в основном используется как объект API. Он обрабатывает внешние запросы на доступ к сервисам в кластере и обеспечивает маршрутизацию HTTP и HTTPS. Ingress позволяет пользователям определять правила, определяющие, как внешние запросы направляются к службам, поэтому пользователи могут получать доступ к нескольким службам через одну точку входа. Ingress упрощает сложные правила маршрутизации благодаря единой точке входа и может быть интегрирован с такими сервисами, как Let's Encrypt, для автоматического управления сертификатами SSL/TLS.

Взгляните на краткие характеристики:

  • Основное использование: Кубернетес в кластере HTTP/HTTPS маршрутизация。
  • Рабочий уровень: Действует на Седьмой уровень (уровень приложений) модели OSI, в основном маршрутизация на основе доменных имен или путей.
  • Функциональные ограничения: В основном отвечает за управление входом потока и не обеспечивает прямую поддержку связи между выходом и Служить.
  • Простота развертывания: проще, чем Istio и APISIX, легко настраивать и обслуживать, подходит для приложений малого и среднего размера.
  • Подключаемый модуль: для реализации этих правил требуется Ingress-контроллер, например Nginx Ingress Controller или Traefik.
Общая конфигурация

Если вы настраиваете вход для службы розничного магазина, вы можете понять это, посмотрев комментарии yaml.

Язык кода:javascript
копировать
apiVersion: networking.k8s.io/v1 # использовал Kubernetes API Версия
kind: Ingress # Тип ресурсада Ingress
metadata:
  name: e-commerce-ingress # Ingress имя ресурса
  annotations: # Используйте аннотации для определения Ingress Конфигурация, связанная с контроллером
    kubernetes.io/ingress.class: "nginx" # обозначение Ingress Тип контроллера
    nginx.ingress.kubernetes.io/rewrite-target: / # Переписать целевой путь
spec:
  tls: # TLS Раздел конфигурации
  - hosts:
    - shop.example.com # обозначениедоменное имя
    secretName: shop-tls # обозначениесуществовать TLS сертификат Kubernetes Secret
  rules: # Определить правила маршрутизации
  - host: shop.example.com # Соответствующее доменное имя
    http:
      paths:
      - path: / # Соответствует интерфейсу UI путь
        pathType: Prefix # Тип пути соответствует префиксу
        backend:
          service:
            name: frontend-service # Название фронтенда Служить
            port:
              number: 80 # Порт Служить
      - path: /products # Соответствующие продукты Служитьпуть
        pathType: Prefix
        backend:
          service:
            name: products-service # Название товара Служить
            port:
              number: 80
      - path: /orders # Соответствующий приказ Служитьпуть
        pathType: Prefix
        backend:
          service:
            name: orders-service # Название заказа Служить
            port:
              number: 80

lstio

lstio — это сервисная сетка с открытым исходным кодом, которая обеспечивает способ контроля, управления и мониторинга сетевого взаимодействия между несколькими микросервисами. Сервисная сетка — это уровень инфраструктуры над приложением, но ниже сетевого уровня. lstio обеспечивает балансировку нагрузки, аутентификацию между службами, правила передачи трафика, внедрение ошибок, канареечную публикацию, распределенную трассировку и другие функции без изменения кода службы.

Если у вас есть платформа обработки онлайн-транзакций с микросервисной архитектурой, lstio можно использовать для:

  • управлять Служитьмежду Контроль потока,и внедрить канареечную публикацию(постепенно переноситьпотокк новому Версия Служитьначальство)。
  • Укрепить безопасность между Служить,Обеспечьте шифрование всех коммуникаций, применяя политики.,И контроль доступа между управлять Служить.
  • Собирайте подробные показатели взаимодействия между Служить,Для мониторинга и сигнализации,Чтобы лучше понять проблемы производительности Служить.

По сравнению с Ingress, Istio предоставляет более сложный и всеобъемлющий набор функций, что очень полезно для крупномасштабных распределенных приложений, но также требует более длительного обучения и потребления ресурсов.

Настроить экземпляр
Язык кода:javascript
копировать
apiVersion: networking.istio.io/v1beta1 # Istio сеть API Версия
kind: VirtualService # Тип ресурса VirtualService
metadata:
  name: backend-virtualservice # VirtualService имя
spec:
  hosts:
    - backend-service # Служитьимя хоста  http:
  - match:
    - uri:
        prefix: /api/v1/ # соответствие URI префикс
    route:
    - destination:
        host: backend-service
        subset: v1 # маршрутизация к целевому подмножеству
      weight: 90 # потокмасса    - destination:
        host: backend-service
        subset: v2
      weight: 10 # Меньший вес канареечных выпусков

---
apiVersion: networking.istio.io/v1beta1
kind: DestinationRule # Тип ресурса DestinationRule
metadata:
  name: backend-destinationrule # DestinationRule имя
spec:
  host: backend-service
  subsets: # определить подмножество
    - name: v1
      labels:
        version: v1 # метка подмножества
    - name: v2
      labels:
        version: v2 # метка для канареечного издательства подмножества

apisix

Для этого простого введения вы можете прочитать введение в моей предыдущей статье.:Ingress-Nginx удален? Apisix все еще слишком мощный!

С нескольких аспектов:

  • управлятьи оптимизирует маршрутизацию для достижения балансировки нагрузки и аварийного переключения запросов.
  • путем ограничения скорости, предохранитель, механизм повторной попытки и т. д.,Защитите серверную часть Служить от перегрузки.
  • Поддерживает несколько механизмов аутентификации, таких как Key Auth, JWT, OAuth и т. д., для обеспечения безопасности API.
  • Обеспечивает высокую наблюдаемость и интегрирует такие инструменты, как Prometheus и Grafana, для мониторинга и анализа использования API.
  • Предоставляет богатые плагины, Он имеет мощную систему подключаемых модулей, которая позволяет пользователям включать или отключать функции по мере необходимости, такие как ограничение тока, предохранители, мониторинг, аутентификация и т. д. apisix фокусируется на API-интерфейсе и предоставляет такие функции, как контроль доступа, управление потоками, ведение журнала, мониторинг и различные механизмы аутентификации. По сравнению с Ingress, APISIX Его производительность прокси-сервера оптимизирована и подходит для сценариев с высокой пропускной способностью и низкой задержкой. В основном уровень 7 (уровень приложений), но может поддерживать уровень 4. TCP/UDP потокуправлять。
Общая конфигурация Пример
Язык кода:javascript
копировать
{
  "uri": "/backend/*", // Определить правила сопоставления путей запроса
  "name": "backend-route", // имя правила маршрутизации
  "methods": ["GET", "POST", "PUT"], // Разрешенные методы запроса
  "hosts": ["api.store.example.com"], // проситьсоответствиеимя хоста
  "upstream": {
    "nodes": {
      "backend-service:80": 1 // Адрес и вес бэкенда Служить
    },
    "type": "roundrobin" // Стратегия балансировки нагрузки бэкенда Служить, вот опрос
  },
  "plugins": {
    "jwt-auth": { // давать возможность JWT Плагин аутентификации
      "key": "your-jwt-key", // JWT Key
      "secret": "your-jwt-secret" // JWT Secret
    },
    "rate-limiting": { // давать возможностьпроситьплагин ограничения скорости
      "rate": 1000, // Ограничение количества запросов в секунду
      "burst": 2000, // Ограничение количества пакетов запроса
      "key": "remote_addr" // Основание для ограничения, вот клиент IP адрес
    }
  }
}

Подвести итог

Ingress — это стандартная конфигурация Kubernetes, которая подходит для базовых нужд HTTP-маршрутизации. Она объединяет балансировку нагрузки и терминалы SSL, но она немного слаба с точки зрения производительности и настройки. Он больше подходит для малых и средних предприятий, которые хотят развернуть несколько своих сервисов в Kubernetes, и эти сервисы необходимо предоставлять клиентам через Интернет.

Istio является лидером в области сервисных сетей, не только маршрутизируя трафик, но и предоставляя богатые политики управления трафиком, мониторинг сервисов и безопасность, но сложность и потребление ресурсов могут быть непомерно высокими. Он больше подходит для таких сценариев, как финансовые компании с несколькими микросервисами, которым требуется детальный контроль трафика, зашифрованная связь между сервисами и комплексный мониторинг.

В качестве API-шлюза APISIX обладает выдающейся производительностью, высокой масштабируемостью и гибким механизмом подключаемых модулей. Он очень подходит для современной микросервисной архитектуры, но немного сложнее, чем интеграция K8s и Ingress. Идеально подходит для чего-то вроде крупной онлайн-платформы розничной торговли, которой необходимо обрабатывать тысячи запросов клиентского API и выполнять аутентификацию, ограничение скорости и другие проверки безопасности по этим запросам. APISIX может обрабатывать эти запросы высокопроизводительно, предоставляя при этом богатый набор подключаемых модулей для удовлетворения потребностей бизнеса.

Хм,Благодаря приведенному выше введению,Все читатели должны что-то об этом знать, верно?,Позже продолжу заниматься. Подвести итог, поделись со всеми, не забудь сосредоточиться на Да!

boy illustration
Неразрушающее увеличение изображений одним щелчком мыши, чтобы сделать их более четкими артефактами искусственного интеллекта, включая руководства по установке и использованию.
boy illustration
Копикодер: этот инструмент отлично работает с Cursor, Bolt и V0! Предоставьте более качественные подсказки для разработки интерфейса (создание навигационного веб-сайта с использованием искусственного интеллекта).
boy illustration
Новый бесплатный RooCline превосходит Cline v3.1? ! Быстрее, умнее и лучше вилка Cline! (Независимое программирование AI, порог 0)
boy illustration
Разработав более 10 проектов с помощью Cursor, я собрал 10 примеров и 60 подсказок.
boy illustration
Я потратил 72 часа на изучение курсорных агентов, и вот неоспоримые факты, которыми я должен поделиться!
boy illustration
Идеальная интеграция Cursor и DeepSeek API
boy illustration
DeepSeek V3 снижает затраты на обучение больших моделей
boy illustration
Артефакт, увеличивающий количество очков: на основе улучшения характеристик препятствия малым целям Yolov8 (SEAM, MultiSEAM).
boy illustration
DeepSeek V3 раскручивался уже три дня. Сегодня я попробовал самопровозглашенную модель «ChatGPT».
boy illustration
Open Devin — инженер-программист искусственного интеллекта с открытым исходным кодом, который меньше программирует и больше создает.
boy illustration
Эксклюзивное оригинальное улучшение YOLOv8: собственная разработка SPPF | SPPF сочетается с воспринимаемой большой сверткой ядра UniRepLK, а свертка с большим ядром + без расширения улучшает восприимчивое поле
boy illustration
Популярное и подробное объяснение DeepSeek-V3: от его появления до преимуществ и сравнения с GPT-4o.
boy illustration
9 основных словесных инструкций по доработке академических работ с помощью ChatGPT, эффективных и практичных, которые стоит собрать
boy illustration
Вызовите deepseek в vscode для реализации программирования с помощью искусственного интеллекта.
boy illustration
Познакомьтесь с принципами сверточных нейронных сетей (CNN) в одной статье (суперподробно)
boy illustration
50,3 тыс. звезд! Immich: автономное решение для резервного копирования фотографий и видео, которое экономит деньги и избавляет от беспокойства.
boy illustration
Cloud Native|Практика: установка Dashbaord для K8s, графика неплохая
boy illustration
Краткий обзор статьи — использование синтетических данных при обучении больших моделей и оптимизации производительности
boy illustration
MiniPerplx: новая поисковая система искусственного интеллекта с открытым исходным кодом, спонсируемая xAI и Vercel.
boy illustration
Конструкция сервиса Synology Drive сочетает проникновение в интрасеть и синхронизацию папок заметок Obsidian в облаке.
boy illustration
Центр конфигурации————Накос
boy illustration
Начинаем с нуля при разработке в облаке Copilot: начать разработку с минимальным использованием кода стало проще
boy illustration
[Серия Docker] Docker создает мультиплатформенные образы: практика архитектуры Arm64
boy illustration
Обновление новых возможностей coze | Я использовал coze для создания апплета помощника по исправлению домашних заданий по математике
boy illustration
Советы по развертыванию Nginx: практическое создание статических веб-сайтов на облачных серверах
boy illustration
Feiniu fnos использует Docker для развертывания личного блокнота Notepad
boy illustration
Сверточная нейронная сеть VGG реализует классификацию изображений Cifar10 — практический опыт Pytorch
boy illustration
Начало работы с EdgeonePages — новым недорогим решением для хостинга веб-сайтов
boy illustration
[Зона легкого облачного игрового сервера] Управление игровыми архивами
boy illustration
Развертывание SpringCloud-проекта на базе Docker и Docker-Compose