Dockin CNI — Dockin Container Network Interface
Dockin — это безопасная система управления операциями, которая оптимизирует выполнение команд, поддерживает управление правами доступа и позволяет планировать операции.
Дополнительные компоненты Dockin доступны по ссылке: https://github.com/WeBankFinTech/Dockin
dockin cni взаимодействует с модулем управления ресурсами (RM) для управления сетью контейнеров. В настоящее время поддерживается:
Необходимые компоненты для запуска dockin cni:
Конфигурационный файл cni должен быть помещён в /etc/cni/net.d
(путь конфигурации по умолчанию для kubelet). Если путь перенаправлен, поместите конфигурационный файл в используемый путь kubelet.
Имя файла конфигурации может быть таким, как 00-dockin-cni.json
.
Пример содержимого файла конфигурации:
{
"cniVersion": "0.2.0",
"name": "dockin-cni",
"type": "dockin-cni",
"confDir": "/etc/cni/dockin/net.d",
"binDir": "/opt/cni/bin",
"logFile": "/data/kubernetes/dockin-cni.log",
"logLevel": "debug",
"backend": "http://localhost:10002/rmController/getPodMultiNetwork"
}
Описание параметров:
Здесь также необходимо создать конфигурационные файлы, связанные с сетью.
Во-первых, вам нужен веб-сервер, предоставляющий веб-хуки для получения сетевой информации о модулях (включая одну или две сетевые карты), этот веб-сервис должен реализовывать API с URL-адресом podName
. Например:
<IP>:<port>/<URL>?podName=
В этом случае вы можете использовать Dockin-RM в качестве примера. Вы можете использовать команду curl для доступа к следующему API rm:
curl 127.0.0.1:10002/rmController/getPodMultiNetwork?podName=<your_pod_name>
Если ошибок не возникает, вы получите ответ в следующем формате:
{
"code": 0,
"reqId": "1234",
"message": "success",
"data": [
{
"type": "test",
"podIp": "192.168.1.2",
"subnetMask": "255.255.255.0",
"gateway": "192.168.1.1",
"ifName": "eth0",
"master": true
},
{
"type": "dockin",
"podIp": "192.168.2.2",
"subnetMask": "255.255.255.0",
"gateway": "192.168.1.1",
"ifName": "net0",
"master": false
}
]
}
Где:
Здесь нас интересует поле type
. В этом примере есть два типа: test
и dockin
.
Управление сетью осуществляется через мост, дополнительные сведения см. по следующей ссылке:
https://github.com/containernetworking/plugins/tree/master/plugins/main/bridge
Информация о сети хранится в файле json в каталоге confDir
(в конфигурации cni), а затем передаётся kubelet для создания сети.
{
"cniVersion": "0.2.0",
"name": "dockin",
"type": "bridge",
"bridge": "br1"
}
Выше приведено краткое введение в конфигурацию, теперь давайте создадим файл конфигурации сети.
confDir
.mkdir -p /etc/cni/dockin/net.d
test
:touch /etc/cni/dockin/net.d/test.json
Содержимое файла конфигурации:
{
"cniVersion": "0.2.0",
"name": "test", // type
"type": "bridge",
"bridge": "br0"
}
dockin
:touch /etc/cni/dockin/net.d/dockin.json
Содержимое файла конфигурации:
{
"cniVersion": "0.2.0",
"name": "dockin", // type
"type": "bridge",
"bridge": "br0"
}
Вы можете использовать команду make для компиляции dockin-cni и dockin-ipam, а затем поместить два исполняемых файла в путь, на который указывает каталог bin в конфигурации cni. Обычно путь bin cni — /opt/cni/bin
. ### Описание сетевой конфигурации
type
(string, обязательно): «static».addresses
(array, опционально): массив объектов с IP-адресами:
address
(string, обязательно): IP-адрес в формате CIDR.gateway
(string, опционально): шлюз для выполнения операций в подсети.routes
(string, опционально): список маршрутов, которые необходимо загрузить в пространство имён контейнера. Каждая запись о маршруте представляет собой словарь с полями dst
и gw
(опционально). Если поле gw
задано, будет использоваться значение, соответствующее тегу gateway
.dns
(string, опционально): таблица соответствия, состоящая из полей nameservers
, domain
и search
.Поддерживаются следующие параметры CNI CNI_ARGS:
IP
: необходимо указать один IP-адрес в формате CIDR, разделяя адреса запятыми.GATEWAY
: необходимо задать адрес шлюза.(Пример: CNI_ARGS="IP=192.168.1.1/24;GATEWAY=192.168.1.254")
Также плагин поддерживает параметры возможностей capability argument.
ips
: передача нескольких IP-адресов в интерфейс CNI.Поддерживаются также следующие предопределённые параметры args conventions:
ips
(массив строк): используется для попытки назначения пользовательского списка IP-адресов (например, '192.168.1.1/24').Обратите внимание: если используются несколько параметров одновременно, будет выбран только один из них в соответствии со следующим приоритетом:
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )