์ด ํ์ด์ง์์๋ ์ํธํ ๋ฐ ๋ ธ๋ ๊ตฌ์ฑ์ ํฌํจํ์ฌ AWS์ฉ GKE์ ๋ณด์ ์ํคํ ์ฒ์ ๊ดํด ์ค๋ช ํฉ๋๋ค.
GKE ํด๋ฌ์คํฐ๋ ์ปจํ ์ด๋ ์ด๋ฏธ์ง ์ฝํ ์ธ , ์ปจํ ์ด๋ ๋ฐํ์, ํด๋ฌ์คํฐ ๋คํธ์ํฌ, ํด๋ฌ์คํฐ API ์๋ฒ ์ก์ธ์ค๋ฅผ ํฌํจํ์ฌ ์ํฌ๋ก๋ ๋ณด์์ ์ง์ํ๋ ๊ธฐ๋ฅ์ ์ ๊ณตํฉ๋๋ค.
GKE ํด๋ฌ์คํฐ๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ ํด๋ฌ์คํฐ์ ๋ํ ํน์ ์ฑ ์์ ์ง ๊ฒ์ ๋์ํ๋ ๊ฒ์ผ๋ก ๊ฐ์ฃผ๋ฉ๋๋ค. ์์ธํ ๋ด์ฉ์ GKE ํด๋ฌ์คํฐ ๊ณต๋ ์ฑ ์์ ์ฐธ์กฐํ์ธ์.
AWS KMS ์ํธํ
AWS์ฉ GKE๋ ๊ณ ๊ฐ ๊ด๋ฆฌ AWS ํค ๊ด๋ฆฌ ์๋น์ค(KMS) ๋์นญ ํค๋ฅผ ์ฌ์ฉํ์ฌ ๋ค์์ ์ํธํํฉ๋๋ค.
- etcd์ Kubernetes ์ํ ๋ฐ์ดํฐ
- EC2 ์ธ์คํด์ค ์ฌ์ฉ์ ๋ฐ์ดํฐ
- ์ปจํธ๋กค ํ๋ ์ธ ๋ฐ ๋ ธ๋ ํ ๋ฐ์ดํฐ์ ์ ์ฅ ๋ฐ์ดํฐ๋ฅผ ์ํธํํ๋ ๋ฐ ์ฌ์ฉ๋๋ EBS ๋ณผ๋ฅจ
ํ๋ก๋์ ํ๊ฒฝ์ ๊ฒฝ์ฐ ๊ตฌ์ฑ ๋ฐ ๋ณผ๋ฅจ ์ํธํ์ ์๋ก ๋ค๋ฅธ ํค๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ์ข์ต๋๋ค. ๋ํ ํค๊ฐ ์์๋ ๊ฒฝ์ฐ ์ํ์ ์ต์ํํ๋ ค๋ฉด ๋ค์ ์ค ํ๋์ ๋ํด ๋ค๋ฅธ ํค๋ฅผ ๋ง๋ค ์ ์์ต๋๋ค.
- ํด๋ฌ์คํฐ ์ปจํธ๋กค ํ๋ ์ธ ๊ตฌ์ฑ
- ํด๋ฌ์คํฐ ์ปจํธ๋กค ํ๋ ์ธ ๋ฐ์ดํฐ๋ฒ ์ด์ค
- ํด๋ฌ์คํฐ ์ปจํธ๋กค ํ๋ ์ธ ๊ธฐ๋ณธ ๋ณผ๋ฅจ
- ํด๋ฌ์คํฐ ์ปจํธ๋กค ํ๋ ์ธ ๋ฃจํธ ๋ณผ๋ฅจ
- ๋ ธ๋ ํ ๊ตฌ์ฑ
- ๋ ธ๋ ํ ๋ฃจํธ ๋ณผ๋ฅจ
์ถ๊ฐ ๋ณด์์ ์ํด ํ์ํ ์ต์ ๊ถํ ์งํฉ๋ง ํ ๋นํ๋ AWS KMS ํค ์ ์ฑ ์ ๋ง๋ค ์ ์์ต๋๋ค. ์์ธํ ๋ด์ฉ์ ํน์ ๊ถํ์ผ๋ก KMS ํค ๋ง๋ค๊ธฐ๋ฅผ ์ฐธ์กฐํ์ธ์.
์ ์ฅ ๋ฐ์ดํฐ ์ํธํ
์ ์ฅ ๋ฐ์ดํฐ ์ํธํ๋ ์ ์ก ์ค ๋ฐ์ดํฐ์ ๊ตฌ๋ถ๋๋ ์ ์ฅ๋ ๋ฐ์ดํฐ์ ๋ํ ์ํธํ์ ๋๋ค. ๊ธฐ๋ณธ์ ์ผ๋ก AWS์ฉ GKE๋ AWS ํ๋ซํผ ๊ด๋ฆฌ ํค๋ฅผ ์ฌ์ฉํ์ฌ etcd ๋ฐ ์คํ ๋ฆฌ์ง ๋ณผ๋ฅจ์ ๋ฐ์ดํฐ๋ฅผ ์ํธํํฉ๋๋ค.
AWS์ฉ GKE๋ AWS Elastic Block Storage(EBS) ๋ณผ๋ฅจ์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํฉ๋๋ค. ์ด๋ฌํ EBS ๋ณผ๋ฅจ์ ํญ์ AWS Key Management System(AWS KMS) ํค๋ก ์ ์ฅ ์ํ์์ ์ํธํ๋ฉ๋๋ค. ํด๋ฌ์คํฐ ๋ฐ ๋ ธ๋ ํ์ ๋ง๋ค ๋ ๊ณ ๊ฐ ๊ด๋ฆฌ KMS ํค(CMK)๋ฅผ ์ ๊ณตํ์ฌ ๊ธฐ๋ณธ EBS ๋ณผ๋ฅจ์ ์ํธํํ ์ ์์ต๋๋ค. ํค๋ฅผ ์ง์ ํ์ง ์์ผ๋ฉด AWS๋ ํด๋ฌ์คํฐ๊ฐ ์คํ๋๋ AWS ๋ฆฌ์ ๋ด์์ ๊ธฐ๋ณธ AWS ๊ด๋ฆฌ ํค๋ฅผ ์ฌ์ฉํฉ๋๋ค.
๋ํ ๋ชจ๋ GKE ํด๋ฌ์คํฐ๋ etcd์ ์ ์ฅ๋๋ Kubernetes ๋ณด์ ๋น๋ฐ ๊ฐ์ฒด์ ๊ฐ์ ๋ฏผ๊ฐํ ์ ๋ณด์ ์ ํ๋ฆฌ์ผ์ด์ ๋ ์ด์ด ๋ณด์ ๋น๋ฐ ์ํธํ๋ฅผ ์ฌ์ฉ ์ค์ ํฉ๋๋ค. ๊ณต๊ฒฉ์๊ฐ etcd ๋ฐ์ดํฐ๊ฐ ์ ์ฅ๋ ๊ธฐ๋ณธ ๋ณผ๋ฅจ์ ๋ํด ์ก์ธ์ค ๊ถํ์ ์ป๋๋ผ๋ ์ด๋ฌํ ๋ฐ์ดํฐ๊ฐ ์ํธํ๋ฉ๋๋ค.
ํด๋ฌ์คํฐ๋ฅผ ๋ง๋ค ๋ AWS KMS ํค๋ฅผ --database-encryption-kms-key-arn
ํ๋์ ์ ๋ฌํด์ผ ํฉ๋๋ค. ์ด ํค๋ ์ ํ๋ฆฌ์ผ์ด์
๋ฐ์ดํฐ์ ๋ดํฌ ์ํธํ์ ์ฌ์ฉ๋ฉ๋๋ค. ์ด ๋ฆฌ์์ค ํ๋๋ ๋ณ๊ฒฝํ ์ ์์ผ๋ฉฐ ํด๋ฌ์คํฐ๊ฐ ์์ฑ๋ ํ์๋ ์์ ํ ์ ์์ผ๋ฏ๋ก KMS ํค ๋ณ์นญ์ ์ฌ์ฉํ๋ ๊ฒ์ด ์ข์ต๋๋ค.
ํค ๋ณ์นญ์ ์ฌ์ฉํ์ฌ ํด๋ฌ์คํฐ ์๋ช
์ฃผ๊ธฐ ๋์ ์ ์ฅ ๋ฐ์ดํฐ ์ํธํ์ ์ฌ์ฉ๋๋ ํค๋ฅผ ์ํํ ์ ์์ต๋๋ค.
์ ํ๋ฆฌ์ผ์ด์ ์์ค ์ํธํ ์๋ ๋ฐฉ๋ฒ
Kubernetes๋ ๋ดํฌ ์ํธํ๋ก ์๋ ค์ง ๊ธฐ์ ์ ์ง์ํ๋ ์ ํ๋ฆฌ์ผ์ด์ ์์ค ์ํธํ๋ฅผ ์ ๊ณตํฉ๋๋ค. ๋ณด์ ๋น๋ฐ์ ์ํธํํ๊ธฐ ์ํด์๋ ์ผ๋ฐ์ ์ผ๋ก ๋ฐ์ดํฐ ์ํธํ ํค(DEK)๋ผ๊ณ ๋ถ๋ฅด๋ ๋ก์ปฌ ํค๊ฐ ์ฌ์ฉ๋ฉ๋๋ค. ๊ทธ๋ฐ ๋ค์์๋ ํค ์ํธํ ํค(KEK)๋ผ๊ณ ๋ถ๋ฅด๋ ๋ณด์กฐ ํค๋ฅผ ์ฌ์ฉํด์ DEK ์์ฒด๋ฅผ ์ํธํํฉ๋๋ค. KEK๋ Kubernetes์ ์ ์ฅ๋์ง ์์ต๋๋ค. ์ Kubernetes ๋ณด์ ๋น๋ฐ์ ๋ง๋ค ๋ ํด๋ฌ์คํฐ๋ ๋ค์์ ์ํํฉ๋๋ค.
Kubernetes API ์๋ฒ๊ฐ ๋์ ์์ฑ๊ธฐ๋ฅผ ์ฌ์ฉํ์ฌ ๋ณด์ ๋น๋ฐ์ ๊ณ ์ ํ DEK๋ฅผ ์์ฑํฉ๋๋ค.
Kubernetes API ์๋ฒ๊ฐ DEK๋ฅผ ์ฌ์ฉํด์ ๋ณด์ ๋น๋ฐ์ ๋ก์ปฌ๋ก ์ํธํํฉ๋๋ค.
Kubernetes API ์๋ฒ๊ฐ ์ํธํ๋ฅผ ์ํด DEK๋ฅผ AWS KMS๋ก ์ ์กํฉ๋๋ค.
AWS KMS๋ ์ฌ์ ์์ฑ๋ KEK๋ฅผ ์ฌ์ฉํ์ฌ DEK๋ฅผ ์ํธํํ๊ณ ์ํธํ๋ DEK๋ฅผ Kubernetes API ์๋ฒ์ AWS KMS ํ๋ฌ๊ทธ์ธ์ ๋ฐํํฉ๋๋ค.
Kubernetes API ์๋ฒ๊ฐ ์ํธํ๋ ๋ณด์ ๋น๋ฐ๊ณผ ์ํธํ๋ DEK๋ฅผ etcd์ ์ ์ฅํฉ๋๋ค. ์ผ๋ฐ ํ ์คํธ๋ก ๋ DEK๋ ๋์คํฌ์ ์ ์ฅ๋์ง ์์ต๋๋ค.
Kubernetes API ์๋ฒ๊ฐ ์ํธํ๋ DEK๋ฅผ ์ผ๋ฐ ํ ์คํธ DEK์ ๋งคํํ๊ธฐ ์ํด ์ธ๋ฉ๋ชจ๋ฆฌ ์บ์ ํญ๋ชฉ์ ๋ง๋ญ๋๋ค. ๊ทธ๋ฌ๋ฉด API ์๋ฒ๊ฐ AWS KMS์ ์ฟผ๋ฆฌํ์ง ์์๋ ์ต๊ทผ์ ์ก์ธ์ค๋ ๋ณด์ ๋น๋ฐ์ ๋ณตํธํํ ์ ์์ต๋๋ค.
ํด๋ผ์ด์ธํธ๊ฐ Kubernetes API ์๋ฒ์์ ๋ณด์ ๋น๋ฐ์ ์์ฒญํ๋ฉด ๋ค์๊ณผ ๊ฐ์ด ๋ฉ๋๋ค.
Kubernetes API ์๋ฒ๊ฐ etcd์์ ์ํธํ๋ ๋ณด์ ๋น๋ฐ ๋ฐ ์ํธํ๋ DEK๋ฅผ ๊ฒ์ํฉ๋๋ค.
Kubernetes API ์๋ฒ๊ฐ ์บ์์์ ๊ธฐ์กด ๋งต ํญ๋ชฉ์ ํ์ธํ๊ณ ํญ๋ชฉ์ด ๋ฐ๊ฒฌ๋๋ฉด ๋ณด์ ๋น๋ฐ์ ๋ณตํธํํฉ๋๋ค.
์ผ์นํ๋ ์บ์ ํญ๋ชฉ์ด ์์ผ๋ฉด API ์๋ฒ๊ฐ KEK๋ฅผ ์ฌ์ฉํด์ ๋ณตํธํ๋ฅผ ์ํด DEK๋ฅผ AWS KMS๋ก ์ ์กํฉ๋๋ค. ๊ทธ๋ฌ๋ฉด ๋ณตํธํ๋ DEK๊ฐ ๋ณด์ ๋น๋ฐ์ ๋ณตํธํํ๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค.
๋ง์ง๋ง์ผ๋ก, Kubernetes API ์๋ฒ๊ฐ ๋ณตํธํ๋ ๋ณด์ ๋น๋ฐ์ ํด๋ผ์ด์ธํธ์ ๋ฐํํฉ๋๋ค.
ํค ์ํ
์ธ์ฆ์ ์ํ๊ณผ ๋ฐ๋๋ก ํค ์ํ์ ํค ์ํธํ ํค(KEK)์ ํฌํจ๋ ๊ธฐ๋ณธ ์ํธํ ์๋ฃ๋ฅผ ๋ณ๊ฒฝํ๋ ์์ ์ ๋๋ค. ์์ฝ๋ ์ํ์ ๋ฐ๋ผ ์๋์ผ๋ก ๋๋ ํค๊ฐ ์์๋์์ ์ ์๋ ๋ณด์ ์ฌ๊ณ ๊ฐ ๋ฐ์ํ ํ ์๋์ผ๋ก ํค ์ํ์ ํธ๋ฆฌ๊ฑฐํ ์ ์์ต๋๋ค. ํค ์ํ์ ์ํํ๋ฉด ํค์์ ์์ ์ํธํ/๋ณตํธํ ํค ๋ฐ์ดํฐ๊ฐ ํฌํจ๋ ๋จ์ผ ํ๋๋ง ๋ฐ๋๋๋ค.
KMS ํค ์ํ
AWS KMS๋ KMS ํค์ ์๋ ์ํ์ ์ง์ํฉ๋๋ค. ์ฌ์ฉ ์ค์ ํ๋ฉด AWS์์ ํค์ ๋ํ ์ ์ํธํ ํค ์๋ฃ๋ฅผ 1๋ ์ ํ ๋ฒ ์๋์ผ๋ก ์์ฑํฉ๋๋ค. ์ง์ ์กฐ์น๋ฅผ ์ทจํ ํ์๋ ์์ต๋๋ค.
์์ธํ ๋ด์ฉ์ ํค ์ํ์ ์ฐธ์กฐํ์ธ์.
ํด๋ฌ์คํฐ ์ ๋ขฐ
๋ชจ๋ ํด๋ฌ์คํฐ ํต์ ์ ์ ์ก ๊ณ์ธต ๋ณด์(TLS)์ ์ฌ์ฉํฉ๋๋ค. ๊ฐ ํด๋ฌ์คํฐ๋ ๋ค์๊ณผ ๊ฐ์ ๊ธฐ๋ณธ ์์ฒด ์๋ช ๋ ๋ฃจํธ ์ธ์ฆ ๊ธฐ๊ด(CA)์ผ๋ก ํ๋ก๋น์ ๋๋ฉ๋๋ค.
- ํด๋ฌ์คํฐ ๋ฃจํธ CA๋ API ์๋ฒ๋ก ์ ์ก๋๋ ์์ฒญ์ ๊ฒ์ฆํ๊ธฐ ์ํด ์ฌ์ฉ๋ฉ๋๋ค.
- etcd ๋ฃจํธ CA๋ etcd ๋ณต์ ๋ณธ์ผ๋ก ์ ์ก๋๋ ์์ฒญ์ ๊ฒ์ฆํ๊ธฐ ์ํด ์ฌ์ฉ๋ฉ๋๋ค.
๊ฐ ํด๋ฌ์คํฐ์๋ ๊ณ ์ ํ ๋ฃจํธ CA๊ฐ ์์ต๋๋ค. ํ ํด๋ฌ์คํฐ์ CA๊ฐ ์์๋๋๋ผ๋ ๋ค๋ฅธ ํด๋ฌ์คํฐ์ CA๋ ์ํฅ์ ๋ฐ์ง ์์ต๋๋ค. ๋ชจ๋ ๋ฃจํธ CA๋ ์ ํจ ๊ธฐ๊ฐ์ด 30๋ ์ ๋๋ค.
๋ ธ๋ ๋ณด์
AWS์ฉ GKE๋ AWS EC2 ์ธ์คํด์ค์ ๋ ธ๋ ํ์ ์ํฌ๋ก๋๋ฅผ ๋ฐฐํฌํฉ๋๋ค. ๋ค์ ์น์ ์์๋ ๋ ธ๋์ ๋ณด์ ๊ธฐ๋ฅ์ ๋ํด ์ค๋ช ํฉ๋๋ค.
Ubuntu
๋ ธ๋๊ฐ ์ต์ ํ๋ Ubuntu OS ๋ฒ์ ์ ์ฌ์ฉํ์ฌ Kubernetes ์ปจํธ๋กค ํ๋ ์ธ๊ณผ ๋ ธ๋๋ฅผ ์คํํฉ๋๋ค. ์์ธํ ๋ด์ฉ์ Ubuntu ๋ฌธ์์ ๋ณด์ ๊ธฐ๋ฅ์ ์ฐธ์กฐํ์ธ์.
GKE ํด๋ฌ์คํฐ๋ ๋ค์์ ํฌํจํ์ฌ ์ฌ๋ฌ ๋ณด์ ๊ธฐ๋ฅ์ ๊ตฌํํฉ๋๋ค.
์ต์ ํ๋ ํจํค์ง ์ธํธ
Google Cloud์ฉ Linux ์ปค๋
์ ํ๋ ์ฌ์ฉ์ ๊ณ์ ๋ฐ ๋ฃจํธ ๋ก๊ทธ์ธ ์ฌ์ฉ ์ค์ง
Ubuntu์๋ ๋ค์๊ณผ ๊ฐ์ ์ถ๊ฐ ๋ณด์ ๊ฐ์ด๋๊ฐ ์ ๊ณต๋ฉ๋๋ค.
์ํฌ๋ก๋ ๋ณดํธ
์ฌ์ฉ์๋ Kubernetes๋ฅผ ํตํด ์ปจํ ์ด๋ ๊ธฐ๋ฐ ์ํฌ๋ก๋๋ฅผ ์ ์ํ๊ฒ ํ๋ก๋น์ ๋, ํ์ฅ, ์ ๋ฐ์ดํธํ ์ ์์ต๋๋ค. ์ด ์น์ ์์๋ ํด๋ฌ์คํฐ ๋ฐ Google Cloud ์๋น์ค์์ ์ปจํ ์ด๋๋ฅผ ์คํํ ๋ ๋ฐ์ํ๋ ๋ถ์์ฉ์ ์ ํํ๊ธฐ ์ํด ์ฌ์ฉํ ์ ์๋ ๋ฐฉ๋ฒ์ ์ค๋ช ํฉ๋๋ค.
ํฌ๋ ์ปจํ ์ด๋ ํ๋ก์ธ์ค ๊ถํ ์ ํ
ํด๋ฌ์คํฐ ๋ณด์์ ์ํด์๋ ์ปจํ ์ด๋ํ๋ ํ๋ก์ธ์ค์ ๊ถํ์ ์ ํํ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค. ๋ณด์ ์ปจํ ์คํธ๋ฅผ ์ฌ์ฉํ์ฌ ๋ณด์ ๊ด๋ จ ์ต์ ์ ์ค์ ํ ์ ์์ต๋๋ค. ์ด ์ค์ ์ ์ฌ์ฉํ๋ฉด ๋ค์๊ณผ ๊ฐ์ ํ๋ก์ธ์ค์ ๋ณด์ ์ค์ ์ ๋ณ๊ฒฝํ ์ ์์ต๋๋ค.
- ํ๋ก์ธ์ค๋ฅผ ์คํํ๋ ์ฌ์ฉ์์ ๊ทธ๋ฃน
- ์ฌ์ฉํ ์ ์๋ Linux ๊ธฐ๋ฅ
- ๊ถํ ์์ค์ปฌ๋ ์ด์
AWS์ฉ GKE ๋ ธ๋ ๊ธฐ๋ณธ ์ด์์ฒด์ ์ธ Ubuntu๋ ๋ชจ๋ ์ปจํ ์ด๋์ ๊ธฐ๋ณธ Docker AppArmor ๋ณด์ ์ ์ฑ ์ ์ฌ์ฉํฉ๋๋ค. GitHub์์ ํ๋กํ ํ ํ๋ฆฟ์ ํ์ธํ ์ ์์ต๋๋ค. ๋ฌด์๋ณด๋ค ์ด ํ๋กํ์ ์ปจํ ์ด๋์ ๋ํด ๋ค์๊ณผ ๊ฐ์ ๊ธฐ๋ฅ์ ๊ฑฐ๋ถํฉ๋๋ค.
- ํ๋ก์ธ์ค ID ๋๋ ํฐ๋ฆฌ(
/proc/
)์์ ํ์ผ์ ์ง์ ์ฐ๊ธฐ /proc/
์ ์๋ ํ์ผ์ ์ฐ๊ธฐ/proc/sys
์์/proc/sys/kernel/shm*
์ด์ธ์ ํ์ผ์ ์ฐ๊ธฐ- ํ์ผ ์์คํ ๋ง์ดํธ
์ํฌ๋ก๋๊ฐ ์์ฒด ์์ ํ๋ ๊ธฐ๋ฅ์ ์ ํ
ํน์ Kubernetes ์ํฌ๋ก๋, ํนํ ์์คํ ์ํฌ๋ก๋์๋ ์์ฒด ์์ ๊ถํ์ด ์์ต๋๋ค. ์๋ฅผ ๋ค์ด ์ผ๋ถ ์ํฌ๋ก๋๋ ์์ง์ ์ผ๋ก ์๋ ํ์ฅ๋ฉ๋๋ค. ์ด๋ ๊ฒ ํ๋ฉด ๋ ธ๋๋ฅผ ์ด๋ฏธ ์์์ํจ ๊ณต๊ฒฉ์๊ฐ ํด๋ฌ์คํฐ์์ ์ถ๊ฐ๋ก ์์ค์ปฌ๋ ์ด์ ํ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด ๊ณต๊ฒฉ์๋ ๋ ธ๋์ ์๋ ์ํฌ๋ก๋๊ฐ ๋์ผ ๋ค์์คํ์ด์ค์ ์กด์ฌํ๋ ๊ถํ์ด ๋์ ์๋น์ค ๊ณ์ ์ผ๋ก ์คํ๋๋๋ก ๋ณ๊ฒฝํ ์ ์์ต๋๋ค.
์ํฌ๋ก๋์ ์์ฒด ์์ ๊ถํ์ด ์ ์ด์ ๋ถ์ฌ๋์ง ์๋ ๊ฒ์ด ์ข์ต๋๋ค. ์์ฒด ์์ ์ด ํ์ํ ๊ฒฝ์ฐ ํด๋ฌ์คํฐ์ ์ ์ฑ ์ปจํธ๋กค๋ฌ ๋๋ Gatekeeper๋ฅผ ์ค์นํ๊ณ , ๋ช ๊ฐ์ง ์ ์ฉํ ๋ณด์ ์ ์ฑ ์ ์ ๊ณตํ๋ ์คํ์์ค Gatekeeper ๋ผ์ด๋ธ๋ฌ๋ฆฌ์์ NoUpdateServiceAccount์ ๊ฐ์ ์ ์ฝ์กฐ๊ฑด์ ์ ์ฉํ์ฌ ๊ถํ์ ์ ํํ ์ ์์ต๋๋ค.
์ ์ฑ
์ ๋ฐฐํฌํ ๋๋ ์ผ๋ฐ์ ์ผ๋ก ํด๋ฌ์คํฐ ์๋ช
์ฃผ๊ธฐ๋ฅผ ๊ด๋ฆฌํ๋ ์ปจํธ๋กค๋ฌ๊ฐ ์ ์ฑ
์ ์ฐํํ ์ ์๋๋ก ํด์ผ ํฉ๋๋ค. ์ด๋ ์ปจํธ๋กค๋ฌ๊ฐ ํด๋ฌ์คํฐ ์
๊ทธ๋ ์ด๋ ์ ์ฉ๊ณผ ๊ฐ์ด ํด๋ฌ์คํฐ๋ฅผ ๋ณ๊ฒฝํ ์ ์๋๋ก ํ๊ธฐ ์ํด ํ์ํฉ๋๋ค. ์๋ฅผ ๋ค์ด AWS์ฉ GKE์ NoUpdateServiceAccount
์ ์ฑ
์ ๋ฐฐํฌํ๋ ๊ฒฝ์ฐ Constraint
์ ๋ค์ ๋งค๊ฐ๋ณ์๋ฅผ ์ค์ ํด์ผ ํฉ๋๋ค.
parameters:
allowedGroups: []
allowedUsers:
- service-PROJECT_NUMBER@gcp-sa-gkemulticloud.iam.gserviceaccount.com
PROJECT_NUMBER
๋ฅผ ํด๋ฌ์คํฐ๋ฅผ ํธ์คํ
ํ๋ ํ๋ก์ ํธ์ ๋ฒํธ(ID ์๋)๋ก ๋ฐ๊ฟ๋๋ค.
Binary Authorization ์ฌ์ฉ
์ํฌ๋ก๋๋ฅผ ๋ณดํธํ๋ ๋ ๋ค๋ฅธ ๋ฐฉ๋ฒ์ Binary Authorization์ ์ฌ์ฉ ์ค์ ํ๋ ๊ฒ์ ๋๋ค. Binary Authorization์ ์ ๋ขฐํ ์ ์๋ ์ปจํ ์ด๋ ์ด๋ฏธ์ง๋ง GKE ํด๋ฌ์คํฐ์ ๋ฐฐํฌ๋๋๋ก ํ๋ ๋ณด์ ๊ธฐ๋ฅ์ ๋๋ค.
์ ์ฐจ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
๊ด๋ฆฌ์๋ ์ด๋ฏธ์ง ๋ฐฐํฌ ์๊ตฌ์ฌํญ์ ์ ์ํ๋ ์ ์ฑ ์ ๋ง๋ญ๋๋ค. ์ฌ๊ธฐ์๋ ์ด๋ฏธ์ง์ ์๋ช ํ ์ ์๋ ์ ๋ขฐํ ์ ์๊ณ ์น์ธ๋ ํญ๋ชฉ(์ฆ๋ช ์) ์ง์ ์ด ํฌํจ๋๋ฉฐ ๋ฐฐํฌ์ ์์ ํ๋ค๊ณ ๊ฐ์ฃผ๋๋ ค๋ฉด ์ด๋ฏธ์ง์์ ์ถฉ์กฑํด์ผ ํ๋ ๋ค๋ฅธ ๊ธฐ์ค์ด ํฌํจ๋ ์ ์์ต๋๋ค.
์ฆ๋ช ์(์: ๊ฐ๋ฐ์ ๋๋ ์๋ํ ์์คํ )๋ ์ํธํ ์๊ณ ๋ฆฌ์ฆ์ ์ฌ์ฉํ์ฌ ํค ์(๋น๊ณต๊ฐ ๋ฐ ๊ณต๊ฐ ํค)์ ์์ฑํฉ๋๋ค.
๋ณด์ ๋น๋ฐ๋ก ์ ์ง๋๋ ๋น๊ณต๊ฐ ํค๋ ์ด๋ฏธ์ง์ ๋์งํธ ์๋ช (์ฆ, ๊ณ ์ ํ ๋ฌธ์ ์งํฉ)์ ์์ฑํ๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค. ์ด ์๋ช ์ ์น์ธ ์ญํ ์ ํฉ๋๋ค. ์ฆ, ์ด๋ฏธ์ง๊ฐ ํ์ํ ๋ชจ๋ ๊ฒ์ฌ์ ์ ํจ์ฑ ๊ฒ์ฌ๋ฅผ ํต๊ณผํ๋ค๋ ์ ํธ์ ๋๋ค.
๊ทธ๋ฐ ๋ค์ ๋์งํธ ์๋ช ์ด ์ด๋ฏธ์ง์ '์ฐ๊ฒฐ'๋ฉ๋๋ค. ์ฆ, ์๋ช ์ ์ผ๋ฐ์ ์ผ๋ก ์ด๋ฏธ์ง ๋ ์ง์คํธ๋ฆฌ์ ์ด๋ฏธ์ง ๋ฉํ๋ฐ์ดํฐ์ ์ ์ฅ๋ฉ๋๋ค.
๊ทธ๋ฐ ๋ค์ ์์คํ ์์ ์๋ช ํ์ธ์ ๊ณต๊ฐ ํค๋ฅผ ์ฌ์ฉํ ์ ์๋๋ก ๊ณต๊ฐ ํค๊ฐ Binary Authorization ์์คํ ์ ๋ฑ๋ก๋ฉ๋๋ค.
์ปจํ ์ด๋ ๋ฐฐํฌ๋ฅผ ์์ฒญํ๋ฉด Binary Authorization ์์คํ ์์ ๋ ์ง์คํธ๋ฆฌ์ ์ด๋ฏธ์ง์ ์ฐ๊ฒฐ๋ ๋์งํธ ์๋ช ์ ๊ฒ์ํฉ๋๋ค.
Binary Authorization ์์คํ ์ ๋ฑ๋ก๋ ๊ณต๊ฐ ํค๋ฅผ ์ฌ์ฉํ์ฌ ์ด๋ฏธ์ง์ ์ฐ๊ฒฐ๋ ๋์งํธ ์๋ช ์ ํ์ธํฉ๋๋ค. ๋ํ ์ด๋ฏธ์ง๊ฐ ์ ์ฑ ์ ์ ์๋ ๋ค๋ฅธ ๋ชจ๋ ๊ธฐ์ค์ ์ถฉ์กฑํ๋์ง ํ์ธํฉ๋๋ค. ๊ณต๊ฐ ํค์ ์ด๋ฏธ์ง ๋ฐ์ดํฐ๋ฅผ ์ฌ์ฉํ์ฌ ๋์งํธ ์๋ช ์ ์ฑ๊ณต์ ์ผ๋ก ํ์ธํ ์ ์๊ณ ์ด๋ฏธ์ง๊ฐ ์ ์ฑ ์ ์ ์๋ ๋ค๋ฅธ ๋ชจ๋ ๊ธฐ์ค์ ์ถฉ์กฑํ๋ฉด Binary Authorization ์์คํ ์์ ์ปจํ ์ด๋ ๋ฐฐํฌ๋ฅผ ํ์ฉํฉ๋๋ค. ๊ณต๊ฐ ํค์ ์ด๋ฏธ์ง ๋ฐ์ดํฐ๋ฅผ ์ฌ์ฉํ์ฌ ๋์งํธ ์๋ช ์ ์ฑ๊ณต์ ์ผ๋ก ํ์ธํ ์ ์๊ฑฐ๋ ์ด๋ฏธ์ง๊ฐ ์ ์ฑ ์ ์ ์๋ ๋ค๋ฅธ ๊ธฐ์ค์ ์ถฉ์กฑํ์ง ์์ผ๋ฉด Binary Authorization ์์คํ ์์ ์ปจํ ์ด๋ ๋ฐฐํฌ๋ฅผ ๊ฑฐ๋ถํฉ๋๋ค.
Binary Authorization ์๋ ๋ฐฉ์์ ๋ํ ์์ธํ ๋ด์ฉ์ Binary Authorization ๊ฐ์๋ฅผ ์ฐธ์กฐํ์ธ์.
๊ธฐ์กด ํด๋ฌ์คํฐ์์ Binary Authorization์ ์ฌ์ฉ ์ค์ ํ๊ฑฐ๋ ํด๋ฌ์คํฐ๋ฅผ ๋ง๋ค ๋ Binary Authorization์ ์ฌ์ฉ ์ค์ ํ๋ ๋ฐฉ๋ฒ์ ์ฐธ์กฐํ์ธ์.
์ ์ฉ ๋ ธ๋ ํ์์ ์ํฌ๋ก๋ ๊ฒฉ๋ฆฌ
Kubernetes taint ๋ฐ ํจ๋ฌ๋ ์ด์ (toleration)์ ์ฌ์ฉํ์ฌ ํน์ ์ ํ์ ์ํฌ๋ก๋๋ฅผ ์คํํ๋๋ก ํน์ ๋ ธ๋ ํ์ ์ง์ ํ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด ๋๋ถ๋ถ์ ์์คํ ๊ด๋ฆฌ ์ํฌ๋ก๋์์ ์ฌ์ฉ์ ์ํฌ๋ก๋๋ฅผ ์์ฝํ๊ฑฐ๋ ์๋ก ๋ค๋ฅธ ๋ ธ๋ ํ์ ์ ๋ขฐ ์์ค์ด ๋ค๋ฅธ ์ํฌ๋ก๋๋ฅผ ๋ฐฐ์นํ๋๋ก AWS์ฉ GKE์ ์ง์ํ ์ ์์ต๋๋ค.
taint ๋ฐ ํจ๋ฌ๋ ์ด์ (toleration)์ ์ฌ์ฉํ ์ํฌ๋ก๋ ๊ฒฉ๋ฆฌ๋ ๋ณด์ฅ๋ ๋ณด์ ์กฐ์น๊ฐ ์๋๋๋ค. ์ด๋ฅผ AWS์ฉ GKE์์ ์ ๊ณตํ๋ ๋ค๋ฅธ ๊ฐํ ๋ฐฉ๋ฒ๊ณผ ํจ๊ป ์ฌ์ฉํ์ธ์.
์์ธํ ๋ด์ฉ์ ์ ์ฉ ๋ ธ๋ ํ์์ ์ํฌ๋ก๋ ๊ฒฉ๋ฆฌ๋ฅผ ์ฐธ์กฐํ์ธ์.
๋ค์ ๋จ๊ณ
- ํค ์ํ์ ๋ํด ์์๋ณด๊ธฐ