์ฟ ๋ฒ๋คํฐ์ค๋ ๋ก๋๋ฐธ๋ฐ์ฑ๊ณผ ํฌ์ค์ฒดํฌ๋ฅผ ํตํด ์์คํ ์ ์์ ์ฑ์ ์ ์งํ๊ณ ํธ๋ํฝ์ ๋ถ๋ฐฐ์ ํ๋์ ์ํ๋ฅผ ํจ๊ณผ์ ์ผ๋ก ๊ด๋ฆฌํ๋ค.
์ด์ ๋ํด์ ์์๋ณด์
์ฟ ๋ฒ๋คํฐ์ค ๋ก๋๋ฐธ๋ฐ์ฑ
์ฟ ๋ฒ๋คํฐ์ค์์ ๋ก๋๋ฐธ๋ฐ์ฑ์ ์ฃผ๋ก ์๋น์ค๋ฅผ ํตํด ์ด๋ฃจ์ด์ง๋ค.
์ฟ ๋ฒ๋คํฐ์ค
https://koreatstm.tistory.com/188 ์ฟ ๋ฒ๋คํฐ์ค์ฟ ๋ฒ๋คํฐ์ค๋ฅผ ์์๋ณด๊ธฐ ์์, ์ค์ผ์คํธ๋ ์ด์ ๊ณผ ๊ทธ์ ๊ด๋ จํ ๊ฐ๋ ๋ค์ ์์๋ณด์!! ๊ธฐ๋ณธ๊ฐ๋ ๋ก๋๋ฐธ๋ฐ์ฑ๊ฐ๋ : ์ฌ๋ฌ ์ปจํ ์ด๋์ ์์ฒญ์ ๋ถ์ฐ์์ผ ๋ถํ๋ฅผ
koreatstm.tistory.com
๋ก๋๋ฐธ๋ฐ์ฑ ๊ณผ์
- ์๋น์ค ์์ฑ ์ ์๋ํฌ์ธํธ: ์๋น์ค๋ฅผ ์์ฑํ๋ฉด, ํด๋น ์๋น์ค๋ ๋ด๋ถ ๊ฐ์ IP๋ฅผ ๊ฐ๊ฒ ๋๋ค. ์ด IP๋ก ์ธ๋ถ ํด๋ผ์ด์ธํธ๊ฐ ์๋น์ค์ ์ ๊ทผ
- ํ๋๋ก ํจํท ์ ์ก: ์๋น์ค์ ๋๋ฌํ ํจํท์ ์๋น์ค ๋ค์ ์๋ ํ๋๋ก ์ ๋ฌ๋๊ณ ์๋น์ค๋ ํด๋น ํ๋๋ค ์ค ํ๋๋ก ํจํท์ ์ ์กํ๋๋ฐ, ์ด ๊ณผ์ ์์ ๋ก๋๋ฐธ๋ฐ์ฑ์ด ์ด๋ฃจ์ด์ง๋ค.
- ๋ผ์ด๋ ๋ก๋น ๋ฐฉ์: ์๋น์ค ๋ค์ ์ฌ๋ฌ ๊ฐ์ ํ๋๊ฐ ์์ ๋, ์๋น์ค๋ ๊ธฐ๋ณธ์ ์ผ๋ก ๋ผ์ด๋ ๋ก๋น ๋ฐฉ์์ผ๋ก ํธ๋ํฝ์ ๋ถ๋ฐฐ
- ํจํท ์ ๋ฌ ๋ฐฉ๋ฒ
- iptables ๋๋ IPVS๋ฅผ ์ฌ์ฉํ์ฌ ์๋น์ค์ ํ๋ ๊ฐ ํจํท ์ ๋ฌ ๊ท์น์ ์ค์
- kube-proxy: ๊ฐ ๋
ธ๋์ ์๋ kube-proxy๋ ํจํท์ ํด๋น ํ๋๋ก ์ฌ๋ฐ๋ฅด๊ฒ ์ ๋ฌํ ์ ์๋๋ก ํจํท ์ ๋ฌ ๋ฐฉ๋ฒ์ ๋ณ๊ฒฝ
- kube-proxy์ ์ญํ
- kube-proxy๋ ๋ง์คํฐ ๋ ธ๋์ kube-api-server์ ํต์ ํ์ฌ ์๋น์ค์ ํ๋์ ๋ํ ์ ๋ณด๋ฅผ ๋ฐ์์จ๋ค.
- ์ด๋ฅผ ๊ธฐ๋ฐ์ผ๋ก iptables ๋๋ IPVS๋ฅผ ์ค์ ํ์ฌ ํจํท์ ํ๋๋ก ์ ๋ฌ
- ์ธ๋ถ ํด๋ผ์ด์ธํธ๊ฐ ๋ณด๋ด๋ ์์ฒญ์ iptables๋ก ์ฒ๋ฆฌ๋๋ฉฐ, kube-proxy๋ ์ด๋ฅผ ์์ ํ์ฌ ํ๋๋ก ์ ๋ฌ
- kube-proxy์ ์ญํ
ํ์ค ์ ๋ฆฌ
- ์ฟ ๋ฒ๋คํฐ์ค ๋ก๋๋ฐธ๋ฐ์ฑ์ ์๋น์ค ๊ฐ์ฒด(ClusterIP, NodePort, LoadBalancer)๋ฅผ ํตํด ์ด๋ฃจ์ด์ง๋ค.
- ๋ค๋ฅธ ์๋น์ค ๊ฐ์ฒด์ธ externalName์ ์๋น์ค ๋์ค์ปค๋ฒ๋ฆฌ์ ๊ฐ๊น์
- Load balancing: ์ฌ๋ฌ ํ๋๊ฐ ์์ ๋, ๋ก๋๋ฐธ๋ฐ์ฑ์ ๋ค์ด์ค๋ ์์ฒญ์ ์ฌ๋ฌ ํ๋์ ๊ท ๋ฑํ๊ฒ ๋ถ๋ฐฐ
- Service Discovery: ํด๋ฌ์คํฐ ๋ด์ ์๋น์ค๊ฐ ๋์ ์ผ๋ก ๋ณํ ์ ์๊ธฐ ๋๋ฌธ์, ๋ค๋ฅธ ์๋น์ค๋ ์ ํ๋ฆฌ์ผ์ด์ ์ด ์ด ์๋น์ค๋ฅผ ์๋์ผ๋ก ์ฐพ์ ์ ์๋๋ก ํ๋ค.
- ๋ค๋ฅธ ์๋น์ค ๊ฐ์ฒด์ธ externalName์ ์๋น์ค ๋์ค์ปค๋ฒ๋ฆฌ์ ๊ฐ๊น์
- ์๋น์ค๋ ํ๋๋ค์ ๋์์ผ๋ก ๋ก๋๋ฐธ๋ฐ์ฑ์ ์ํํ๋ฉฐ ๋ผ์ด๋ ๋ก๋น ๋ฐฉ์์ผ๋ก ํธ๋ํฝ์ ๋ถ๋ฐฐ
- kube-proxy๋ ํจํท์ ํ๋๋ก ์ ๋ฌํ๋ ๊ท์น์ ๊ด๋ฆฌํ๋ฉฐ, iptables ๋๋ IPVS๋ฅผ ์ฌ์ฉํ์ฌ ํธ๋ํฝ์ ๋ผ์ฐํ ํ๋ค.
์ฟ ๋ฒ๋คํฐ์ค ํฌ์ค์ฒดํฌ
ํฌ์ค์ฒดํฌ๋ฅผ ํตํด ํ๋์ ์ปจํ ์ด๋์ ์ํ๋ฅผ ๋ชจ๋ํฐ๋งํ๊ณ , ๋ฌธ์ ๊ฐ ๋ฐ์ํ ํ๋๋ฅผ ์๋์ผ๋ก ์ฌ์์ํ๊ฑฐ๋ ๋์ฒดํ๋ค.
ํฌ์ค์ฒดํฌ ๊ตฌ์ฑ
- kubelet: ๊ฐ ๋ ธ๋์ ์ค์น๋ kubelet์ด ํ๋์ ํต์ ํ๋ฉฐ ํด๋น ํ๋์ ํฌ์ค์ฒดํฌ๋ฅผ ๋ด๋น
- kubelet์ ํ๋์์ ์ค์ ๋ liveness probe์ readiness probe๋ฅผ ํตํด ํ๋์ ์ํ๋ฅผ ์ฃผ๊ธฐ์ ์ผ๋ก ํ์ธ
ํฌ์ค์ฒดํฌ์ ์ข ๋ฅ
- Liveness Probe
- ํ๋๊ฐ ์ ์์ ์ผ๋ก ๋์ํ๋์ง ํ์ธ
- ์ค์ ๋ ์๊ฐ ๋์ ์๋ต์ด ์๊ฑฐ๋ ์ํ๊ฐ ๋น์ ์์ผ ๊ฒฝ์ฐ, kubelet์ ํด๋น ํ๋๋ฅผ ์ฌ์์ํ์ฌ ์ ์ ์ํ๋ก ๋ณต๊ตฌ
- Readiness Probe:
- ํ๋๊ฐ ์๋น์ค๋ฅผ ๋ฐ์ ์ค๋น๊ฐ ๋์๋์ง ํ์ธ
- ์ค๋น๋์ง ์์๋ค๋ฉด ํธ๋ํฝ์ด ํด๋น ํ๋๋ก ์ ๋ฌ๋์ง ์๋๋ก ๋ฐฉ์ง
ํฌ์ค์ฒดํฌ์ ์ค์
- HTTP GET ์์ฒญ: ํน์ URL์ ๋ํด HTTP GET ์์ฒญ์ ๋ณด๋ด์ ์๋ต ์ํ๋ฅผ ํ์ธ
- TCP Socket: ํน์ ํฌํธ๋ก TCP ์ฐ๊ฒฐ์ ์๋ํ์ฌ ์๋ต์ ํ์ธ
- Exec: ์ปจํ ์ด๋ ๋ด์์ ๋ช ๋ น์ด๋ฅผ ์คํํ์ฌ ๊ฒฐ๊ณผ๋ฅผ ํ์ธ
Self Healing
- Kubernetes๊ฐ ์๋์ผ๋ก ์ฅ์ ๋ฅผ ๊ฐ์งํ๊ณ ๋ฌธ์ ๊ฐ ๋ฐ์ํ ํ๋๋ ๋ ธ๋๋ฅผ ์๋์ผ๋ก ๋ณต๊ตฌํ๋ ๊ธฐ๋ฅ
- ์๋ฅผ ๋ค์ด, ํ๋๊ฐ ์ข ๋ฃ๋๊ฑฐ๋ ์คํจํ๋ฉด Kubernetes๊ฐ ์๋์ผ๋ก ์๋ก์ด ํ๋๋ฅผ ์์ฑํ์ฌ ์๋น์ค๋ฅผ ๋ณต๊ตฌ
- ๋กค๋ฐฑ์ด ์คํจํ ์ํ๋ฅผ ๋ณต๊ตฌํ๋ ํ ๋ฐฉ๋ฒ์ผ๋ก ์๋ํ ์ ์์ต๋๋ค.
# docker kill [์ปจํ
์ด๋ ID]
$ dokcer kill 1c29fgk3mo92
์ปจํ ์ด๋๋ฅผ ์ข ๋ฃ์ํค๊ณ ์กฐํ๋ฅผ ํด๋ด๋ ์ฌ์ ํ ์ ํด์ง ์์ ํ๋๊ฐ ์๋ํ๊ณ ์๋ ๊ฑธ ์ ์ ์๋ค. RESTARTS์ 1์ด๋ผ๊ณ ๊ธฐ๋ก๋์ด ์๋ค.
์ฆ, ํ๋ ๋ด์ ์ปจํ ์ด๋๊ฐ ์๋ํ์ง ์์์ ์ธ์ํ๊ณ ์ปจํ ์ด๋๋ฅผ ์๋ก ๋ง๋ค์ด ์๋ฒ๋ฅผ ์ฌ์์ ์ํจ ๊ฒ์ด๋ค.
'๐ณ ์ธํ๋ผ > Kubernetes' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
์ฟ ๋ฒ๋คํฐ์ค ์ค์ ํ์ผ (0) | 2025.04.01 |
---|---|
์ฟ ๋ฒ๋คํฐ์ค ๋ก์ปฌ ์ค์ต (0) | 2025.03.31 |
์ฟ ๋ฒ๋คํฐ์ค ์๋น์ค์ ํ๋ผ๋ฌ (0) | 2025.03.19 |
์ฟ ๋ฒ๋คํฐ์ค (1) | 2024.09.11 |
์ฟ ๋ฒ๋คํฐ์ค๋ ๋ก๋๋ฐธ๋ฐ์ฑ๊ณผ ํฌ์ค์ฒดํฌ๋ฅผ ํตํด ์์คํ ์ ์์ ์ฑ์ ์ ์งํ๊ณ ํธ๋ํฝ์ ๋ถ๋ฐฐ์ ํ๋์ ์ํ๋ฅผ ํจ๊ณผ์ ์ผ๋ก ๊ด๋ฆฌํ๋ค.
์ด์ ๋ํด์ ์์๋ณด์
์ฟ ๋ฒ๋คํฐ์ค ๋ก๋๋ฐธ๋ฐ์ฑ
์ฟ ๋ฒ๋คํฐ์ค์์ ๋ก๋๋ฐธ๋ฐ์ฑ์ ์ฃผ๋ก ์๋น์ค๋ฅผ ํตํด ์ด๋ฃจ์ด์ง๋ค.
์ฟ ๋ฒ๋คํฐ์ค
https://koreatstm.tistory.com/188 ์ฟ ๋ฒ๋คํฐ์ค์ฟ ๋ฒ๋คํฐ์ค๋ฅผ ์์๋ณด๊ธฐ ์์, ์ค์ผ์คํธ๋ ์ด์ ๊ณผ ๊ทธ์ ๊ด๋ จํ ๊ฐ๋ ๋ค์ ์์๋ณด์!! ๊ธฐ๋ณธ๊ฐ๋ ๋ก๋๋ฐธ๋ฐ์ฑ๊ฐ๋ : ์ฌ๋ฌ ์ปจํ ์ด๋์ ์์ฒญ์ ๋ถ์ฐ์์ผ ๋ถํ๋ฅผ
koreatstm.tistory.com
๋ก๋๋ฐธ๋ฐ์ฑ ๊ณผ์
- ์๋น์ค ์์ฑ ์ ์๋ํฌ์ธํธ: ์๋น์ค๋ฅผ ์์ฑํ๋ฉด, ํด๋น ์๋น์ค๋ ๋ด๋ถ ๊ฐ์ IP๋ฅผ ๊ฐ๊ฒ ๋๋ค. ์ด IP๋ก ์ธ๋ถ ํด๋ผ์ด์ธํธ๊ฐ ์๋น์ค์ ์ ๊ทผ
- ํ๋๋ก ํจํท ์ ์ก: ์๋น์ค์ ๋๋ฌํ ํจํท์ ์๋น์ค ๋ค์ ์๋ ํ๋๋ก ์ ๋ฌ๋๊ณ ์๋น์ค๋ ํด๋น ํ๋๋ค ์ค ํ๋๋ก ํจํท์ ์ ์กํ๋๋ฐ, ์ด ๊ณผ์ ์์ ๋ก๋๋ฐธ๋ฐ์ฑ์ด ์ด๋ฃจ์ด์ง๋ค.
- ๋ผ์ด๋ ๋ก๋น ๋ฐฉ์: ์๋น์ค ๋ค์ ์ฌ๋ฌ ๊ฐ์ ํ๋๊ฐ ์์ ๋, ์๋น์ค๋ ๊ธฐ๋ณธ์ ์ผ๋ก ๋ผ์ด๋ ๋ก๋น ๋ฐฉ์์ผ๋ก ํธ๋ํฝ์ ๋ถ๋ฐฐ
- ํจํท ์ ๋ฌ ๋ฐฉ๋ฒ
- iptables ๋๋ IPVS๋ฅผ ์ฌ์ฉํ์ฌ ์๋น์ค์ ํ๋ ๊ฐ ํจํท ์ ๋ฌ ๊ท์น์ ์ค์
- kube-proxy: ๊ฐ ๋
ธ๋์ ์๋ kube-proxy๋ ํจํท์ ํด๋น ํ๋๋ก ์ฌ๋ฐ๋ฅด๊ฒ ์ ๋ฌํ ์ ์๋๋ก ํจํท ์ ๋ฌ ๋ฐฉ๋ฒ์ ๋ณ๊ฒฝ
- kube-proxy์ ์ญํ
- kube-proxy๋ ๋ง์คํฐ ๋ ธ๋์ kube-api-server์ ํต์ ํ์ฌ ์๋น์ค์ ํ๋์ ๋ํ ์ ๋ณด๋ฅผ ๋ฐ์์จ๋ค.
- ์ด๋ฅผ ๊ธฐ๋ฐ์ผ๋ก iptables ๋๋ IPVS๋ฅผ ์ค์ ํ์ฌ ํจํท์ ํ๋๋ก ์ ๋ฌ
- ์ธ๋ถ ํด๋ผ์ด์ธํธ๊ฐ ๋ณด๋ด๋ ์์ฒญ์ iptables๋ก ์ฒ๋ฆฌ๋๋ฉฐ, kube-proxy๋ ์ด๋ฅผ ์์ ํ์ฌ ํ๋๋ก ์ ๋ฌ
- kube-proxy์ ์ญํ
ํ์ค ์ ๋ฆฌ
- ์ฟ ๋ฒ๋คํฐ์ค ๋ก๋๋ฐธ๋ฐ์ฑ์ ์๋น์ค ๊ฐ์ฒด(ClusterIP, NodePort, LoadBalancer)๋ฅผ ํตํด ์ด๋ฃจ์ด์ง๋ค.
- ๋ค๋ฅธ ์๋น์ค ๊ฐ์ฒด์ธ externalName์ ์๋น์ค ๋์ค์ปค๋ฒ๋ฆฌ์ ๊ฐ๊น์
- Load balancing: ์ฌ๋ฌ ํ๋๊ฐ ์์ ๋, ๋ก๋๋ฐธ๋ฐ์ฑ์ ๋ค์ด์ค๋ ์์ฒญ์ ์ฌ๋ฌ ํ๋์ ๊ท ๋ฑํ๊ฒ ๋ถ๋ฐฐ
- Service Discovery: ํด๋ฌ์คํฐ ๋ด์ ์๋น์ค๊ฐ ๋์ ์ผ๋ก ๋ณํ ์ ์๊ธฐ ๋๋ฌธ์, ๋ค๋ฅธ ์๋น์ค๋ ์ ํ๋ฆฌ์ผ์ด์ ์ด ์ด ์๋น์ค๋ฅผ ์๋์ผ๋ก ์ฐพ์ ์ ์๋๋ก ํ๋ค.
- ๋ค๋ฅธ ์๋น์ค ๊ฐ์ฒด์ธ externalName์ ์๋น์ค ๋์ค์ปค๋ฒ๋ฆฌ์ ๊ฐ๊น์
- ์๋น์ค๋ ํ๋๋ค์ ๋์์ผ๋ก ๋ก๋๋ฐธ๋ฐ์ฑ์ ์ํํ๋ฉฐ ๋ผ์ด๋ ๋ก๋น ๋ฐฉ์์ผ๋ก ํธ๋ํฝ์ ๋ถ๋ฐฐ
- kube-proxy๋ ํจํท์ ํ๋๋ก ์ ๋ฌํ๋ ๊ท์น์ ๊ด๋ฆฌํ๋ฉฐ, iptables ๋๋ IPVS๋ฅผ ์ฌ์ฉํ์ฌ ํธ๋ํฝ์ ๋ผ์ฐํ ํ๋ค.
์ฟ ๋ฒ๋คํฐ์ค ํฌ์ค์ฒดํฌ
ํฌ์ค์ฒดํฌ๋ฅผ ํตํด ํ๋์ ์ปจํ ์ด๋์ ์ํ๋ฅผ ๋ชจ๋ํฐ๋งํ๊ณ , ๋ฌธ์ ๊ฐ ๋ฐ์ํ ํ๋๋ฅผ ์๋์ผ๋ก ์ฌ์์ํ๊ฑฐ๋ ๋์ฒดํ๋ค.
ํฌ์ค์ฒดํฌ ๊ตฌ์ฑ
- kubelet: ๊ฐ ๋ ธ๋์ ์ค์น๋ kubelet์ด ํ๋์ ํต์ ํ๋ฉฐ ํด๋น ํ๋์ ํฌ์ค์ฒดํฌ๋ฅผ ๋ด๋น
- kubelet์ ํ๋์์ ์ค์ ๋ liveness probe์ readiness probe๋ฅผ ํตํด ํ๋์ ์ํ๋ฅผ ์ฃผ๊ธฐ์ ์ผ๋ก ํ์ธ
ํฌ์ค์ฒดํฌ์ ์ข ๋ฅ
- Liveness Probe
- ํ๋๊ฐ ์ ์์ ์ผ๋ก ๋์ํ๋์ง ํ์ธ
- ์ค์ ๋ ์๊ฐ ๋์ ์๋ต์ด ์๊ฑฐ๋ ์ํ๊ฐ ๋น์ ์์ผ ๊ฒฝ์ฐ, kubelet์ ํด๋น ํ๋๋ฅผ ์ฌ์์ํ์ฌ ์ ์ ์ํ๋ก ๋ณต๊ตฌ
- Readiness Probe:
- ํ๋๊ฐ ์๋น์ค๋ฅผ ๋ฐ์ ์ค๋น๊ฐ ๋์๋์ง ํ์ธ
- ์ค๋น๋์ง ์์๋ค๋ฉด ํธ๋ํฝ์ด ํด๋น ํ๋๋ก ์ ๋ฌ๋์ง ์๋๋ก ๋ฐฉ์ง
ํฌ์ค์ฒดํฌ์ ์ค์
- HTTP GET ์์ฒญ: ํน์ URL์ ๋ํด HTTP GET ์์ฒญ์ ๋ณด๋ด์ ์๋ต ์ํ๋ฅผ ํ์ธ
- TCP Socket: ํน์ ํฌํธ๋ก TCP ์ฐ๊ฒฐ์ ์๋ํ์ฌ ์๋ต์ ํ์ธ
- Exec: ์ปจํ ์ด๋ ๋ด์์ ๋ช ๋ น์ด๋ฅผ ์คํํ์ฌ ๊ฒฐ๊ณผ๋ฅผ ํ์ธ
Self Healing
- Kubernetes๊ฐ ์๋์ผ๋ก ์ฅ์ ๋ฅผ ๊ฐ์งํ๊ณ ๋ฌธ์ ๊ฐ ๋ฐ์ํ ํ๋๋ ๋ ธ๋๋ฅผ ์๋์ผ๋ก ๋ณต๊ตฌํ๋ ๊ธฐ๋ฅ
- ์๋ฅผ ๋ค์ด, ํ๋๊ฐ ์ข ๋ฃ๋๊ฑฐ๋ ์คํจํ๋ฉด Kubernetes๊ฐ ์๋์ผ๋ก ์๋ก์ด ํ๋๋ฅผ ์์ฑํ์ฌ ์๋น์ค๋ฅผ ๋ณต๊ตฌ
- ๋กค๋ฐฑ์ด ์คํจํ ์ํ๋ฅผ ๋ณต๊ตฌํ๋ ํ ๋ฐฉ๋ฒ์ผ๋ก ์๋ํ ์ ์์ต๋๋ค.
# docker kill [์ปจํ
์ด๋ ID]
$ dokcer kill 1c29fgk3mo92
์ปจํ ์ด๋๋ฅผ ์ข ๋ฃ์ํค๊ณ ์กฐํ๋ฅผ ํด๋ด๋ ์ฌ์ ํ ์ ํด์ง ์์ ํ๋๊ฐ ์๋ํ๊ณ ์๋ ๊ฑธ ์ ์ ์๋ค. RESTARTS์ 1์ด๋ผ๊ณ ๊ธฐ๋ก๋์ด ์๋ค.
์ฆ, ํ๋ ๋ด์ ์ปจํ ์ด๋๊ฐ ์๋ํ์ง ์์์ ์ธ์ํ๊ณ ์ปจํ ์ด๋๋ฅผ ์๋ก ๋ง๋ค์ด ์๋ฒ๋ฅผ ์ฌ์์ ์ํจ ๊ฒ์ด๋ค.
'๐ณ ์ธํ๋ผ > Kubernetes' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
์ฟ ๋ฒ๋คํฐ์ค ์ค์ ํ์ผ (0) | 2025.04.01 |
---|---|
์ฟ ๋ฒ๋คํฐ์ค ๋ก์ปฌ ์ค์ต (0) | 2025.03.31 |
์ฟ ๋ฒ๋คํฐ์ค ์๋น์ค์ ํ๋ผ๋ฌ (0) | 2025.03.19 |
์ฟ ๋ฒ๋คํฐ์ค (1) | 2024.09.11 |