[TOC]
Выбор и реализация контейнерных сетей и логов
Выбор сети (k8s и mesos)
Мысли и болевые точки
-
Возможен ли межкомпьютерный доступ?
- фланель может общаться между контейнерами
- Взаимодействие контейнеров между хостами
- Контейнер и внешнее соединение
-
Поддерживает ли он статический ip, фиксированный ip?Доступ к доменному имени?
- Если вы исправите IP-адрес, вам нужно будет сохранять этот IP-адрес каждый раз при развертывании, обновлении или перезапуске.
- оверлейная сеть, Docker 1.6 обеспечивает межхостовое взаимодействие
-
Днс поддерживает?
-
Доступ уровня 4/уровня 7
-
Сеть после контейнерного хранения
-
IP порт, вручную лучше не планировать
-
сетевая политика, защита, изоляция?
- Сетевая изоляция и ограничения трафика между разными приложениями в контейнерном кластере
строить планы
-
Категория программы
- Туннельная схема, через туннель или способ Overlay Networking:
- Weave, широковещательная рассылка UDP, локальная машина устанавливает новый BR и обменивается данными через PCAP.
- Open vSwitch (OVS), основанный на протоколах VxLAN и GRE, но имеющий серьезную потерю производительности.
- Фланель, широковещательная передача UDP, VxLan.
- схема маршрутизации
- Calico, решение для маршрутизации, основанное на протоколе BGP, поддерживает очень подробный контроль ACL и имеет высокую совместимость с гибридными облаками.
- Macvlan, решение с лучшей изоляцией и производительностью с точки зрения логики и уровней ядра, основано на изоляции уровня 2, поэтому ему требуется поддержка маршрутизатора уровня 2. Большинство поставщиков облачных услуг не поддерживают его, поэтому его трудно внедрить на гибридные облака.
- Хорошая производительность, отсутствие NAT, высокая эффективность, но она ограничена таблицей маршрутизации, и каждый контейнер имеет свой IP-адрес, поэтому бизнес-IP может быть израсходован.
- Туннельная схема, через туннель или способ Overlay Networking:
-
Два лагеря сети
-
Лагерь 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
-
-
Общие решения:
- фланель 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. Коммутатор третьего уровня.
-
Стандартный выбор сети в отрасли
-
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 данные не могут быть закреплены в контейнере, а данные в контейнере будут потеряны при уничтожении контейнера, поэтому журнал необходимо смонтировать на хосте или в распределенном хранилище, таком как используется цеф.
-
Варианты мониторинга
- cAdvisor + InfluxDB + Grafana
- cAdvisor + Prometheus + Grafana
- Graphite
- Zabbix
- Datadog
-
Параметры журнала
- logstash
- ELK
- Graylog
- flume
- heka
- fluentd
-
Отраслевые решения
- Облако Alibaba: cAdvisor + InfuxDB + prometheus
- Сопрограммы: ELK
- Знаю: Graphite + cAdvisor