Обеспечивает работу сети в кластере с помощью модуля cilium.

Ограничения

  1. Сервисы с типом NodePort и LoadBalancer не работают с hostNetwork-эндпоинтами в LB-режиме DSR. Переключитесь на режим SNAT, если это требуется.
  2. HostPort поды биндятся только к одному IP. Если в ОС есть несколько интерфейсов/IP, Cilium выберет один из них, предпочитая «серые» IP-адреса «белым».
  3. Требования к ядру:
    • Для работы модуля cni-cilium необходимо ядро Linux версии >= 5.7.
    • Для работы модуля cni-cilium совместно с модулем istio, openvpn или node-local-dns необходимо ядро Linux версии >= 5.7.
  4. Проблемы совместимости с ОС:
    • Ubuntu:
      • не работоспособно на 18.04
      • для работы на 20.04 необходима установка ядра HWE
    • Astra Linux:
      • не работоспособно на издании “Смоленск”
    • CentOS:

Заметка о CiliumClusterwideNetworkPolicies

  1. Убедитесь, что вы применили первичный набор объектов CiliumClusterwideNetworkPolicy, поставив конфигурационную опцию policyAuditMode в true. Отсутствие опции может привести к некорректной работе control plane или потере доступа ко всем узлам кластера по SSH. Вы можете удалить опцию после применения всех CiliumClusterwideNetworkPolicy-объектов и проверки корректности их работы в Hubble UI.
  2. Убедитесь, что вы применили следующее правило. В противном случае control plane может некорректно работать до одной минуты во время перезагрузки cilium-agent-подов. Это происходит из-за сброса conntrack таблицы. Привязка к entity kube-apiserver позволяет обойти баг.

    apiVersion: "cilium.io/v2"
    kind: CiliumClusterwideNetworkPolicy
    metadata:
      name: "allow-control-plane-connectivity"
    spec:
      ingress:
      - fromEntities:
        - kube-apiserver
      nodeSelector:
        matchLabels:
          node-role.kubernetes.io/control-plane: ""
    

Заметка о смене режима работы Cilium

При смене режима работы Cilium (параметр tunnelMode) c Disabled на VXLAN или обратно необходимо перезагрузить все узлы, иначе возможны проблемы с доступностью подов.

Заметка о выключении модуля kube-proxy

Cilium полностью заменяет собой функционал модуля kube-proxy, поэтому тот автоматически отключается при включении модуля cni-cilium.