Docker容器内微服务向注册中心注册ip地址的问题
给我你的怀抱
给我你的怀抱 2017-04-27 09:03:14
0
7
1287

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

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

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

给我你的怀抱
给我你的怀抱

membalas semua(7)
小葫芦

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

小葫芦

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

我想大声告诉你

Gunakan hos untuk menambah dns dalaman

Ty80

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

曾经蜡笔没有小新

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

世界只因有你

Sangat mudah, pelbagai penyelesaian komunikasi rangkaian docker silang hos.

Kubernetes menggunakan kain flanel.

巴扎黑

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

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan