الربط الشبكي بين فم فم وحاوية عامل الميناء على نفس المضيف

على مضيف ديبيان تمتد (متصلا لان المادية) لدي تثبيت عامل ميناء جديد (الإصدار 18.09) مع حاوية قاعدة بيانات واحدة (ميناء معين إلى المضيف) وأنا تشغيل كفم/ليبفيرت مع بعض ديبيان تمتد فمس. يمكنني الوصول إلى حاوية عامل الميناء و فمس من لان (اعتمادا على التكوين الحوض نفق سش أو مباشرة) ولكن أنا تكافح للوصول إلى حاوية عامل الميناء من فمس.

enter image description here

# brctl showbridge name         bridge id           STP enabled interfacesbr-f9f3ccd64037     8000.0242b3ebe3a0   no      docker0             8000.024241f39b89   no      veth35454acvirbr0              8000.525400566522   yes     virbr0-nic

بعد القراءة لعدة أيام ، وجدت حلا مقنعا للغاية في هذا المنشور عامل الميناء و كفم مع جسر (الأصل) أنني لم أحصل على العمل. يقترح الحل لبدء عامل الميناء مع الخفي التكوين من سطر واحد.رمز جسون لاستخدام جسر كفم "الافتراضي". كم سيكون ذلك لطيفا! هل هناك أي أمل?

حاولت اثنين من تكوينات مختلفة للتواصل بين كفم فمس. في كلتا الحالتين الاتصال بين نظام رصد السفن وشبكة لان+راوتر+سحابة لا تشوبه شائبة ولكن أنا فقط لا أعرف كيفية الحصول على السياج - إلى العشب أكثر اخضرارا... :)

أسيوط 1-كفم الجسر الافتراضي مع نات: يمكنني سه إلى المضيف دبيان والوصول إلى ميناء الحاويات عامل الميناء ولكن هناك الإعداد مع الطريق المباشر?

أسيوط 2-ماكفتاب محول في وضع الجسر إلى لان: لا أستطيع بينغ المضيف لان إب من فم على الرغم من أن كلاهما متصل بنفس جهاز التوجيه. استجابة من فم نفسها هي Destination Host Unreachable. أي فكر لماذا?

سيكون من الأفضل لتشغيل الخفي عامل الميناء في فم منفصل بدلا من مباشرة على المضيف دبيان? بهذه الطريقة على حد سواء ، الحاوية و فم ، يمكن الوصول إلى جسر كفم الافتراضي. ولكن اعتقدت أنه من الغريب كيندا لتشغيل عامل الميناء في فم على مضيف كفم.

سيكون موضع تقدير أي توجيه واضح!

راجع للشغل ، الجسر br-f9f3ccd64037 هو جسر المعرفة من قبل المستخدم أنا خلقت مع عامل الميناء للاتصالات بين الحاويات في المستقبل. لا يتم استخدامه.

تحديث:

أنا فقط أدركت أنه مع التكوين الأول يمكنني ببساطة الاتصال إلى حاوية عامل الميناء عن طريق عنوان إب (172.17.0.2) من الضيوف فم.

كان الإعداد الأولي التكوين الثاني لأنني أردت أن ردب في فمس ، وهو أسهل منذ سائق ماكفتاب يربط فمس مباشرة إلى لان وليس هناك حاجة إلى رابط سش. وذلك عندما لم أتمكن من الوصول إلى الحاوية.

كان الحل بسيطا كما هو مذكور في المقالة المرتبطة. لست متأكدا من سبب عدم تغيير التكوين الخاص بي في المرة الأولى التي أعيد فيها تشغيل البرنامج الخفي لعامل الإرساء.

بعد أن وجدت أدلة في وثائق عامل الميناء الخفي للحجة الجسر في الخفي.جسون ، أعطيته محاولة أخرى و الخفي عامل الميناء التقطت الجسر الافتراضي كفم عند بدء التشغيل.

أولا أنا خلقت ملف التكوين /etc/docker/daemon.json كما هو مقترح في الوثائق مع المحتوى التالي (قد لا تكون هناك حاجة حتى خط إيبتبلس):

{"bridge": "virbr0","iptables": false}

كل ما كان مطلوبا هو:

docker stop mysqlsystemctl stop dockersystemctl start dockerdocker start mysql

وكانت حاوية عامل الميناء الحالية تعمل على جسر كفم. يمكن التحقق من عنوان إب للحاوية مع:

docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' mysql192.168.122.2

لست متأكدا مما إذا كان يمكنني إزالة جسر دوكر 0 الآن ، ولكن يتم سرد الحاوية تحت فيربر0 جنبا إلى جنب مع نظام رصد السفن الثلاثة.

brctl showbridge name bridge id           STP enabled interfacesdocker0     8000.024241f39b89   no      virbr0      8000.068ff2a4a56e   yes         veth2abcff1                                            virbr0-nic                                            vnet0                                            vnet1                                            vnet2

أنا معتاد على تنفيذ ذلك باستخدام الإعداد التالي :

  • أنا خلق br0 جسر مع نيك المادية داخل

  • يتم توصيل آلات كفم على الجسر باستخدام كيمو شمل التكوين مقتطف أدناه

    <interface type='bridge'>      <mac address='52:54:00:a9:28:0a'/>      <source bridge='br0'/>      <model type='virtio'/>      <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>    </interface>
  • مداخن عامل الميناء كلها تعمل على نفس: أنا حجز إب توجيهها العام لكل كومة. أنا ربط هذا الملكية الفكرية العامة إلى الجسر br0 باستخدام مقتطف تكوين خدمة أوبنسفك أدناه.

    • ال [ip#0] القسم يقول أننا نريد الملكية الفكرية 1.2.3.4 تكوين في الحاوية مع معرف المورد container#0 وهو عامل ميناء جوجل / وقفة ، ومتصلة الجسر br0

    • جميع عمال الرصيف الآخرين في تكوين شبكة هيريت المكدس من container#0 بسبب التكوين netns = container#0 في إعلان عامل الميناء

    • عند بدء تشغيل خدمة أوبنسفك ، يتم إعداد الشبكة بواسطة الوكيل ، مما ينتج عنه جميع الأوامر التي تم الإبلاغ عنها في السجلات أدناه

أوبنسفك تكوين الخدمة

[DEFAULT]docker_daemon_args = --log-opt max-size=1m --storage-driver=zfs --iptables=falsedocker_data_dir = /{env.base_dir}/dockerenv = PRDnodes = srv1.acme.com srv2.acme.comorchestrate = startid = 4958b24d-4d0f-4c30-71d2-bb820e043a5d[fs#1]dev = {env.pool}/{namespace}-{svcname}mnt = {env.base_dir}mnt_opt = rw,xattr,acltype = zfs[fs#2]dev = {env.pool}/{namespace}-{svcname}/dockermnt = {env.base_dir}/dockermnt_opt = rw,xattr,acltype = zfs[fs#3]dev = {env.pool}/{namespace}-{svcname}/datamnt = {env.base_dir}/datamnt_opt = rw,xattr,acltype = zfs[ip#0]netns = container#0ipdev = br0ipname = 1.2.3.4netmask = 255.255.255.224gateway = 1.2.3.1type = netns[container#0]hostname = {svcname}image = google/pauserm = truerun_command = /bin/shtype = docker[container#mysvc]image = mysvc/mysvc:4.1.3netns = container#0run_args = -v /etc/localtime:/etc/localtime:ro    -v {env.base_dir}/data/mysvc:/home/mysvc/server/datatype = docker[env]base_dir = /srv/{namespace}-{svcname}pool = data

سجل بدء التشغيل

2019-01-04 11:27:14,617 - srv1.acme.com.appprd.mysvc.ip#0 - INFO - checking 1.2.3.4 availability2019-01-04 11:27:18,565 - srv1.acme.com.appprd.mysvc.fs#1 - INFO - mount -t zfs -o rw,xattr,acl data/appprd-mysvc /srv/appprd-mysvc2019-01-04 11:27:18,877 - srv1.acme.com.appprd.mysvc.fs#2 - INFO - mount -t zfs -o rw,xattr,acl data/appprd-mysvc/docker /srv/appprd-mysvc/docker2019-01-04 11:27:19,106 - srv1.acme.com.appprd.mysvc.fs#3 - INFO - mount -t zfs -o rw,xattr,acl data/appprd-mysvc/data /srv/appprd-mysvc/data2019-01-04 11:27:19,643 - srv1.acme.com.appprd.mysvc - INFO - starting docker daemon2019-01-04 11:27:19,644 - srv1.acme.com.appprd.mysvc - INFO - dockerd -H unix:///var/lib/opensvc/namespaces/appprd/services/mysvc/docker.sock --data-root //srv/appprd-mysvc/docker -p /var/lib/opensvc/namespaces/appprd/services/mysvc/docker.pid --exec-root /var/lib/opensvc/namespaces/appprd/services/mysvc/docker_exec --log-opt max-size=1m --storage-driver=zfs --iptables=false --exec-opt native.cgroupdriver=cgroupfs2019-01-04 11:27:24,669 - srv1.acme.com.appprd.mysvc.container#0 - INFO - docker -H unix:///var/lib/opensvc/namespaces/appprd/services/mysvc/docker.sock run --name=appprd..mysvc.container.0 --detach --hostname mysvc --net=none --cgroup-parent /opensvc.slice/appprd.slice/mysvc.slice/container.slice/container.0.slice google/pause /bin/sh2019-01-04 11:27:30,965 - srv1.acme.com.appprd.mysvc.container#0 - INFO - output:2019-01-04 11:27:30,965 - srv1.acme.com.appprd.mysvc.container#0 - INFO - f790e192b5313d7c3450cb257d075620f40c2bad3d69d52c8794eccfe954f2502019-01-04 11:27:30,987 - srv1.acme.com.appprd.mysvc.container#0 - INFO - wait for up status2019-01-04 11:27:31,031 - srv1.acme.com.appprd.mysvc.container#0 - INFO - wait for container operational2019-01-04 11:27:31,186 - srv1.acme.com.appprd.mysvc.ip#0 - INFO - bridge mode2019-01-04 11:27:31,268 - srv1.acme.com.appprd.mysvc.ip#0 - INFO - /sbin/ip link add name veth0pl20321 mtu 1500 type veth peer name veth0pg20321 mtu 15002019-01-04 11:27:31,273 - srv1.acme.com.appprd.mysvc.ip#0 - INFO - /sbin/ip link set veth0pl20321 master br02019-01-04 11:27:31,277 - srv1.acme.com.appprd.mysvc.ip#0 - INFO - /sbin/ip link set veth0pl20321 up2019-01-04 11:27:31,281 - srv1.acme.com.appprd.mysvc.ip#0 - INFO - /sbin/ip link set veth0pg20321 netns 203212019-01-04 11:27:31,320 - srv1.acme.com.appprd.mysvc.ip#0 - INFO - /usr/bin/nsenter --net=/var/lib/opensvc/namespaces/appprd/services/mysvc/docker_exec/netns/fc2fa9b2eaa4 ip link set veth0pg20321 name eth02019-01-04 11:27:31,356 - srv1.acme.com.appprd.mysvc.ip#0 - INFO - /usr/bin/nsenter --net=/var/lib/opensvc/namespaces/appprd/services/mysvc/docker_exec/netns/fc2fa9b2eaa4 ip addr add 1.2.3.4/27 dev eth02019-01-04 11:27:31,362 - srv1.acme.com.appprd.mysvc.ip#0 - INFO - /usr/bin/nsenter --net=/var/lib/opensvc/namespaces/appprd/services/mysvc/docker_exec/netns/fc2fa9b2eaa4 ip link set eth0 up2019-01-04 11:27:31,372 - srv1.acme.com.appprd.mysvc.ip#0 - INFO - /usr/bin/nsenter --net=/var/lib/opensvc/namespaces/appprd/services/mysvc/docker_exec/netns/fc2fa9b2eaa4 ip route replace default via 1.2.3.12019-01-04 11:27:31,375 - srv1.acme.com.appprd.mysvc.ip#0 - INFO - /usr/bin/nsenter --net=/var/lib/opensvc/namespaces/appprd/services/mysvc/docker_exec/netns/fc2fa9b2eaa4 /usr/bin/python3 /usr/share/opensvc/lib/arp.py eth0 1.2.3.42019-01-04 11:27:32,534 - srv1.acme.com.appprd.mysvc.container#mysvc - INFO - docker -H unix:///var/lib/opensvc/namespaces/appprd/services/mysvc/docker.sock run --name=appprd..mysvc.container.mysvc -v /etc/localtime:/etc/localtime:ro -v /srv/appprd-mysvc/data/mysvc:/home/mysvc/server/data --detach --net=container:appprd..mysvc.container.0 --cgroup-parent /opensvc.slice/appprd.slice/mysvc.slice/container.slice/container.mysvc.slice mysvc/mysvc:4.1.32019-01-04 11:27:37,776 - srv1.acme.com.appprd.mysvc.container#mysvc - INFO - output:2019-01-04 11:27:37,777 - srv1.acme.com.appprd.mysvc.container#mysvc - INFO - 1616cade9257d0616346841c3e9f0d639a9306e1af6fd750fe70e17903a110112019-01-04 11:27:37,797 - srv1.acme.com.appprd.mysvc.container#mysvc - INFO - wait for up status2019-01-04 11:27:37,833 - srv1.acme.com.appprd.mysvc.container#mysvc - INFO - wait for container operational

عندما قرأت السؤال, كنت أتطلع لمعرفة ما إذا كانت هناك طريقة للاتصال virbr0 إلى شبكة عامل الميناء. الصورة أدناه هي بلدي تعديل ما أعتقد أنه طلب:

enter image description here

إذا كان هذا هو الحال ، فإن الجواب هو استخدام macvlan الشبكة ، والتي تتيح لك إرفاق شبكة عامل ميناء مباشرة بجهاز مضيف. لذلك شيء من هذا القبيل ما يلي سوف تحصل على ما تريد:

docker network create --driver=macvlan --subnet=192.168.0.0/16 -o parent=virbr0 mynet