Ingress
Last updated
Was this helpful?
Last updated
Was this helpful?
Was this helpful?
Ingress๋ ํด๋ฌ์คํฐ ์ธ๋ถ์ HTTP ๋ฐ HTTPS ๊ฒฝ๋ก๋ฅผ services์ ๋ ธ์ถ ํฉ๋๋ค. ํธ๋ํฝ ๋ผ์ฐํ ์ Ingress ๋ฆฌ์์ค์ ์ ์ ๋ ๊ท์น์ ์ํด ์ ์ด ๋ฉ๋๋ค.
๋ค์์ Ingress๊ฐ ๋ชจ๋ ํธ๋ํฝ์ ํ๋์ ์๋น์ค๋ก ๋ณด๋ด๋ ๊ฐ๋จํ ์ ์ ๋๋ค.
Ingress๋ ์๋น์ค์ ์ธ๋ถ์์ ์ฐ๊ฒฐํ ์์๋ URL์ ์ ๊ณตํ๊ณ , ํธ๋ํฝ ๋ถํ๋ฅผ ๋ถ์ฐํ๊ณ , SSL/TLS๋ฅผ ํฐ๋ฏธ๋ค์ด์ ํ๊ณ , ์ด๋ฆ ๊ธฐ๋ฐ์ ๊ฐ์ ํธ์คํ ์ ์ ๊ณต ํ๋๋ก ๊ตฌ์ฑ ํ ์ ์์ต๋๋ค. Ingress controller๋ ์ผ๋ฐ์ ์ผ๋ก ๋ก๋ ๋ฐธ๋ฐ์๋ฅผ ์ฌ์ฉํ์ฌ Ingress๋ฅผ ์ํํ๋ ์ญํ ์ ํ์ง๋ง, ํธ๋ํฝ์ ์ฒ๋ฆฌํ๋ ๋ฐ ๋์์ด ๋๋๋ก ์ฃ์ง ๋ผ์ฐํฐ ๋๋ ์ถ๊ฐ ํ๋ฐํธ ์๋๋ฅผ ๊ตฌ์ฑ ํ ์ ๋ ์์ต๋๋ค.
Ingress๋ ์์์ ํฌํธ ๋๋ ํ๋กํ ์ฝ์ ๋ ธ์ถํ์ง ์์ต๋๋ค. HTTP ๋ฐ HTTPS ์ด์ธ์ ์๋น์ค๋ฅผ ์ธํฐ๋ท์ ๋ ธ์ถํ๋ ๊ฒฝ์ฐ ์ผ๋ฐ์ ์ผ๋ก Service.Type = NodePort ๋๋ Service.Type=LoadBalancer๋ฅผ ์ฌ์ฉํฉ๋๋ค.
Ingress๋ ์ธ๋ถ ์์ฒญ ์ฒ๋ฆฌ์ ๋ํ ๊ท์น๋ค์ ์ค์ ํด๋์ ๊ฒ์ ์๋ฏธํ๋ฉฐ, ์ด๋ฐ ์ค์ ์ด ๋์ํ๊ธฐ ์ํด์ ํ์ํ ๊ฒ์ด Ingress controller์ ๋๋ค.
AWS Load Balancer Controller์ ๊ฐ์ Ingress controller๋ฅผ ๋ฐฐํฌํด์ผ ํ๋ฉฐ, ์ฌ๋ฌ Ingress ์ปจํธ๋กค๋ฌ ์ค์์ ์ ํํ ์ ์์ผ๋ฉฐ ๋ค์ํ Ingress controller ๋ง๋ค ์ฝ๊ฐ ๋ค๋ฅด๊ฒ ์๋ํฉ๋๋ค.
ingress-nginx๋ฅผ ์ํ ์ต์ Ingress ๋ฆฌ์์ค ์ ์ ๋๋ค.
๋ค๋ฅธ ๋ชจ๋ ์ฟ ๋ฒ๋คํฐ์ค ๋ฆฌ์์ค์ ๋ง์ฐฌ๊ฐ์ง๋ก Ingress์๋ apiVersion
,kind
,metadata
ํ๋๊ฐ ํ์ํฉ๋๋ค. Ingress ๊ฐ์ฒด์ ์ด๋ฆ์ ์ ํจํ DNS subdomain name ์ด์ด์ผ ํฉ๋๋ค. ์ค์ ํ์ผ ์์
์ ๋ํ ์ผ๋ฐ ์ ๋ณด๋ deploying applications, configuring containers, managing resources๋ฅผ ์ฐธ์กฐ ํ์ญ์์ค. Ingress๋ annotation์ ์ฌ์ฉํ์ฌ Ingress ์ปจํธ๋กค๋ฌ์ ์ผ๋ถ ์ต์
์ ๋น๋ฒํ๊ฒ ๊ตฌ์ฑ ํฉ๋๋ค. ์๋ก rewrite-target annotation๊ฐ ์์ต๋๋ค. ๋ค๋ฅธ Ingress controller๋ ๋ค๋ฅธ annotation์ ์ง์ํฉ๋๋ค. ์ด๋ค annotation์ด ์ง์ ๋๋์ง ์์ ๋ณด๋ ค๋ฉด ์ ํํ Ingress ์ปจํธ๋กค๋ฌ์ ๋ํ ๋ฌธ์๋ฅผ ๊ฒํ ํ์ญ์์ค.
Ingress spec์๋ ๋ก๋ ๋ฐธ๋ฐ์ ๋๋ ํ๋ก์ ์๋ฒ๋ฅผ ๊ตฌ์ฑํ๋ ๋ฐ ํ์ํ ๋ชจ๋ ์ ๋ณด๊ฐ ํฌํจ๋ฉ๋๋ค. ๊ฐ์ฅ ์ค์ํ ๊ฒ์ ๋ชจ๋ ์์ ์์ฒญ๊ณผ ์ผ์นํ๋ ๊ท์น ๋ชฉ๋ก์ด ํฌํจ๋์ด ์๋ค๋ ๊ฒ ์ ๋๋ค. Ingress ๋ฆฌ์์ค๋ HTTP ํธ๋ํฝ์ ์ ๋ฌํ๊ธฐ ์ํ ๊ท์น๋ง ์ง์ ํฉ๋๋ค.
๊ฐ http ๊ท์น์๋ ๋ค์ ์ ๋ณด๊ฐ ํฌํจ๋ฉ๋๋ค.
์ ํ์ ํธ์คํธ. ์ด ์์์๋ ํธ์คํธ๊ฐ ์ง์ ๋์ง ์์์ผ๋ฏ๋ก ์ง์ ๋ IP ์ฃผ์๋ฅผ ํตํด ๋ชจ๋ ์ธ๋ฐ์ด๋ HTTP ํธ๋ํฝ์ ๊ท์น์ด ์ ์ฉ ๋ฉ๋๋ค. ํธ์คํธ๊ฐ ์ ๊ณต๋๋ฉด (์:foo.bar.com) ๊ท์น์ด ํด๋น ํธ์คํธ์ ์ ์ฉ ๋ฉ๋๋ค.
๊ฐ๊ฐ serviceName ๋ฐ servicePort๋ก ์ ์๋ ์ฐ๊ด๋ ๋ฐฑ์๋๊ฐ ์๋ ๊ฒฝ๋ก ๋ชฉ๋ก (์:/testpath). ๋ก๋ ๋ฐธ๋ฐ์๊ฐ ํธ๋ํฝ์ ์ฐธ์กฐ ๋ ์๋น์ค๋ก ๋ณด๋ด๊ธฐ ์ ์ ํธ์คํธ์ ๊ฒฝ๋ก๊ฐ ์์ ์์ฒญ์ ์ฝํ ์ธ ์ ์ผ์นํด์ผ ํฉ๋๋ค.
๋ฐฑ์๋๋ Services doc์ ์ค๋ช ๋ ๋๋ก ์๋น์ค ๋ฐ ํฌํธ ์ด๋ฆ์ ์กฐํฉ ์ ๋๋ค. ๊ท์น์ ํธ์คํธ ๋ฐ ๊ฒฝ๋ก์ ์ผ์นํ๋ Ingress์ ๋ํ HTTP (๋ฐ HTTPS) ์์ฒญ์ด ๋์ด๋ ๋ฐฑ์๋๋ก ์ ์ก ๋ฉ๋๋ค.
๊ธฐ๋ณธ ๋ฐฑ์๋๋ ์ข ์ข ์ฌ์์ ๊ฒฝ๋ก์ ์ผ์นํ์ง ์๋ ๋ชจ๋ ์์ฒญ์ ์ฒ๋ฆฌํ๋ Ingress ์ปจํธ๋กค๋ฌ์์ ๊ตฌ์ฑ ๋ฉ๋๋ค.
๊ท์น์ด ์๋ Ingress๋ ๋ชจ๋ ํธ๋ํฝ์ ๋จ์ผ ๊ธฐ๋ณธ ๋ฐฑ์๋๋ก ๋ณด๋ ๋๋ค. ๊ธฐ๋ณธ ๋ฐฑ์๋๋ ์ผ๋ฐ์ ์ผ๋ก Ingress controller์ ๊ตฌ์ฑ ์ต์ ์ด๋ฉฐ Ingress ๋ฆฌ์์ค์ ์ง์ ๋์ง ์์ต๋๋ค.
Ingress ๊ฐ์ฒด์ HTTP ์์ฒญ๊ณผ ์ผ์นํ๋ ํธ์คํธ ๋๋ ๊ฒฝ๋ก๊ฐ ์์ผ๋ฉด ํธ๋ํฝ์ด ๊ธฐ๋ณธ ๋ฐฑ์๋๋ก ๋ผ์ฐํ ๋ฉ๋๋ค.