Выбор и реализация контейнерных сетей и логов

Docker

[TOC]

Выбор и реализация контейнерных сетей и логов

Выбор сети (k8s и mesos)

Мысли и болевые точки

  1. Возможен ли межкомпьютерный доступ?

    • фланель может общаться между контейнерами
    • Взаимодействие контейнеров между хостами
    • Контейнер и внешнее соединение
  2. Поддерживает ли он статический ip, фиксированный ip?Доступ к доменному имени?

    • Если вы исправите IP-адрес, вам нужно будет сохранять этот IP-адрес каждый раз при развертывании, обновлении или перезапуске.
    • оверлейная сеть, Docker 1.6 обеспечивает межхостовое взаимодействие
  3. Днс поддерживает?

  4. Доступ уровня 4/уровня 7

  5. Сеть после контейнерного хранения

  6. IP порт, вручную лучше не планировать

  7. сетевая политика, защита, изоляция?

    • Сетевая изоляция и ограничения трафика между разными приложениями в контейнерном кластере

строить планы

  1. Категория программы

    • Туннельная схема, через туннель или способ Overlay Networking:
      • Weave, широковещательная рассылка UDP, локальная машина устанавливает новый BR и обменивается данными через PCAP.
      • Open vSwitch (OVS), основанный на протоколах VxLAN и GRE, но имеющий серьезную потерю производительности.
      • Фланель, широковещательная передача UDP, VxLan.
    • схема маршрутизации
      • Calico, решение для маршрутизации, основанное на протоколе BGP, поддерживает очень подробный контроль ACL и имеет высокую совместимость с гибридными облаками.
      • Macvlan, решение с лучшей изоляцией и производительностью с точки зрения логики и уровней ядра, основано на изоляции уровня 2, поэтому ему требуется поддержка маршрутизатора уровня 2. Большинство поставщиков облачных услуг не поддерживают его, поэтому его трудно внедрить на гибридные облака.
      • Хорошая производительность, отсутствие NAT, высокая эффективность, но она ограничена таблицей маршрутизации, и каждый контейнер имеет свой IP-адрес, поэтому бизнес-IP может быть израсходован.
  2. Два лагеря сети

    • Лагерь Docker Libnetwork Container Network Model (CNM) (преимущество Docker Libnetwork заключается в том, что он нативен и тесно интегрирован с жизненным циклом контейнера Docker)

      • Docker Swarm overlay
      • Macvlan & IP network drivers
      • Calico
      • Контив (от Cisco)
    • Лагерь Container Network Interface (CNI) (преимущество CNI заключается в совместимости с другими контейнерными технологиями (например, rkt) и системами оркестровки верхнего уровня (Kuberneres & Mesos))

      • Kubernetes
      • Weave
      • Macvlan
      • Flannel
      • Calico
      • Contiv
      • Mesos CNI
  3. Общие решения:

    • фланель vxlan, режим наложения
    • calico, изоляция 3-го уровня, при развертывании по подсетям, если шлюз не поддерживает BGP, необходимо использовать метод наложения туннеля ipip
    • ipvlan macvlan, изоляция физического уровня 2/3, в настоящее время требуется инструмент конвейера для настройки на одном узле, только изоляция vlan, не решает широковещательную рассылку arp
    • нативный vxlan swarm, похожий на flannel vxlan
    • нейтрон sdn, есть много вариантов, ml2+ovsplugin, midonet, vlan или vxlan
    • Contiv, во главе с Cisco, решение sdn, вы можете использовать чистый программный ovs, или вы можете использовать аппаратный контроллер sdn ovs+cisco
    • Мост Linux + коммутатор уровня 3: мост Linux на хосте настроен на сетевой сегмент подсети коммутатора уровня 3, связь между контейнерами проходит через коммутатор уровня 2, а контейнер и внешняя среда проходят через шлюз коммутатора уровня 3. Коммутатор третьего уровня.
  4. Стандартный выбор сети в отрасли

    • kubernetes + flannel

      • Flannel уже поддерживает такие режимы пересылки данных, как UDP, VxLAN, AWS VPC и маршрутизация GCE.
      • Есть flannel, openvswitch и weave под kubernetes для реализации Overlay Network
      • Решение Vipshop conv netplugin (фиксированный IP-адрес внешней сети) + фланель
      • JD.com Фланель + Нейтрон + ОВС
    • Mesos + Calico

      • Mesos поддерживает стандартную спецификацию CNI
      • Один контейнер один ip, сетевая изоляция, выделение ip, виртуальная сеть L3
      • Куда пойти Месос + Калико
      • Мост Qiniu + NAT + Open vSwitch
    • conv основные пользователи могут получить доступ напрямую в соответствии с IP-адресом экземпляра

    • Meizu Cloud OVS и VLAN + SR-IOV

    • ucloud: сетевое решение SDN «большого второго уровня» для оверлея vswitch + ipvlan

Выбор мониторинга журнала (включая мониторинг, статистику)

Из-за многоуровневого режима проектирования Docker данные не могут быть закреплены в контейнере, а данные в контейнере будут потеряны при уничтожении контейнера, поэтому журнал необходимо смонтировать на хосте или в распределенном хранилище, таком как используется цеф.

  1. Варианты мониторинга

    • cAdvisor + InfluxDB + Grafana
    • cAdvisor + Prometheus + Grafana
    • Graphite
    • Zabbix
    • Datadog
  2. Параметры журнала

    • logstash
    • ELK
    • Graylog
    • flume
    • heka
    • fluentd
  3. Отраслевые решения

    • Облако Alibaba: cAdvisor + InfuxDB + prometheus
    • Сопрограммы: ELK
    • Знаю: Graphite + cAdvisor