[ English | русский | Deutsch | español | Indonesia | English (United Kingdom) ]

Menambahkan jaringan ekstra ke container

Dalam beberapa kasus mungkin berguna untuk memiliki kemampuan untuk menambahkan antarmuka jaringan tambahan untuk beberapa kelompok container (atau hanya satu container tunggal). Sebagai contoh, ini dapat digunakan untuk menerapkan alamat IP tetap yang diketahui dari jaringan lain untuk layanan Designate. Kami akan menampilkan konfigurasi lebih lanjut berdasarkan contoh ini. Mari kita asumsikan, bahwa jaringan ini adalah 10.0.20.0/24 yang dapat dijangkau melalui antarmuka br-dns.

Untuk menambahkan antarmuka baru dengan jaringan itu ke dalam containers dessignate, kita perlu melakukan beberapa tindakan di openstack_user_config.yml.

Catatan

Anda dapat menemukan contoh detail konfigurasi openstack_user_config.yml di bagian referensi pengaturan openstack_user_config.

  • Tambahkan jaringan ini di cidr_networks:

    cidr_networks:
      container: 172.29.236.0/22
      tunnel: 172.29.240.0/22
      storage: 172.29.244.0/22
      designate: 10.0.20.0/24
    
  • Jelaskan jaringan di provider_networks:

    global_overrides:
      provider_networks:
        - network:
          container_bridge: "br-dns"
          container_type: "veth"
          container_interface: "eth5"
          ip_from_q: "designate"
          type: "veth"
          group_binds:
            - dnsaas_hosts
    
  • Tentukan override untuk containers

    Catatan

    Menambahkan kunci gateway akan membuat rute default di dalam container melaluinya

    dnsaas_hosts:
      aio1:
        ip: 172.29.236.100
        container_vars:
          container_extra_networks:
            dns_address:
              bridge: br-dns
              interface: eth5
              address: 10.0.20.100
              netmask: 255.255.255.0
              gateway: 10.0.20.1
    

Using SR-IOV interfaces in containers

For some deployments it might be required to passthrough devices directly to containers, for example, when SR-IOV is used or devices can't be bridged (ie with IPoIB <https://www.kernel.org/doc/html/latest/infiniband/ipoib.html>)

You would need to manually map physical interfaces to specific containers. This also assumes, that same interface name is present on all containers and it is consistent and present before LXC startup.

Below as an example we will try using IB interfaces for storage network and pass them inside containers that require storage connectivity. For that you need describe connections in provider_networks inside openstack_user_config.yml configuration:

global_overrides:
  provider_networks:
    - network:
        container_bridge: "ib1"
        container_type: "phys"
        container_interface: "ib1"
        ip_from_q: "storage"
        type: "raw"
        group_binds:
          - cinder_volume
    - network:
        container_bridge: "ib3"
        container_type: "phys"
        container_interface: "ib3"
        ip_from_q: "storage"
        type: "raw"
        group_binds:
         - glance_api
    - network:
        container_bridge: "ib5"
        container_type: "phys"
        container_interface: "ib5"
        ip_from_q: "storage"
        type: "raw"
        group_binds:
          - gnocchi_api