Создание дополнительных интерфейсов#
Создайте конфигурации для каждого из дополнительных интерфейсов, которые подключаете к контейнерам, и пользовательские ресурсы для каждого интерфейса. В рамках процесса быстрой установки создается CRD - пользовательское определение ресурса, которое служит местом для хранения ресурсов. В CRD будете хранить конфигурации для каждого интерфейса.
Последовательность выполнения#
Создайте конфигурацию для дополнительного интерфейса. Например, создайте конфигурацию
macvlan:cat <<EOF | oc create -f - apiVersion: "k8s.cni.cncf.io/v1" kind: NetworkAttachmentDefinition metadata: name: macvlan-conf spec: config: '{ "cniVersion": "0.3.0", "type": "macvlan", "master": "eth0", "mode": "bridge", "ipam": { "type": "host-local", "subnet": "NNN.NNN.N.0/24", "rangeStart": "NNN.NNN.N.200", "rangeEnd": "NNN.NNN.N.216", "routes": [ { "dst": "0.0.0.0/0" } ], "gateway": "NNN.NNN.N.1" } }' EOFГде
NNN.NNN.N.0/24– выбранная подсеть, аNNN.NNN.N.200,NNN.NNN.N.216,NNN.NNN.N.1– актуальные IP адреса выбранной подсети.Получите более подробную информацию о конфигурации:
oc describe network-attachment-definitions macvlan-confПроверьте созданную конфигурацию:
oc get network-attachment-definitionsМожно добавлять больше интерфейсов в pod. Добавьте еще интерфейсов, создав соответствующие конфигурации и аннотируя pod. Например, добавьте два
macvlanинтерфейса:cat <<EOF | oc create -f - apiVersion: v1 kind: Pod metadata: name: samplepod annotations: k8s.v1.cni.cncf.io/networks: macvlan-conf,macvlan-conf spec: containers: - name: samplepod command: ["/bin/ash", "-c", "trap : TERM INT; sleep infinity & wait"] image: alpine EOFПримечание
Аннотация теперь гласит
k8s.v1.cni.cncf.io/networks: macvlan-conf,macvlan-conf. Где одна и та же конфигурация используется дважды, разделенная запятой.
Результат#
Конфигурация для дополнительного интерфейса успешно создана.