ओपन वी स्विच से जुड़ा, डॉकटर कंटेनर और अन्य मशीनों के बीच कनेक्शन का मुद्दा


2

मैं अपनी मशीनों के संचार के लिए खुले vSwitch (DPDK के साथ) का उपयोग कर रहा हूं। मेरे पास 2 भौतिक पीसी हैं। Nginx उनमें से एक और उसके आईपी = 10.10.10.6 / 24 पर काम कर रहा है। ओपन वीस्विच और डॉकर दूसरी मशीन पर काम कर रहे हैं। मैं इस कमांड के माध्यम से एक पुल बनाता हूं:

ovs-vsctl add-br br0 -- set bridge br0 datapath_type=netdev

और मैं इस कमांड के माध्यम से भौतिक पोर्ट में एक पोर्ट जोड़ता हूं जो DPDK ड्राइवर का उपयोग कर रहा है और एक केबल के साथ Ngnix मशीन से जुड़ा है:

ovs-vsctl add-port br0 dpdk0 -- set Interface dpdk0 \
        type=dpdk options:dpdk-devargs=0000:05:00.1

और br0 को एक IP असाइन करें:

ifconfig br0 10.10.10.11 netmask 255.255.255.0 up

इसके बाद मैं अपनी छवि का उपयोग करके एक कंटेनर बनाता हूं:

Dockerfile:

FROM ubuntu:latest
MAINTAINER Zekeriya Akgul


RUN apt-get update -y && \
    apt-get upgrade -y && \
    apt-get install -y apache2 iputils-ping iputils-tracepath iproute2 net-tools wget

EXPOSE 80 443 444 

और निम्नलिखित कमांड का उपयोग करके कंटेनर चलाएं:

docker run --rm -P -it --cap-add NET_ADMIN --name ubuntu1 zkryakgul/ubuntu /bin/bash

इसके बाद मैं निम्नलिखित कमांड का उपयोग करके कंटेनर को एक पोर्ट असाइन करता हूं:

ovs-docker add-port br0 eth1 ubuntu1 --ipaddress=10.10.10.12/24

इस सब के बाद मेरे nginx मशीन कंटेनर और कंटेनर pinging nginx पिंग।

लेकिन जब मैं करने की कोशिश wget 10.10.10.6:80, कंटेनर कनेक्ट नहीं कर सकते। लेकिन दूसरी तरफ, मेरी भौतिक मशीन (आईपी: 10.10.10.11) कर सकती है। जब मैं एक ही कमांड (wget) चलाता हूं, तो उसे पृष्ठ 10.10.10.6:80 से प्राप्त होता है।

मैं क्या गलत कर रहा हूं?

जवाबों:


0

मैं अंत में इस समस्या को पकड़ता हूं। समस्या docker कंटेनर पर tcp ऑफलोडिंग है। जब मैं इस कमांड के माध्यम से tcp ऑफलोडिंग को बंद करता हूं:

ethtool -K eth6 tx off rx off

सब कुछ ठीक काम करता है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.