В Kubernetes Pod выделены с одним NI C по умолчанию, а в AWS EKS, если мы используем плагин AWS -CNI (который поставляется по умолчанию), мы получаем выделенный частный IP-адрес в модуль, который находится в пуле вторичных частных IP-адресов, выделенных базовому интерфейсу ENA экземпляра EC2 (управляемого узла). Я использую плагин Multus CNI для выделения нескольких интерфейсов для POD на EKS. Я могу связать вторичный интерфейс с модулем типа macvlan, ipvlan, host-device (passthrough).
Теперь я хочу связать вторичный интерфейс с модулем, , который использует AWS -CNI , чтобы мы получили частный IP-адрес для модулей, который является маршрутом- в состоянии в VP C -su bnet. К сожалению, я получаю следующую ошибку при создании модуля с указанной конфигурацией:
Failed create pod sandbox: rpc error: code = Unknown desc = failed to set up sandbox container "8afa07a666201b50fad5c773e2aa0b8221eb4e9e0dd0a7cd944e4633684dd0c6" network for pod "samplepod-2": NetworkPlugin cni failed to set up pod "samplepod-2_default" network: Multus: [default/samplepod-2]: error adding container to network "multus-aws-cni-network": delegateAdd: error invoking DelegateAdd - "aws-cni": error in getting result from AddNetwork: add cmd: failed to assign an IP address to container
Итак, поддерживает ли Multus CNI тип AWS -CNI?
Вот мое определение сетевого подключения:
apiVersion: "k8s.cni.cncf.io/v1"
kind: NetworkAttachmentDefinition
metadata:
name: multus-aws-cni-network
spec:
config: '{
"cniVersion":"0.3.1",
"type":"aws-cni"
}'
А вот мое определение Pod:
apiVersion: v1
kind: Pod
metadata:
name: samplepod-2
annotations:
k8s.v1.cni.cncf.io/networks: multus-aws-cni-network
spec:
containers:
- name: samplepod
command: ["/bin/ash", "-c", "trap : TERM INT; sleep infinity & wait"]
image: alpine
На управляемом узле у нас есть aws -cni:
ls /opt/cni/bin
aws-cni aws-cni-support.sh bridge cnitool dhcp flannel host-device host-local ipvlan loopback macvlan multus noop portmap ptp sample tuning vlan