
🟢 오늘 공부할 내용
- 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