Rumah  >  Soal Jawab  >  teks badan

Docker容器内微服务向注册中心注册ip地址的问题

微服务启动的时候,会自动向服务注册中心报告自己的ip和端口。但是服务是在docker容器内运行的,注册的ip就成了172开头的docker内部ip, 这个地址是无法被其它机器访问的。

这种情况是不是必须手动将服务注册的地址改成宿主机的地址和端口呢,有其它好方案没

----- update -----
docker 1.12版本以后engine有了swarm模式,经测试使用swarm的overlay网络可解决跨主机通讯问题,这种方案是否合适呢

给我你的怀抱给我你的怀抱2755 hari yang lalu1219

membalas semua(7)saya akan balas

  • 高洛峰

    高洛峰2017-04-27 09:05:14

    Rangkaian tindanan yang disediakan oleh docker swarm boleh menyediakan komunikasi rangkaian intra-bekas merentas hos Kontena tempatan boleh menentukan rangkaian semasa permulaan untuk membentuk rangkaian dalaman Kemudian nginx boleh digunakan dalam mod hos pada hos swarm, menggunakan etcd dan konsul Tunggu perkhidmatan mendaftar secara dinamik dan mengemas kini konfigurasi proksi terbalik nginx untuk mencapai tujuan penemuan perkhidmatan dinamik.
    Walau bagaimanapun, tindanan pada masa ini mempunyai kehilangan prestasi terbesar antara semua kaedah komunikasi silang hos, mencapai 60%. Seseorang telah melakukan ujian di Internet, anda boleh menyemaknya. Oleh itu, buat masa ini, persekitaran pengeluaran masih perlu mempertimbangkan kubernetes atau mesos

    balas
    0
  • 高洛峰

    高洛峰2017-04-27 09:05:14

    Saya tidak tahu banyak tentang rangkaian Sila google komunikasi silang hos docker untuk mencari beberapa penyelesaian.

    balas
    0
  • 我想大声告诉你

    我想大声告诉你2017-04-27 09:05:14

    Gunakan hos untuk menambah dns dalaman

    balas
    0
  • PHP中文网

    PHP中文网2017-04-27 09:05:14

    Terdapat beberapa idea:
    1 Peranti hos melaporkan IP semasa memulakan perkhidmatan
    2 Suntikan maklumat IP hos ke dalam pembolehubah persekitaran kontena semasa memulakan perkhidmatan
    3 menerimanya Apabila mendaftar permintaan, dapatkan ip daripada lapisan rangkaian

    balas
    0
  • 曾经蜡笔没有小新

    曾经蜡笔没有小新2017-04-27 09:05:14

    Oleh kerana bekas adalah dinamik, alamat IP biasanya diberikan secara rawak. Selepas menggunakan sistem penjadualan kontena untuk memulakan beberapa bekas secara automatik, alamat akses kontena ini boleh direkodkan ke pusat pendaftaran perkhidmatan melalui pendaftaran perkhidmatan. Dengan cara ini, apabila perkhidmatan luaran ingin mengakses bekas ini, mereka boleh mengakses bekas ini melalui penemuan perkhidmatan

    balas
    0
  • 世界只因有你

    世界只因有你2017-04-27 09:05:14

    Sangat mudah, pelbagai penyelesaian komunikasi rangkaian docker silang hos.

    Kubernetes menggunakan kain flanel.

    balas
    0
  • 巴扎黑

    巴扎黑2017-04-27 09:05:14

    Anda boleh mempertimbangkan cara lain
    1. Gunakan alat orkestrasi perkhidmatan seperti kubernetes (perubahan ketara pada docker)
    2. Gunakan pusat pendaftaran seperti konsul (perubahan ketara pada kod pusat pendaftaran)

    Jika perkhidmatan mikro menggunakan awan musim bunga, pilihan kedua lebih disyorkan, yang boleh menyelesaikan masalah ini dengan sempurna

    balas
    0
  • Batalbalas