Я пытаюсь запустить приложение DPDK L2FWD в контейнере, управляемом Kubernetes.
Для этого я выполнил следующие шаги -
Я создал установку K8s для одного узла, в которой мастер и клиент работают на хост-компьютере. В качестве сетевого плагина я использовал Calico Network.
Для создания настроенного образа докера DPDK я использовал приведенный ниже Dockerfile
ИЗ Ubuntu: 16.04 RUN apt-get update
RUN apt-get install -y net-tools
RUN apt-get install -y python
RUN apt-get install -y kmod
RUN apt-get install -y iproute2
RUN apt-get install -y net-tools
ДОБАВИТЬ ./dpdk/ / home / sdn / dpdk /
WORKDIR / home / sdn / dpdk /
- Для запуска приложения DPDK внутри POD ниже директории хоста монтируются в POD с привилегированным доступом:
/ мнт / огромный
/ USR
/ Lib
/ И т.д.
Ниже приведен yaml развертывания k8s, используемый для создания POD
apiVersion: v1
kind: Pod
metadata:
name: dpdk-pod126
spec:
containers:
- name: dpdk126
image: dpdk-test126
imagePullPolicy: IfNotPresent
command: ["/bin/sh"]
args: ["-c", "while true; do echo hello; sleep 10;done"]
resources:
requests:
memory: "2Gi"
cpu: "100m"
volumeMounts:
- name: hostvol1
mountPath: /mnt/huge
- name: hostvol2
mountPath: /usr
- name: hostvol3
mountPath: /lib
- name: hostvol4
mountPath: /etc
securityContext:
privileged: true
volumes:
- name: hostvol1
hostPath:
path: /mnt/huge
- name: hostvol2
hostPath:
path: /usr
- name: hostvol3
hostPath:
path: /home/sdn/kubernetes-test/libtest
- name: hostvol4
hostPath:
path: /etc
Ниже настройки уже выполнены в хосте -
- Огромный монтаж страницы.
- Привязка интерфейса в пространстве пользователя.
После успешного создания POD, при попытке запустить приложение DPDK L2FWD внутри POD, я получаю следующую ошибку -
root @ dpdk-pod126: / home / sdn / dpdk # ./examples/l2fwd/build/l2fwd -c 0x0f - -p 0x03 -q 1
EAL: обнаружено 16 lcore (s)
EAL: обнаружено 1 NUMA узлов
EAL: многопроцессорный сокет / var / run / dpdk / rte / mp_socket
EAL: не сообщается о свободных огромных страницах в огромных страницах - 1048576 КБ
EAL: зарезервировано 1007 огромных страниц размером 2097152, но не найдены установленные hugetlbfs для этого размера
EAL: FATAL: невозможно получить информацию о огромной странице.
EAL: невозможно получить информацию о огромной странице.
EAL: ошибка - выход с кодом: 1
Причина: неверные аргументы EAL