๋กœ์ผ“๐Ÿพ
article thumbnail

 

ํ•ด๋‹น ๊ธ€์€ ์ด์Šคํ‹ฐ์˜ค ์ธ ์•ก์…˜์ด๋ผ๋Š” ์ฑ…์˜ ์ผ๋ถ€ ํŒŒํŠธ๋ฅผ ์ฐธ๊ณ ํ•˜์˜€๊ณ , ์ฑ…์—์„œ ๋‹ค๋ค˜๋˜ ๋ฐฉ๋ฒ•๋ณด๋‹ค ํ•œ ๋‹จ๊ณ„ ๋” ๋‚˜์•„๊ฐ€์„œ ์ง„ํ–‰ํ–ˆ๋˜ ๋‚ด์šฉ์„ ๋ฐ”ํƒ•์œผ๋กœ ์ž‘์„ฑํ•˜์˜€์Šต๋‹ˆ๋‹ค.

์ด์Šคํ‹ฐ์˜ค ์ธ ์•ก์…˜

์ด์Šคํ‹ฐ์˜ค ์ธ ์•ก์…˜์€ ์ด์Šคํ‹ฐ์˜ค์— ๊ด€ํ•œ ์ฑ…์ธ๋ฐ, ์ตœ๊ทผ์— ์ฝ์—ˆ๋˜ ์ค‘์— ์ฑ… ์ค‘์— ๊ฐ€์žฅ ํฅ๋ฏธ๋กญ๊ฒŒ ์ฝ์€ ์ฑ…์ด์˜€์Šต๋‹ˆ๋‹ค.
์ด์Šคํ‹ฐ์˜ค๊ฐ€ ๊ถ๊ธˆํ•˜๋‹ค๋ฉด ๋งŽ์€ ๋„์›€์„ ์–ป์„ ์ˆ˜ ์žˆ๋Š” ์ฑ…์œผ๋กœ ์ ๊ทน ์ถ”์ฒœํ•ฉ๋‹ˆ๋‹ค!

 

๋‹ค์‹œ ๋ณธ๋ก ์œผ๋กœ ๋Œ์•„์™€์„œ ksniff ๋Š” tcpdump ๋ฅผ ์‚ฌ์šฉํ•ด ํŒŒ๋“œ์˜ ๋„คํŠธ์›Œํฌ ํŠธ๋ž˜ํ”ฝ์„ ํฌ์ฐฉํ•˜๊ณ  ์ด๋ฅผ ์™€์ด์–ด์ƒคํฌ๋กœ ๋ฆฌ๋‹ค์ด๋ ‰ํŠธํ•˜๋Š” kubectl ํ”Œ๋Ÿฌ๊ทธ์ธ์ž…๋‹ˆ๋‹ค.

 

ksniff ๋ฅผ ์„ค์น˜ํ•˜๊ธฐ ์œ„ํ•ด์„  ์šฐ์„  krew ๋ฅผ ๋จผ์ € ์„ค์น˜ํ•ด์ฃผ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

 

krew ๋ฌธ์„œ๋กœ ๊ฐ€์„œ ๊ทธ๋Œ€๋กœ ์ง„ํ–‰ํ•ด์ค๋‹ˆ๋‹ค.

 

์ € ๊ฐ™์€ ๊ฒฝ์šฐ๋Š” ์•„๋ž˜ ์‰˜ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‹คํ–‰์‹œ์ผฐ์Šต๋‹ˆ๋‹ค.

$ (
  set -x; cd "$(mktemp -d)" &&
  OS="$(uname | tr '[:upper:]' '[:lower:]')" &&
  ARCH="$(uname -m | sed -e 's/x86_64/amd64/' -e 's/\(arm\)\(64\)\?.*/\1\2/' -e 's/aarch64$/arm64/')" &&
  KREW="krew-${OS}_${ARCH}" &&
  curl -fsSLO "https://github.com/kubernetes-sigs/krew/releases/latest/download/${KREW}.tar.gz" &&
  tar zxvf "${KREW}.tar.gz" &&
  ./"${KREW}" install krew
)

 

์ดํ›„ ~/.zshrc์— PATH ๋ฅผ ๋“ฑ๋กํ•ด์ฃผ์—ˆ์Šต๋‹ˆ๋‹ค.

$ export PATH="${KREW_ROOT:-$HOME/.krew}/bin:$PATH"

 

krew ๋ฅผ ์„ค์น˜ํ–ˆ์œผ๋ฉด ์•„๋ž˜ ๋ช…๋ น์–ด๋ฅผ ํ†ตํ•ด ksniff ๋ฅผ kubectl ํ”Œ๋Ÿฌ๊ทธ์ธ์œผ๋กœ ์„ค์น˜ํ•ด์ค๋‹ˆ๋‹ค.

$ kubectl krew install sniff
install ํ•ด์ค„ ๋•Œ๋Š” ksniff ๊ฐ€ ์•„๋‹ˆ๊ณ  sniff ๋กœ ์ž‘์„ฑํ•ฉ๋‹ˆ๋‹ค.

 

๊ทธ ๋‹ค์Œ์œผ๋กœ ์™€์ด์–ด์ƒคํฌ๋„ ์„ค์น˜ํ•ด์ค๋‹ˆ๋‹ค.

$ brew install wireshark

 

๊ทผ๋ฐ ์—ฌ๊ธฐ์„œ ํ•œ๊ฐ€์ง€ ์•Œ์•„๋‘˜ ๊ฒƒ์ด ์žˆ๋Š”๋ฐ ksniff ๋Š” wireshark ๋ฅผ CLI ๋กœ ์‹คํ–‰์‹œํ‚ค๊ธฐ ๋•Œ๋ฌธ์— ํ„ฐ๋ฏธ๋„์—์„œ wireshark ๋ฅผ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

 

๊ทธ๋Ÿฐ๋ฐ ์•„๋ž˜์ฒ˜๋Ÿผ ๋ช…๋ น์–ด๋ฅผ ๋‚ ๋ฆฌ๋ฉด not found wireshark ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

$ wireshark -v

 

wireshark(v4.4.2) ๊ธฐ์ค€์œผ๋กœ ํ„ฐ๋ฏธ๋„์šฉ์€ tshark๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•˜๋Š”๋ฐ, ์ €๋Š” ์—ฌ์ „ํžˆ wireshark ๋ช…๋ น์–ด๋ฅผ ์“ฐ๊ณ  ์‹ถ์—ˆ์Šต๋‹ˆ๋‹ค.

๋ฌผ๋ก  tshark๋ฅผ ์“ฐ๋Š” ๋ฐฉ๋ฒ•๋„ ๋ฌธ์„œ์—๋Š” ๋‚˜์™€์žˆ๊ธด ํ•ฉ๋‹ˆ๋‹ค.

https://github.com/eldadru/ksniff?tab=readme-ov-file#piping-output-to-stdout

 

๊ทธ๋Ÿฐ๋ฐ ์ด๋ ‡๊ฒŒ ํ•  ๊ฒฝ์šฐ ์™€์ด์–ด์ƒคํฌ์˜ GUI ํ™”๋ฉด์ด ์•„๋‹ˆ๊ณ  CLI ํ™”๋ฉด์œผ๋กœ ํ…์ŠคํŠธ๋งŒ ๋ด์•ผํ•ด์„œ ๋ถˆํŽธํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— wireshark ๋ฅผ ๊ณ ์ง‘ํ–ˆ์Šต๋‹ˆ๋‹ค.

tshark๋Š” ํ„ฐ๋ฏธ๋„๋กœ ์ง์ ‘ ๋ณด์—ฌ์คŒ

 

๊ทธ๋ž˜์„œ ์ด๊ฒƒ์ €๊ฒƒ ์ฐพ์•„๋ณธ ๊ฒฐ๊ณผ ๋‹คํ–‰ํžˆ ๋ฐฉ๋ฒ•์„ ์ฐพ์„ ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

 

Home Brew ๋กœ ์™€์ด์–ด์ƒคํฌ๋ฅผ ์„ค์น˜ํ–ˆ์œผ๋ฉด /Applications/Wireshark.app/Contents/MacOS/Wireshark ๊ฒฝ๋กœ์— ์‹คํ–‰ํŒŒ์ผ์ด ์กด์žฌํ•˜๊ฒŒ ๋  ํ…๋ฐ,

 

์ด ์‹คํ–‰ํŒŒ์ผ์„ PATH bin ์œผ๋กœ ์†Œํ”„ํŠธ๋งํฌ ๊ฑธ์–ด์ฃผ๋ฉด ๋ฉ๋‹ˆ๋‹ค.

$ sudo ln -s /Applications/Wireshark.app/Contents/MacOS/Wireshark /usr/local/bin/wireshark

 

 

๊ทธ๋Ÿฌ๋ฉด wireshark ๋ช…๋ น์–ด๊ฐ€ ์ž˜ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค.

wireshark -v

 

์†Œํ”„ํŠธ๋งํฌ๋„ ์ž˜ ๊ฑธ๋ ค์žˆ๋„ค์š”

l์€ ์†Œํ”„ํŠธ๋งํฌ๋ฅผ ๋‚˜ํƒ€๋ƒ„

 

ํ˜น์‹œ ๋” ๋‚˜์€ ๋ฐฉ๋ฒ•์ด ์žˆ๋‹ค๋ฉด ์•Œ๋ ค์ฃผ์„ธ์š”!

 

๊ทธ๋Ÿผ ์ด์ œ ksniff ๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•œ ์ค€๋น„๋ฅผ ๋งˆ์ณค์œผ๋‹ˆ, ๋‹ค์Œ์œผ๋กœ ์˜ˆ์ œ ์ƒํ™ฉ์„ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

์˜ˆ์ œ ์ƒํ™ฉ์— ์“ฐ์ธ ์ฝ”๋“œ๋‚˜ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์€ ๋‹ค๋ฃจ์ง€ ์•Š๊ฒ ์Šต๋‹ˆ๋‹ค. 
๊ถ๊ธˆํ•˜์‹œ๋‹ค๋ฉด ์ด์Šคํ‹ฐ์˜ค ์ธ ์•ก์…˜ ์ฑ…์„ ๊ตฌ๋งคํ•˜์…”์„œ ํ™•์ธํ•˜์‹œ๊ธธ ๋ฐ”๋ž๋‹ˆ๋‹ค.

์˜ˆ์ œ ์ƒํ™ฉ

 

์ธ๊ทธ๋ ˆ์Šค ๊ฒŒ์ดํŠธ์›จ์ด๋ฅผ ํ†ตํ•ด์„œ ์š”์ฒญ์ด ๋“ค์–ด์˜ค๋ฉด ๊ฒŒ์ดํŠธ์›จ์ด๋Š” v1 ๊ณผ v2 ์„œ๋ธŒ์…‹์— 2:8 ํ™•๋ฅ ๋กœ ์š”์ฒญ์„ ๋ผ์šฐํŒ…ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  catalog v2 ์˜ ํ•œ ํŒŒ๋“œ๋Š” ์‘๋‹ตํ•˜๋Š” ๋ฐ 0.5์ดˆ ์ด์ƒ์ด ๊ฑธ๋ฆฌ๋Š”๋ฐ, ์ด๋Š” VirtualService ์—์„œ ์„ค์ •ํ•œ๋Œ€๋กœ 0.5์ดˆ ์ด์ƒ์ด ๊ฑธ๋ฆฌ๋ฉด ํƒ€์ž„ ์•„์›ƒ์ด ๋ฐœ์ƒํ•˜๋Š”์ง€ ํ…Œ์ŠคํŠธํ•˜๊ธฐ ์œ„ํ•จ์ž…๋‹ˆ๋‹ค.

 

๋จผ์ € ์ธ๊ทธ๋ ˆ์Šค ๊ฒŒ์ดํŠธ์›จ์ด์— ํฌํŠธ ํฌ์›Œ๋”ฉ์„ ํ•ด์ค๋‹ˆ๋‹ค.

$ kubectl port-forward -n istio-system deployments/istio-gateway 80:80

ํฌํŠธํฌ์›Œ๋”ฉ

 

๊ทธ ๋‹ค์Œ ์š”์ฒญ์„ ์ƒ์„ฑํ•˜๊ธฐ ์œ„ํ•œ ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰์‹œ์ผœ์ค๋‹ˆ๋‹ค.

$ for i in {1..1000}; do curl http://localhost/items -H "Host: catalog.istioinaction.io" -w "\nStatus Code %{http_code}\n"; sleep .5s; done

 

ksniff ๋„ ์‹คํ–‰ํ•ด์ค๋‹ˆ๋‹ค.

$ kubectl sniff catalog-v2-6c7cf7bf-2sptr -i lo

 

ํ„ฐ๋ฏธ๋„์—๋Š” ์•„๋ž˜์™€ ๊ฐ™์€ ํ…์ŠคํŠธ๊ฐ€ ์ฐํž ๊ฒƒ์ด๊ณ ,

์‹คํ–‰ ํ…Œ์ŠคํŠธ

 

์™€์ด์–ด์ƒคํฌ GUI ๊ฐ€ ๊ณง๋ฐ”๋กœ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค.

catalog ํŒŒ๋“œ์— ๋Œ€ํ•œ ์™€์ด์–ด์ƒคํฌ

 

์•„๋ž˜ ๋นจ๊ฐ„์ƒ‰ ๋„ค๋ชจ๋ฅผ ์‚ดํŽด๋ณผ ๊ฒƒ์ธ๋ฐ,

๋นจ๊ฐ„์ƒ‰ ๋„ค๋ชจ ์ง‘์ค‘

 

์ปค๋„ฅ์…˜(3-way-handshake)์ด ์ƒ์„ฑ๋˜์—ˆ๋‹ค๊ฐ€ ์ข…๋ฃŒ(4-way-handshake) ๋˜๋Š” ๊ณผ์ •์„ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

๊ทธ๋Ÿฐ๋ฐ /items ์—”๋“œํฌ์ธํŠธ์— 200 ์‘๋‹ต์„ ์ž˜๋ฐ›๋‹ค๊ฐ€ ๊ฐ‘์ž๊ธฐ ์ปค๋„ฅ์…˜์ด ์ข…๋ฃŒ๋˜๋Š” ๊ฑธ ๋ณผ ์ˆ˜ ์žˆ๋Š”๋ฐ, ์ด๋Š” ์‘๋‹ต ์†๋„๊ฐ€ ๋Š๋ฆฐ ํŒŒ๋“œ๋กœ ์ธํ•ด ํƒ€์ž„ ์•„์›ƒ(0.5 ์ดˆ ์ด์ƒ)์ด ๋ฐœ์ƒํ•ด์„œ ์ด์Šคํ‹ฐ์˜ค ํ”„๋ก์‹œ๊ฐ€ ์ปค๋„ฅ์…˜์„ ์ข…๋ฃŒ์‹œํ‚จ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

 

์ด๋กœ ์ธํ•ด ์ธ๊ทธ๋ ˆ์Šค ๊ฒŒ์ดํŠธ์›จ์ด๋Š” 504 ์‘๋‹ต์„ ๋ฐ›์•˜์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

 

catalog ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐ™์€ ๊ฒฝ์šฐ์—๋Š” ์ธ๊ทธ๋ ˆ์Šค ๊ฒŒ์ดํŠธ์›จ์ด ์ž…์žฅ์—์„  ์„œ๋ฒ„์ด๊ณ , ์ด ์„œ๋ฒ„๊ฐ€ ์ง์ ‘ 504 ์‘๋‹ต์„ ํ•œ๊ฑด ์•„๋‹ˆ๊ธฐ ๋•Œ๋ฌธ์—(catalog ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์ด์Šคํ‹ฐ์˜ค ํ”„๋ก์‹œ๊ฐ€ ํ•ด์คŒ) 504 ๊ด€๋ จํ•œ ์ฝ”๋“œ๋Š” ํ™•์ธํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

์ด์Šคํ‹ฐ์˜ค ํ”„๋ก์‹œ ๊ด€์ ์—์„œ ๋ˆ„๊ฐ€ ํด๋ผ์ด์–ธํŠธ์ด๊ณ , ๋ˆ„๊ฐ€ ์„œ๋ฒ„์ธ์ง€ ๊ตฌ๋ถ„์„ ๋ช…ํ™•ํžˆ ํ•ด์•ผ ์ดํ•ดํ•˜๊ธฐ ์‰ฝ์Šต๋‹ˆ๋‹ค.

 

์ฑ…์—์„  ์‚ฌ์‹ค ์—ฌ๊ธฐ๊นŒ์ง€ ๋‹ค๋ฃจ๊ณ  ๋‹ค๋ฅธ ์Šคํ…์œผ๋กœ ๋„˜์–ด๊ฐ€๋Š”๋ฐ, ์ €๋Š” ์ธ๊ทธ๋ ˆ์Šค ๊ฒŒ์ดํŠธ์›จ์ด๊ฐ€ 504 ์‘๋‹ต์„ ๋ฐ›๋Š” ๊ฒƒ๊นŒ์ง€ ์™€์ด์–ด์ƒคํฌ๋กœ ํ™•์ธํ•˜๊ณ  ์‹ถ์—ˆ์Šต๋‹ˆ๋‹ค.

 

๊ทธ๋Ÿฐ๋ฐ ๋ฌธ์ œ๊ฐ€ ํ•˜๋‚˜ ์žˆ์—ˆ๋Š”๋ฐ ksniff ๋Š” tcpdump ๊ฐ€ ํ•„์š”ํ•˜๊ณ , tcpdump ๊ฐ€ /tmp/static-tcpdump ์œ„์น˜์— ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

 

์ธ๊ทธ๋ ˆ์Šค ๊ฒŒ์ดํŠธ์›จ์ด ๊ฐ™์€ ๊ฒฝ์šฐ tcpdump ๊ฐ€ ๊ธฐ๋ณธ์ ์œผ๋กœ ์„ค์น˜๋˜๊ธด ํ•˜์ง€๋งŒ ๋‹น์—ฐํžˆ /tmp/static-tcpdump ์— ์žˆ์ง€๋Š” ์•Š์Šต๋‹ˆ๋‹ค. ์†Œํ”„ํŠธ๋งํฌ๋ฅผ ๊ฑธ์–ด์ฃผ๋ฉด ํ•ด๊ฒฐ๋˜๊ฒ ์ง€๋งŒ, ๊ตณ์ด ์ธ๊ทธ๋ ˆ์Šค ๊ฒŒ์ดํŠธ์›จ์ด๋ฅผ ๊ฑด๋“ค๊ณ  ์‹ถ์ง€ ์•Š์•˜์–ด์š”.

 

์–ด์ฐจํ”ผ ์ธ๊ทธ๋ ˆ์Šค ๊ฒŒ์ดํŠธ์›จ์ด๋Š” ์ด์Šคํ‹ฐ์˜ค ํ”„๋ก์‹œ๋ฅผ ํƒ€๊ฒŒ ํ•˜๊ธฐ ์œ„ํ•œ ์ˆ˜๋‹จ์ด์˜€๊ธฐ ๋•Œ๋ฌธ์— ์ด์Šคํ‹ฐ์˜ค ํ”„๋ก์‹œ๋ฅผ ๊ฐ€์ง€๋Š” Nginx ํŒŒ๋“œ๋งŒ ์žˆ์œผ๋ฉด ๊ฐ™์€ ํšจ๊ณผ๋ฅผ ๋ณผ ์ˆ˜ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•˜์—ฌ Nginx ํŒŒ๋“œ๋ฅผ ์ƒ์„ฑํ•˜์˜€์Šต๋‹ˆ๋‹ค.

 

์ดํ›„ VirtualService ๋Š” ์•„๋ž˜์™€ ๊ฐ™์ด ์ž‘์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค.

apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
  name: nginx-catalog-v1-v2
  namespace: istioinaction
spec:
  hosts:
  - "catalog.istioinaction"
  http:
  - route:
    - destination:
        host: catalog.istioinaction.svc.cluster.local
        subset: version-v1
        port:
          number: 80
      weight: 20
    - destination:
        host: catalog.istioinaction.svc.cluster.local
        subset: version-v2
        port:
          number: 80
      weight: 80
    timeout: 0.5s

 

 

๊ทธ๋ฆฌ๊ณ  Nginx ํŒŒ๋“œ ์•ˆ์œผ๋กœ ๋“ค์–ด๊ฐ€์„œ ์•„๋ž˜์™€ ๊ฐ™์€ ๋ช…๋ น์–ด๋ฅผ ๋˜‘๊ฐ™์ด ๋‚ ๋ ค์ค๋‹ˆ๋‹ค.

$ for i in {1..1000}; do curl http://catalog.istioinaction/items -w "\nStatus Code %{http_code}\n"; sleep .5s; done

 

์ฟ ๋ฒ„๋„คํ‹ฐ์Šค DNS ๋กœ ์ ‘๊ทผํ•˜๋ฉด ๋˜๊ธฐ ๋•Œ๋ฌธ์— curl ๋ช…๋ น์–ด์— ๋” ์ด์ƒ Host ํ—ค๋”๋Š” ํ•„์š”์—†์Šต๋‹ˆ๋‹ค.

 

504 ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ๊ฑธ ํ™•์ธํ•  ์ˆ˜ ์žˆ๊ณ , ์ด๊ฑธ ๊ณง๋ฐ”๋กœ ksniff ๋กœ ํ™•์ธํ•ด๋ด…๋‹ˆ๋‹ค.

upstream timeout

 

์•„๋ž˜ ๋ช…๋ น์–ด๋กœ sniff ๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

$ kubectl sniff nginx -i lo

 

๊ทธ๋Ÿฐ๋ฐ ์•„๋งˆ ์•„๋ž˜์™€ ๊ฐ™์€ ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์—๋Ÿฌ ๋ฐœ์ƒ

 

ksniff ๋ฅผ tcpdump ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค๊ณ  ํ–ˆ๋Š”๋ฐ ๊ธฐ๋ณธ์ ์ธ Nginx ์ด๋ฏธ์ง€๋Š” tcpdump ๊ฐ€ ์—†๊ธฐ ๋•Œ๋ฌธ์ด์ฃ . 

๊ทธ๋ž˜์„œ ์„ค์น˜ํ•ด์ค๋‹ˆ๋‹ค.

$ apt update && apt install -y tcpdump

 

๊ทธ๋Ÿฐ๋ฐ ์—ฌ์ „ํžˆ ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ• ํ…๋ฐ tcpdump ์‹คํ–‰ ํŒŒ์ผ์€ ksniff ๊ฐ€ ์‹คํ–‰ํ•˜๋Š” ์œ„์น˜๋กœ ์˜ฎ๊ฒจ์ฃผ๋ฉด ๋ฉ๋‹ˆ๋‹ค.

$ rm /tmp/static-tcpdump && ln /bin/tcpdump /tmp/static-tcpdump

 

ํ•ด๋‹น ์ด์Šˆ๋Š” ์—ฌ๊ธฐ์„œ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

๋‹ค์‹œ ๋ณธ๋ก ์œผ๋กœ ์™€์„œ ๋‹ค์‹œ ksniff ๋ฅผ ์‹คํ–‰ํ•˜๋ฉด ์™€์ด์–ด์ƒคํฌ๋กœ ๋ฆฌ๋‹ค์ด๋ ‰์…˜์ด ๋  ๊ฒƒ์ด๊ณ , ์ด๋ฒˆ์—” 504 ์‘๋‹ต์„ ๋ฐ›์€ ํŠธ๋ž˜ํ”ฝ์„ ์บก์ฒ˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

504 ์บก์ฒ˜

 

catalog ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„  ํ™•์ธํ•  ์ˆ˜ ์—†์—ˆ๋˜ 504 ์‘๋‹ต ์ฝ”๋“œ๋ฅผ ์–ด๋–ป๊ฒŒ nginx ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„  ํ™•์ธํ•  ์ˆ˜ ์žˆ์—ˆ์„๊นŒ์š”?

 

์œ„์—์„œ ๋ดค๋˜ ๊ทธ๋ฆผ์—์„œ ์ปจํ…Œ์ด๋„ˆ๊นŒ์ง€ ํ‘œ์‹œํ•ด๋ดค์Šต๋‹ˆ๋‹ค.

 

catalog ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐ™์€ ๊ฒฝ์šฐ๋Š” ์•ž๋‹จ Istio Proxy ์—์„œ๋ถ€ํ„ฐ ์ปค๋„ฅ์…˜์ด ์ข…๋ฃŒ๋˜๊ธฐ ๋•Œ๋ฌธ์— 504 ์— ๊ด€ํ•œ ์‘๋‹ต์„ ๋ฐ›์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

์ปค๋„ฅ์…˜๋งŒ ์—ฐ๊ฒฐ๋˜๊ณ  ๊ธฐ๋‹ค๋ฆฌ๋‹ค๊ฐ€ 0.5์ดˆ๊ฐ€ ์ง€๋‚˜๋ฉด Istio Proxy ๊ฐ€ ๋Š์–ด๋ฒ„๋ฆฌ์ฃ .

 

๊ทธ๋ฆฌ๊ณ  nginx ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์€ Istio Proxy ๋กœ๋ถ€ํ„ฐ ๋ฐ›์€ ์‘๋‹ต์„ ๋ณธ์ธ ํŒŒ๋“œ์˜ Istio Proxy ๋กœ๋ถ€ํ„ฐ ์ „๋‹ฌ๋ฐ›๊ธฐ ๋•Œ๋ฌธ์— ์‘๋‹ต์„ ์บก์ฒ˜ํ•  ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

 

์˜ค๋Š˜์€ ksniff ์— ๋Œ€ํ•ด ์•Œ์•„๋ดค๋Š”๋ฐ์š”, ๊ต‰์žฅํžˆ ํฅ๋ฏธ๋กœ์šด ๋„๊ตฌ์ธ๊ฑฐ ๊ฐ™์•„์š”. ํŒŒ๋“œ ๊ฐ„ ํŠธ๋ž˜ํ”ฝ์„ ์บก์ฒ˜ํ•˜๋Š” ๊ฒƒ์ด ์˜ˆ์ „๋ถ€ํ„ฐ ๊ต‰์žฅํ•œ ๊ณ ๋ฏผ์ด์˜€๋Š”๋ฐ ํ•œ์ธต ๋œ์–ด์ฃผ๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

 

๊ทธ๋Ÿฐ๋ฐ ์—ฌ์ „ํžˆ tcpdump ๊ฐ€ ์—†๋Š” ์ปจํ…Œ์ด๋„ˆ์—๋Š” ์„ค์น˜ํ•ด์ค˜์•ผ ํ•œ๋‹ค๋Š” ๊ฒƒ์ด ๋ถˆํŽธํ•˜๊ธด ํ•ฉ๋‹ˆ๋‹ค.

(Istio Proxy๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ tcpdump๊ฐ€ ์žˆ์œผ๋‹ˆ ์˜์™ธ๋กœ ๊ดœ์ฐฎ์„์ง€๋„?!)

 

๊ทธ๋Ÿผ ์˜ค๋Š˜์€ ์—ฌ๊ธฐ๊นŒ์ง€~

profile on loading

Loading...