Kubernetes Notes (2) — Основные компоненты/аксессуары

Kubernetes
Kubernetes Notes (2) — Основные компоненты/аксессуары

Это 5-й день моего участия в Gengwen Challenge.Подробности о событии смотрите:Обновить вызов

Два основных компонента/аксессуара

2.1 Controller

Эти контроллеры используются для обеспечения того, чтобы различные типы ресурсов POD работали в ожидаемом пользователем состоянии.

  • RelicationController

Управляйте количеством копий объектов POD одного типа и реализуйте последовательное обновление или откат программы.

Во время непрерывного обновления допускается временное превышение указанного количества копий.

  • RelicaSet

Контроллер набора реплик, он не используется напрямую, имеет декларативный центральный контроллер.

  • Deployment

Он может управлять только приложениями без сохранения состояния.Этот контроллер поддерживает вторичные контроллеры, такие как HPA (Horizontal Pod Autoscaler, горизонтальный контроллер автоматического масштабирования POD), который автоматически запускает больше POD при высокой нагрузке.

  • StatefulSet

Управление приложениями с отслеживанием состояния

  • DaemonSet

Если вам нужно запустить реплику на каждом узле, а не запускать случайным образом

  • Job

Запустите одноразовое задание, операцию, время которой не фиксировано, например: резервное копирование, очистку, временный запуск POD для выполнения задачи резервного копирования, и операция будет завершена.

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

  • Cronjob

Запускать повторяющиеся задания

2.2 Service

Обеспечьте стабильную запись доступа для клиента. Служба использует селектор тегов для связывания POD. Если в POD есть соответствующий тег, он будет выбран службой. Как серверная часть службы, служба будет динамически обнаруживать POD после того, как он связан с POD, IP-адресом и портом, и служить серверной частью для собственного планирования.

Как правило, клиент запрашивает, чтобы Служба была проксирована службой на внутренний POD, поэтому клиент всегда видит адрес службы.

Служба на K8S не является приложением или компонентом.Это правило iptables dnat или правило ipvs.Сервис - это просто правило, поэтому его нельзя пропинговать.Поскольку это правило dnat или правило ipvs, вы можете использовать порт для тестирования.

Как объект k8s, Сервис имеет имя и может быть преобразован в IP-адрес Сервиса через имя Сервиса.

Общий формат:svcname.namespace.svc.cluster.local, если вы можете использовать svcname непосредственно в том же пространстве имен, если не в том же пространстве имен, вам необходимо написать полное доменное имя домена.

  • AddOns

Разрешение доменного имени разрешается DNS, который предоставляет базовую услугу разрешения доменного имени в k8s, которая называется POD инфраструктуры, также известной как вложение k8s, поэтому POD разрешения доменного имени является своего рода надстройками в k8s.

Вложение dns в k8s является динамическим.Например, изменение имени службы автоматически вызовет изменение записи разрешения в dns.Если адрес службы изменен вручную, изменение записи разрешения DNS также будет автоматически срабатывает, поэтому клиент при доступе к службе может получить прямой доступ к имени службы.

2.3 Сетевая модель

k8s имеет три сети: сеть POD, сеть кластеров, сеть узлов

POD网络:所有 POD 处于同一个网络中,叠加网络
集群网络:Service 是一个另外一个网络
节点网络:node 节点也是另外一个网络,宿主机的内网网络

Таким образом, при доступе к внешнему доступу запрос сначала достигает сети узла, затем сеть узла проксируется в сеть сервиса, и сервис перенаправляется на поды в сети подов в соответствии с правилами iptables/ipvs.

NODE 网络 -> SVC 网络 -> POD 网络

В k8s существует три вида связи:

  • Связь между несколькими контейнерами в одном и том же POD может осуществляться напрямую через связь lo.

  • POD связывается с POD.Если используется фланель, все POD находятся в одной сети и могут напрямую связываться с другими POD через узлы, поскольку используется оверлейная сеть.

  • POD связывается со Службой.

2.4 kube-proxy

Процесс-демон, работающий на узле node, который отвечает за связь с аписервером в любое время, потому что каждый pod нужно сохранять в аписервере после изменения, а после изменения аписервера будет сгенерировано событие уведомления, которое можно использовать Получается, например, когда kube-proxy обнаруживает, что адрес пода серверной части службы изменился, тогда kube-proxy отвечает за локальную запись адреса в правила iptables или ipvs.

Таким образом, управление сервисами осуществляется с помощью kube-proxy.Когда вы создаете сервис, kube-proxy используется для создания правил iptables или ipvs на каждом узле.Изменения каждого сервиса также требуют kube-proxy для отражения правил. .

Аписерверу нужно сохранить информацию о каждом узле, ее нужно сохранить в etcd.

2.5 etcd

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

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

2.6 flanel

Хостинг в качестве аксессуара для k8s, в k8s есть много других сетевых подключаемых модулей с открытым исходным кодом, таких как высокопроизводительный трехуровневый сетевой подключаемый модуль calico, который имеет хорошую производительность и поддерживает контроль доступа.

сеть узлов: связь между физическими узлами

Сеть POD: устройства POD на всех узлах взаимодействуют друг с другом посредством оверлея или прямой маршрутизации.

сервисная сеть: управляется и создается kube-proxy

Сводка знаний

  • Master
kube-scheduler             # 调度 pod
kuber-controller-manager   # 管理 pod
kube-apiserver             # 接收请求
etcd                       # 集群状态存储,集群所有的组件的状态都保存在这里
  • node
kubelet                    # 节点/pod管理
kube-proxy                 # watch apiserver管理service
docker                     # 容器运行时

разное

Публикуйте свои заметки по адресу:GitHub.com/RedHat Series/Арвин…Добро пожаловать в один клик и три ссылки.