Rancher 를 통한 Kubernetes 클러스터 Deployments 생성

leesj·2021년 9월 18일
0

kubernetes

목록 보기
3/8
post-custom-banner

쿠버네티스 클러스터로 어플리케이션을 배포하는 방법을 정리

Rancher 공식 Doc 에서는 Ingress 방식과 NodePort 방식 2가지 배포 방법을 지원한다.

  • NodePort:NodePort 서비스는 서비스에 외부 트래픽을 직접 보낼 수 있는 가장 원시적인(primitive) 방법이다. 이름에서 암시하듯이, NodePort는 모든 Node(VM)에 특정 포트를 열어 두고, 이 포트로 보내지는 모든 트래픽을 서비스로 포워딩한다.
  • Ingress: 위의 예와는 다르게, Ingress는 서비스의 한 종류가 아니다. 여러 서비스들 앞에서 “스마트 라우터(smart router)” 역할을 하거나 클러스터의 진입점(entrypoint) 역할을 한다.

여러 능력을 가진 Ingress 컨트롤러 타입이 있어서, Ingress 하나만으로 여러 가지 일을 할 수 있다.

Workload with Ingress Quick Start

  • 전제조건: 동작중인 클러스터와 최소 1개의 노드

step1) Deploy a Workload

워크로드란? 애플리케이션을 배포하는 데 필요한 다른 파일 및 정보와 함께 포드를 포함하는 개체
Rancher hello world 를 배포하는 워크로드를 수행

  • Cluster Management 메뉴 진입하여 배포 대상 cluster 의 explore click
  • Wordload 메뉴 > Deploymnets 메뉴 진입하여 Create click
  • Deploy 의 이름을 지정하고 Test image 를 지정(rancher/hello-world)
  • Create 누르면 아래와 같이 생성된 deployments 가 리스트에 노출됨
  • Workload 의 상세 페이지

step2) Expose The Application Via An NodePort

응용프로그램이 실행되고 다른 서비스가 연결 될 수 있도록 노출

  • Cluster Management 메뉴 진입하여 대상 cluster 의 explore 버튼 click

  • Cluster > Projects/Namespaces 메뉴로 진입하여 default project 선택

서비스

Deployments 생성 후 Deployments 내의 pod 를 온전한 서비스로 이용하기 위해서는 포드를 외부로 노출해서 사용자들이 접근하거나 다른 디플로이먼트의 포드들이 내부적으로 접근하게 해야 하는데 이것을 가능하게 하는 것이 서비스라고 불리우는 쿠버네티스의 오브젝트 이다.

서비스는 고유의 도메인 이름을 부여하고 여러개의 포드에 접근할 때 요청을 분산하는 Load Balancer 기능을 수행, 클라우드 플랫폼의 로드 밸런서, 클러스터 노드의 포트 등을 통해 포드를 외부로 노출.

kubernets 서비스
사용자가 생성하지 않아도 기본적으로 생성되는 서비스로 포드 내부에서 쿠버네티스의 API 접근하기 위한 서비스

서비스의 종류
ClusterIP 쿠버네티스 내부에서만 포드들에 접근할 때 사용. 외부로 포들르 노출하지 않기 때문에 쿠버네티스 클러스터 내부에서만 사용되는 포드에 적합
Nodeport 포드에 접근할 수 있는 포트를 클러스터의 모든 노드에 동일하게 개방. 외부에서 포드에 접근할 수 있는 서비스 타입. 접근 가능한 포트를 랜덤이지만 특정 포트로 접근 가능하도록 설정 가능
Load Balancing 클라우드 플랫폼에서 제공하는 로드 밸런서를 동적으로 프로비저닝해 포드에 연결. NodePort 타입과 마찬가지로 외부에서 포드에 접근할 수 있는 서비스 타입. 일반적으로 AWS, GCP 등과 같은 클라우드 플랫폼 환경에서만 사용 가능

Ingress Object

GitOps?

  • Kubernetes 클러스터를 관리하고 클러스터에 어플리케이션을 배포하는 방법론 중 하나
  • GitOps 의 핵심은 어플리케이션 소스 뿐만 아니라, 배포 설정까지 Git 저장소(config 저장소)를 통해 관리 한다는 것

Fleet?

  • 대규모 GitOps. 최대 백만 개의 클러스터를 관리하도록 설계되었으며 단일 클러스터에서도 잘 작동할 만큼 가벼운 방법
  • Fleet 은 Rancher 와 별개의 프로젝트이며 Helm 이 있는 모든 Kubernetes 클러스터에 설치 가능함.
  • Fleet 의 아키텍처
  • Rancher server v2.5 에서는 사전 설치된 상태로 제공되며 Rancher UI 의 탐색기에서 확인 가능함

참고자료

post-custom-banner

0개의 댓글