🟢 오늘 공부할 내용
- Images
: ImagePullPolicy
: :latest tag- Private registries
: Amazon
: Microsoft
: IBM
🟢 Images
- 쿠버네티스는 도커이미지와 동일한 이미지를 사용함
- 이미지를 사용해서 쿠버네티스 pod 안에 있는 컨테이너를 실행하는데 활용하고 있음
- 쿠버네티스의 yaml 파일처럼 도커에서 이미지를 다루는 것과 문법이 차이가 없음
- 도커 run을 활용해서 이미지를 실행한 것처럼 쿠버네티스에서도 비슷한 형태로 이미지를 실행함
🟢 Updating Images
🦔 도커이미지와 쿠버네티스의 이미지의 차이는?
- 쿠버네티스가 도커보다
Policy
함
: 이미지를 가져올 때,Policy
에 대한 차이가 있음
ex. 쿠버네티스의 경우,IfNotPresent
라는Policy
가 있음
: 실행시킬 이미지가 자신에게 없다면, 가져오는 형태를 취함 (도커의 경우도 running을 했을 때, 이미지가 컴퓨터 안에 있으면 그것을 사용하여 실행하였고, 없는경우는 가져와서 사용하였음)
🟢 ImagePullPolicy
- 라벨이
IfNotPresent
면, 본인의 로컬에 없으면 외부로부터 가져오는 것을 의미Always
는 pod이 살아날때마다 이미지를 가져오게함 (본인의 로컬에 있든지, 없든지 상관없음)Never
는 pull 하지 말라는 의미 (로컬에 있는 이미지만 사용함, 만약에 로컬에 이미지가 없으면.. 실행하지 않겠다는 의미)
🟢 Why You Should Avoid : latest tag
- Immutable & mutable
: 자신이 운영하고자 하는 시스템에 SW 이미지가 있다면, 그 이미지는 모든버전이 고정된 버전으로 되어있는 것을 선호함. 그리고 그 버전이 유일하게 시스템에서 운영이 되었으며 좋겠다~라는 것을 의미latest
는 현재 동작하고 있는 버전1이 있는데, latest가 2인 경우, 1과 2가 혼용된다는 문제점이 발생할 수 있음- 최신이 가장 좋은 것이 아닌, 자신이 만든 SW의 버전이 가장 안정적인 것이 가자 합리적이라는 접근 방법임
- 🌝 따라서, latest를 했을 때, 버전 tracking의 문제가 있다는 것임
ex. 시스템이 버전 1로 실행될 것이라는 확신이 없기 때문에 문제가 발생했을 때, 버전제어로 복잡해질 수 있음- 🌝 따라서, Immutable 원칙을 따라 latest 보단, 1개의 버전이 동작하되 그 버전이 운영자에 의해 명시적으로 구체화 시킬 수 있도록 할 것
🟢 Amazon Elastic Container Registry(ECR)
- 쿠버네티스는 운영을 하는 SW임
- 쿠버네티스를 이용할 때 사용할 수 있는 Container Registry
(1) Amazon
: Elastic Container Registry(ECR)은 도커 컨테이너 이미지를 손쉽게 저장, 관리 및 배포할 수 있게 해주는 도커 컨테이너 레지스트리임
: Elastic Container Registry(ECR)은 Amazon Elastic Container Service(ECS)와 통합되므로 개발에서 프로덕션까지 워크플로를 간소화 할 수 있음
:ECR
의 장점은 (1)완전관리형 (2)뛰어난 가용성 (3)보안 (4)간소화된 워크플로
ex. 자신이 만든 yaml 파일을 Amazon의 ECR에 저장하고, Registry에서는 ECR로 만들어진 이미지에서 압축, 암호화, 접근제어로 보안을 제공하고, 버전 & Tag기능 제공을 함.ECS
,EKS
(관리형 쿠버네티스 서비스)를 실행할 수 있음- 🌝 따라서, (1)
ECR
을 통해서 Registry를 가져오기 (2) yaml파일을 만들어서 필요한 만큼의 CPU & 디스크를 정의 (3) 컨테이너를 직접 실행 (쿠버네티스 app을 통해서 관리를 하는 체제로 확장할 수 있음)
: 사이트 https://aws.amazon.com/ko/ecr/
: ECS를 12개월 간 무료로 사용할 수 있음
🟢 Micresoft Azure Container Registry
- 마이크로 소프트의
Container Registry
서비스가 제공됨- 도커 컨테이너와 containerable함
- 동작할 때, 마이크로소프트의
Container Registry
를 사용해서 Azure상으로 띄울 수 있음- 마이크로소프트에서 강조하는 장점은 (1) 전세계의 데이터센터를 많이 가지고 있음 (2) 신뢰성 & 보안 (3) 인증취득
- 12개월 무료체험 가능
: 사이트 https://azure.microsoft.com/ko-kr/services/container-registry/
🟢 IBM Cloud Container Registry
- 이미지를 컨테이너에 배치하기 전에 취약성 발견하고, 관리형 사설 레지스트치에 도커 이미지를 저장하고 배포함
: 사이트 https://www.ibm.com/cloud/free
🟢 Google Container Registry
- 구글클라우드의 장점은 (1) 안전한 비공개 도커 레지스트리로 높은 보안성 (2) CI/CD 파이프라인을 쉽게 설정하는 등 연결이 잘됨 (3) 심층적인 취약점 스캔 (4) 정책에 위배되는 이미지 차단 (5) 기본 도커 지원 (6) 빠르고 가용성 높은 엑세스
: 사이트 https://cloud.google.com/container-registry/
🐶 추가적으로, Googel Kubernetes Engine이 있으므로 자신이 만든 pod을 운영 및 실행이 가능함
: GKE 사이트 https://cloud.google.com/kubernetes-engine