Document toolboxDocument toolbox

0. Rancher


1. Rancher 개요

 

 

Rancher는 프로덕션 환경에서 컨테이너를 배포하는 조직을 위해 구축된 컨테이너 관리 플랫폼으로 쿠버네티스를 실행하거나 생성된 기존 쿠버네티스 클러스터를 연동하여 관리합니다.

Rancher 특징

  • 클러스터 환경에 상관없는 동작

    • 쿠버네티스는 컨테이너 오케스트레이션 표준이 되었으며, 대부분의 클라우드 및 가상화 공급업체는 쿠버네티스를 표준 인프라로 제공합니다.

    • Rancher 사용자는 GKE, AKS 및 EKS와 같은 퍼블릭 클라우드 쿠버네티스 서비스로 클러스터를 생성 할 수 있으며, 프라이빗 환경에서 배포/설치된 쿠버네티스 클러스터를 가져오고 관리합니다.

  • 쿠버네티스 클러스터에 대한 중앙 집중식 인증, 액세스 제어 및 모니터링 지원

    • Active Directory 자격 증명을 사용하여 GKE와 같은 클라우드 공급업체에서 호스팅하는 쿠버네티스 클러스터에 접근합니다.

    • 모든 사용자, 그룹, 프로젝트, 클러스터 및 클라우드에서 엑세스 제어 및 보안 정책을 설정하고 적용합니다.

    • 단일 창에서 쿠버네티스 클러스터의 상태와 용량을 확인 할 수 있습니다.

  • DevOps 애플리케이션 워크로드 관리

    • Rancher 카탈로그에는 보안, 모니터링, 컨테이너 레지스트리, 스토리지 및 네트워크 드라이버를 포함 한 DevOps 도구 세트를 지원합니다.

    • 퍼블릭 클라우드, 프라이빗 클라우드에 애플리케이션을 배포 할 수 있으며, IT 관리자는 모든 사용자, 클러스터 및 클라우드에서 가시성을 확보하고 정책을 시행합니다.

  • Rancher API 서버

    • 권한 부여 및 정책 기반 접근제어(RBAC)

      • 사용자 권리 : Rancher API 서버는 로컬 사용자 외에 Active Directory 또는 GitHub와 같은 외부 인증 공급자에 해당하는 사용자 ID를 관리합니다.

      • 인증 : Rancher API 서버는 액세스 제어 및 보안 정책을 관리합니다.

    • 쿠버네티스 제어

      • Rancher API 서버는 기존 노드에서 쿠버네티스를 프로비저닝하거나 업그레이드를 수행할 수 있습니다.

      • 응용 프로그램을 반복적으로 배포하기 쉽게 해주는 Helm 차트 카탈로그를 사용할 수 있는 기능을 제공합니다.

      • Rancher의 개념으로 여러 네임스페이스를 그룹으로 관리하고 그 안에서 쿠버네티스 작업을 수행할 수 있습니다.

      • Rancher 내에서 [Fleet Continuous Delivery]를 활용하여 수동 작업 없이 Git 레포지토리에서 대상 다운스트림 쿠버네티스 클러스터로 애플리케이션 배포 작업을 수행할 수 있습니다.

  • 클러스터 상태확인

    • 쿠버네티스 클러스터 외부에 있는 로깅 서비스 및 도구와 통합할 수 있습니다.

    • 오픈소스 모니터링 솔루션인 프로메테우스와의 통합을 통해 클러스터 노드, 쿠버네티스 구성 요소 및 소프트웨어 배포의 상태와 프로세스를 모니터링 할 수 있습니다.

    • Alerting을 통해 클러스터와 프로젝트에서 계획된 이벤트, 계획되지 않은 이벤트에 대한 정보를 유지하여 클러스터를 정상 상태로 유지합니다.

DevOps 팀 별 담당 클러스터 관리

Rancher는 여러 클러스터를 등록하여 할 수 있으며, 정책 기반 접근제어(RBAC)을 이용해 사용자 및 그룹 별 관리 클러스터를 지정하여 관리할 수 있도록 인터페이스를 제공합니다.
위 그림은 DevOps 조직에서 Rancher를 수행하는 역할을 보여줍니다.
각 팀은 자신이 선택한 퍼블릭 클라우드 또는 프라이빗 클라우드에 애플리케이션을 배포합니다.
IT 관리자는 모든 사용자, 클러스터 및 클라우드를 지정/할당하고 정책을 시행합니다.

2. Rancher 사용

클러스터 등록

(1) Rancher GUI 페이지 접속 (ex. https://rancher.test.playce.cloud:8443)

  • KeyCloak 등 연동되어 있는 경우 OIDC PROVIDER를 통해 로그인 하며, LOCAL USER를 통해서 로그인 할 수 있습니다.

(2) Local admin 계정으로 로그인합니다.

(3) 메인 페이지 또는 [GLOBAL APPS] - [Cluster Management]에서 [Import Exsting] 버튼을 선택합니다.

(4) 프라이빗 환경의 클러스터를 추가하기 위해 [Generic]을 선택합니다.

(5) Rancher에서 보여질 클러스터 이름을 입력합니다.

  • Member Roles의 Add 버튼을 선택하여 cluster01-admin 계정을 추가합니다.

(6) 아래 명령어를 연동할 클러스터의 컨트롤 플레인(마스터 서버)에서 수행합니다.

  • 마지막 명령어는 클러스터 계정 이름을 입력합니다. (~/.kube/config 파일 참고)

(7) 위 명령어를 수행하면 agent가 설치되며, 5분 이내의 시간이 소요됩니다.

(8) agent가 기동되면 Rancher 메인 화면에서 추가된 클러스터를 확인 할 수 있습니다.

클러스터 리소스 확인 및 컨트롤

(1) [EXPLORE CLUSTER] 항목에서 추가 된 클러스터를 선택합니다.

(2) Cluster 페이지는 클러스터 전반적인 정보를 표시합니다.

  • 리소스, 노드, 디플로이먼트 및 용량에 대한 정보를 표시합니다.

  • 하위 페이지에서는 네임스페이스 및 프로젝트 별 정보 및 노드, 클러스터 멤버 정보를 확인합니다.

(3) Workloads 항목에서는 클러스터에 배포된 디플로이먼트, 파드 등 정보를 확인/생성 할 수 있습니다.

  • 각 워크로드 별로 자세한 정보를 확인 할 수 있으며, YAML 파일 형태로 확인 및 수 가능합니다.

(4) APPs 항목에서는 추가된 Repository 정보와 사용 할 수 있는 Helm Chart에 대한 정보를 표시합니다.

  • 기본적으로 playcekube 패키지를 확인 할 수 있으며 필요 시 Chart를 클릭하여 Install 버튼으로 설치 할 수 있습니다.

  • Installed Apps에서 현재 클러스터에 배포된 Chart 리스트를 확인합니다.

(5) [Service Discovery] 탭에서는 HPA, Ingress, Network Policy, Service를 확인/생성 할 수 있습니다.

  • 리소스를 클릭하면 자세한 정보를 확인 할 수 있으며, YAML 형태로도 확인 할 수 있습니다.

(6) [Storage] 탭에서는 데이터 저장에 대한 리소스와 Secret을 확인/생성 할 수 있습니다.

(7) [Monitoring] 탭에서는 알람 및 프로메테우스 룰을 확인/생성 할 수 있습니다.

(8) [More Resources] 탭에서 위 항목에 포함되지 않은 리소스를 확인 할 수 있습니다.

리소스 컨트롤

(1) 클러스터에 배포되어 있는 리소스 (ex. nginx-deployment)를 선택합니다.

(2) 해당 디플로이먼트의 replicas가 3으로 되어있기 때문에 3개의 파드를 확인 할 수 있습니다.

(3) YAML - Edit YAML으로 리소스 수정이 가능합니다. 예제에서는 replicas를 2로 수정합니다.

(4) deploymemt 리스트 차창에서 Ready 값이 2/2로 변경 된 것을 확인합니다.

3. Rancher 기술자료

https://ranchermanager.docs.rancher.com/

4. Rancher 릴리즈 노트

https://github.com/rancher/rancher/releases