컨테이너 오케스트레이션 (1)

 

[C181] 디플로이먼트가 지원하는 배포 전략에서 블루/그린이나 카나리는 찾아볼 수 없습니다. 어떻게 블루/그린이나 카나리 배포를 할 수 있을까요? *

블루/그린은 기존에 띄워져 있는 포드 개수와 동일한 개수 만큼의 신규포드를 모두 띄운 다음에 신규 포드가 이상없이 정상적으로 떴는지 확인한 다음에 들어오는 트래픽을 한번에 신규포드쪽으로 옮기는 방법. 이것역시 디플로이먼트를 이용하면 가능합니다.

카나리 배포는 신규 버전을 배포할 때 한꺼번에 앱의 전체를 교체하는게 아니라 기존 버전을 유지한 채로 일부 버전만 신규 버전으로 올려서 신규 버전에 버그나 이상은 없는지를 사용자 반응은 어떤지 확인하는데 유용하게 사용하는 방법이다.

 쿠버네티스의 기본 디플로이먼트로는 디플로이먼트에 속한 포드들을 하나씩이던 한꺼번에든 모두 교체하는 방식이기 때문에 이런 카나리 배포를 하기에는 어려움이 있습니다.

하지만 라벨을 이용하면 쿠버네티스에서도 카나리 배포를 할 수 있게됩니다.

카나리 배포 시나리오

1. name=mainui version=stable 버전의 pod를 생성

2. name=mainui를 selector하는 service 생성

3. name=mainui version=canary 버전의 pod를 생성

4. stable, canary 버전이 공존해 있으면서 배포된 것을 확인

5. canary 버전의 pod 개수 조절하여 확인

6. canary 버전 제거하고 stable 버전만 유지


출처: https://arisu1000.tistory.com/27842 [아리수]

https://yscho03.tistory.com/72

 
 

 

[C182] 서비스의 타입은 ClusterIP, NodePort, LoadBalancer, ExternalName 네 가지가 있습니다. 이들은 어떻게 다른가요? *

 

ClusterIP> 디폴트 설정으로, 서비스에 클러스터 IP (내부 IP)를 할당한다(클러스터 내부에서만 접근할 수 있는 IP). 쿠버네티스 클러스터 내에서는 이 서비스에 접근이 가능하지만, 클러스터 외부에서는 외부 IP 를 할당 받지 못했기 때문에, 접근이 불가능하다.

<NodePort> 보통 클라우드 벤더에서 제공하는 설정 방식으로, 외부 IP 를 가지고 있는 로드밸런서를 할당한다. 외부 IP를 가지고 있기 때문에, 클러스터 외부에서 접근이 가능하다.(노드의 특정 포트를 사용하여 접근하는 방식, 포트당 하나의 서비스만 사용 가능)

<LoadBalancer> 클러스터 IP로만 접근이 가능한것이 아니라, 모든 노드의 IP와 포트를 통해서도 접근이 가능하게 된다.(노드포트 앞단에 특정 LoadBalancer를 사용하여 접근하는 방식) 예를 들어 아래와 같이 hello-node-svc 라는 서비스를 NodePort 타입으로 선언을 하고, nodePort를 30036으로 설정하면, 아래 설정에 따라 클러스터 IP의 80포트로도 접근이 가능하지만, 모든 노드의 30036 포트로도 서비스를 접근할 수 있다.

<ExternalName > ExternalName은 외부 서비스를 쿠버네티스 내부에서 호출하고자할때 사용할 수 있다. 쿠버네티스 클러스터내의 Pod들은 클러스터 IP를 가지고 있기 때문에 클러스터 IP 대역 밖의 서비스를 호출하고자 하면, NAT 설정등 복잡한 설정이 필요하다. 특히 AWS 나 GCP와 같은 클라우드 환경을 사용할 경우 데이타 베이스나, 또는 클라우드에서 제공되는 매지니드 서비스 (RDS, CloudSQL)등을 사용하고자할 경우에는 쿠버네티스 클러스터 밖이기 때문에, 호출이 어려운 경우가 있는데, 이를 쉽게 해결할 수 있는 방법이 ExternalName 타입이다. 아래와 같이 서비스를 ExternalName 타입으로 설정하고, 주소를 DNS로 my.database.example.com으로 설정해주면 이 my-service는 들어오는 모든 요청을 my.database.example.com 으로 포워딩 해준다. (일종의 프록시와 같은 역할)

https://bcho.tistory.com/1262

 

쿠버네티스 #7 - 서비스 (Service)

쿠버네티스 #7 서비스 (service) 조대협 (http://bcho.tistory.com) Service 쿠버네티스 서비스에 대해서 자세하게 살펴보도록 한다. Pod의 경우에 지정되는 Ip가 랜덤하게 지정이 되고 리스타트 때마다 변하

bcho.tistory.com

https://kim-dragon.tistory.com/52

 

[kubernetes]서비스 타입 비교(ClusterIP/NodePort/LoadBalancer)

Intro 오늘은 쿠버네티스의 Pod로 접근하기위해 네트워크에 노출시키는 Service에 대해 설명하고자 합니다. 서비스를 네트워크에 어떤 방식으로 노출 시킬 것인가에 따라서 타입이 달라집니다. Servi

kim-dragon.tistory.com

 

JUNE .

20'S LIFE IN SYDNEY and BUSAN

    이미지 맵

    DevOps Bootcamp/Assignments 다른 글

    이전 글

    다음 글