ಪ್ರೊಹೋಸ್ಟರ್ > Блог > ಆಡಳಿತ > tcpserver ಮತ್ತು netcat ನೊಂದಿಗೆ ಕುಬರ್ನೆಟ್ಸ್ ಪಾಡ್ ಅಥವಾ ಕಂಟೇನರ್ನಲ್ಲಿ ಸುರಂಗವನ್ನು ಹೇಗೆ ತೆರೆಯುವುದು
tcpserver ಮತ್ತು netcat ನೊಂದಿಗೆ ಕುಬರ್ನೆಟ್ಸ್ ಪಾಡ್ ಅಥವಾ ಕಂಟೇನರ್ನಲ್ಲಿ ಸುರಂಗವನ್ನು ಹೇಗೆ ತೆರೆಯುವುದು
ಸೂಚನೆ. ಅನುವಾದ.: LayerCI ನ ಸೃಷ್ಟಿಕರ್ತರಿಂದ ಈ ಪ್ರಾಯೋಗಿಕ ಟಿಪ್ಪಣಿಯು ಕುಬರ್ನೆಟ್ಸ್ (ಮತ್ತು ಹೆಚ್ಚಿನವು) ಗಾಗಿ ಸಲಹೆಗಳು ಮತ್ತು ತಂತ್ರಗಳು ಎಂದು ಕರೆಯಲ್ಪಡುವ ಅತ್ಯುತ್ತಮ ವಿವರಣೆಯಾಗಿದೆ. ಇಲ್ಲಿ ಪ್ರಸ್ತಾಪಿಸಲಾದ ಪರಿಹಾರವು ಕೆಲವೇ ಕೆಲವು ಮತ್ತು, ಬಹುಶಃ, ಹೆಚ್ಚು ಸ್ಪಷ್ಟವಾಗಿಲ್ಲ (ಕೆಲವು ಸಂದರ್ಭಗಳಲ್ಲಿ, ಈಗಾಗಲೇ ಕಾಮೆಂಟ್ಗಳಲ್ಲಿ ಉಲ್ಲೇಖಿಸಲಾದ K8 ಗಳಿಗೆ "ಸ್ಥಳೀಯ" ಸೂಕ್ತವಾಗಿರಬಹುದು kubectl port-forward) ಆದಾಗ್ಯೂ, ಕ್ಲಾಸಿಕಲ್ ಉಪಯುಕ್ತತೆಗಳನ್ನು ಬಳಸುವ ಮತ್ತು ಅವುಗಳನ್ನು ಮತ್ತಷ್ಟು ಸಂಯೋಜಿಸುವ ದೃಷ್ಟಿಕೋನದಿಂದ ಕನಿಷ್ಠ ಸಮಸ್ಯೆಯನ್ನು ನೋಡಲು ಇದು ನಿಮ್ಮನ್ನು ಅನುಮತಿಸುತ್ತದೆ - ಅದೇ ಸಮಯದಲ್ಲಿ ಸರಳ, ಹೊಂದಿಕೊಳ್ಳುವ ಮತ್ತು ಶಕ್ತಿಯುತ (ಸ್ಫೂರ್ತಿಗಾಗಿ ಕೊನೆಯಲ್ಲಿ "ಇತರ ವಿಚಾರಗಳು" ನೋಡಿ).
ವಿಶಿಷ್ಟ ಸನ್ನಿವೇಶವನ್ನು ಕಲ್ಪಿಸಿಕೊಳ್ಳಿ: ನಿಮ್ಮ ಸ್ಥಳೀಯ ಗಣಕದಲ್ಲಿ ಟ್ರಾಫಿಕ್ ಅನ್ನು ಪಾಡ್/ಕಂಟೇನರ್ಗೆ (ಅಥವಾ ಪ್ರತಿಯಾಗಿ) ಮಾಂತ್ರಿಕವಾಗಿ ಫಾರ್ವರ್ಡ್ ಮಾಡಲು ನೀವು ಪೋರ್ಟ್ ಬಯಸುತ್ತೀರಿ.
ಸಂಭವನೀಯ ಬಳಕೆಯ ಪ್ರಕರಣಗಳು
HTTP ಎಂಡ್ಪಾಯಿಂಟ್ ಏನನ್ನು ನೀಡುತ್ತದೆ ಎಂಬುದನ್ನು ಪರಿಶೀಲಿಸಿ /healthz ಉತ್ಪಾದನಾ ಕ್ಲಸ್ಟರ್ನಲ್ಲಿ ಪಾಡ್.
ಸ್ಥಳೀಯ ಗಣಕದಲ್ಲಿನ ಪಾಡ್ಗೆ TCP ಡೀಬಗರ್ ಅನ್ನು ಸಂಪರ್ಕಿಸಿ.
ದೃಢೀಕರಣದೊಂದಿಗೆ ತಲೆಕೆಡಿಸಿಕೊಳ್ಳದೆಯೇ ಸ್ಥಳೀಯ ಡೇಟಾಬೇಸ್ ಪರಿಕರಗಳಿಂದ ಉತ್ಪಾದನಾ ಡೇಟಾಬೇಸ್ಗೆ ಪ್ರವೇಶವನ್ನು ಪಡೆಯಿರಿ (ಸಾಮಾನ್ಯವಾಗಿ ಸ್ಥಳೀಯ ಹೋಸ್ಟ್ ಮೂಲ ಹಕ್ಕುಗಳನ್ನು ಹೊಂದಿರುತ್ತದೆ).
ಧಾರಕವನ್ನು ರಚಿಸದೆಯೇ ಸ್ಟೇಜಿಂಗ್ ಕ್ಲಸ್ಟರ್ನಲ್ಲಿ ಡೇಟಾಕ್ಕಾಗಿ ಒಂದು-ಬಾರಿ ವಲಸೆ ಸ್ಕ್ರಿಪ್ಟ್ ಅನ್ನು ರನ್ ಮಾಡಿ.
ವರ್ಚುವಲ್ ಡೆಸ್ಕ್ಟಾಪ್ ಚಾಲನೆಯಲ್ಲಿರುವ ಪಾಡ್ಗೆ VNC ಸೆಶನ್ ಅನ್ನು ಸಂಪರ್ಕಿಸಿ (XVFB ನೋಡಿ).
ಅಗತ್ಯ ಉಪಕರಣಗಳ ಬಗ್ಗೆ ಕೆಲವು ಪದಗಳು
Tcpserver — ಹೆಚ್ಚಿನ Linux ಪ್ಯಾಕೇಜ್ ರೆಪೊಸಿಟರಿಗಳಲ್ಲಿ ತೆರೆದ ಮೂಲ ಉಪಯುಕ್ತತೆ ಲಭ್ಯವಿದೆ. ಸ್ಥಳೀಯ ಪೋರ್ಟ್ ಅನ್ನು ತೆರೆಯಲು ಮತ್ತು ಯಾವುದೇ ನಿರ್ದಿಷ್ಟ ಆಜ್ಞೆಯಿಂದ stdin/stdout ಮೂಲಕ ಸ್ವೀಕರಿಸಿದ ದಟ್ಟಣೆಯನ್ನು ಮರುನಿರ್ದೇಶಿಸಲು ಇದು ನಿಮ್ಮನ್ನು ಅನುಮತಿಸುತ್ತದೆ:
ಈ ಆಜ್ಞೆಯು ಪಾಡ್ ಸ್ಥಳೀಯ ಗಣಕದಲ್ಲಿ ಪೋರ್ಟ್ 8000 ಅನ್ನು ಪ್ರವೇಶಿಸಲು ಅನುಮತಿಸುತ್ತದೆ.
ಬ್ಯಾಷ್ ಸ್ಕ್ರಿಪ್ಟ್
ನಾನು ಬ್ಯಾಷ್ಗಾಗಿ ವಿಶೇಷ ಸ್ಕ್ರಿಪ್ಟ್ ಅನ್ನು ಬರೆದಿದ್ದೇನೆ ಅದು ನಿಮಗೆ ಕುಬರ್ನೆಟ್ಸ್ ಪ್ರೊಡಕ್ಷನ್ ಕ್ಲಸ್ಟರ್ ಅನ್ನು ನಿರ್ವಹಿಸಲು ಅನುವು ಮಾಡಿಕೊಡುತ್ತದೆ ಲೇಯರ್ಸಿಐಮೇಲೆ ವಿವರಿಸಿದ ವಿಧಾನವನ್ನು ಬಳಸಿ:
kubetunnel() {
POD="$1"
DESTPORT="$2"
if [ -z "$POD" -o -z "$DESTPORT" ]; then
echo "Usage: kubetunnel [pod name] [destination port]"
return 1
fi
pkill -f 'tcpserver 127.0.0.1 6666'
tcpserver 127.0.0.1 6666 kubectl exec -i "$POD" nc 127.0.0.1 "$DESTPORT"&
echo "Connect to 127.0.0.1:6666 to access $POD:$DESTPORT"
}
ನೀವು ಈ ಕಾರ್ಯವನ್ನು ಸೇರಿಸಿದರೆ ~/.bashrc, ಆಜ್ಞೆಯೊಂದಿಗೆ ನೀವು ಸುಲಭವಾಗಿ ಪಾಡ್ನಲ್ಲಿ ಸುರಂಗವನ್ನು ತೆರೆಯಬಹುದು kubetunnel web-pod 8080 ಮತ್ತು ಮಾಡಿ curl localhost:6666.
ಒಳಗೆ ಸುರಂಗಕ್ಕಾಗಿ ಡಾಕರ್ ನೀವು ಮುಖ್ಯ ಸಾಲನ್ನು ಇದರೊಂದಿಗೆ ಬದಲಾಯಿಸಬಹುದು: