1. Rancher
Rancher 는 Kubernetes 클러스터를 편리하게 관리하고 운영하기 위한 오픈소스로, 웹 UI 를 통해 Kubernetes 를 더 쉽게 구축하고 관리할 수 있도록 도와주는 도구이다. 따라서 Kubernetes 클러스터의 생성, 관리, 모니터링, 그리고 사용자 관리 기능 등을 제공하여 운영 및 관리의 편의성을 높여주는 관리 인터페이스 역할을 한다.
1.1 Rancher 의 주요 기능
Rancher 는 클러스터 관리, 사용자 및 접근제어, 애플리케이션 관리, 모니터링 및 로깅, 하이브리드 및 멀티 클라우드를 지원하는 역할을 한다. 주요 기능은 다음과 같다.
- 멀티 클러스터 관리 : 단일 대시보드에서 여러 Kubernetes 클러스터를 관리할 수 있다. 클러스터의 상태 확인, 워크로드 배포, 업데이트 및 확장 작업을 중앙화 한다.
- Kubernetes 설치 및 배포 : RKE2, RKE1 과 같은 Rancher 의 배포판을 손쉽게 설치하고 설정할 수 있다. 사용자가 직접 클러스터를 설치하지 않아도 Rancher UI를 통해 자동화된 배포가 가능하다.
- RBAC(Role-Bassed Access Control, 역할 기반 접근 제어) : 사용자 및 그룹에 대해 세분화된 접근 권한을 설정한다. 네임스페이스, 워크로드, 클러스터 수준에서 사용자의 역할을 정의할 수 있다.
- 애플리케이션 카탈로그 : Helm 차트를 통해 Kubernetes 클러스터에 애플리케이션을 손쉽게 배포할 수 있다. Rancher는 사용자 정의 애플리케이션 카탈로그를 관리할 수 있는 기능도 제공한다.
- DevOps 및 CI/CD : CI/CD 파이프라인을 Kubernetes 와 통합하여 애플리케이션 개발과 배포를 간소화 한다. GitIOps 방식으로 Kubernetes 리소스를 배포하고 관리한다.
- 네트워크 관리 : CNI(Container Network Interface)를 통해 클러스터 네트워크를 설정하고 관리한다. 클러스터 간 트래픽 제어와 네트워크 정책을 구성할 수 있다.
- 모니터링 및 알림 : Prometheus 및 Grafana 통합으로 클러스터 성능과 상태를 실시간으로 모니터링 한다. 이벤트 기반 알림 시스템을 통해 클러스터 문제를 빠르게 감지한다.
- 클러스터 업그레이트 및 백업 : 클러스터 업그레이드를 클릭 몇 번으로 수행할 수 있다. RKE2 등 Rancher 기반의 클러스터에서 백업 및 복구 작업을 지원한다.
- 하이브리드 및 엣지 클러스터 지원 : 엣지 컴퓨팅 환경에서 경량 Kubernetes 클러스터를 배포하고 관리할 수 있다. 하이브리드 클라우드 및 멀티 클라우드 환경에서 통합 관리 기능을 제공한다.
- 보안 및 검사 : CIS Kubernetes Benchmark 를 통한 보안 검사를 지원한다. 모든 사용자 활동과 클러스터 변경 사항을 감사 로그로 기록한다.
2. 설치
Rancher 설치는 해당 공식문서를 참고하여 설치하였다.
2.1 Helm 차트 리포지토리 추가
공식문서에서 제공하는 버전은 3가지 있는데 필자는 가장 최신 기능을 사용할 수 있는 latest 버전을 추가하였다.
$ helm repo add rancher-latest https://releases.rancher.com/server-charts/latest
2.2 Rancher의 네임스페이스 만들기
차트에서 만든 리소스를 설치해야 하는 Kunernetes 네임스페이스를 정의해야 한다.
$ kubectl create namespace cattle-system
2.3 SSL 구성 선택
공식 문서를 확인하면 "Rancher 관리 서버는 기본적으로 보안되도록 설계되었으며 SSL / LTS 구성이 필요하다." 라고 적혀있다. Rancher 서버에서 TLS 에 사용되는 인증서 소스에 권장되는 옵션은 세가지가 있다.
- Rancher-generated TLS certificate
- Let's Encrypt
- Bring your own certificate
해당 세가지 옵션 중에 필자는 Rancher-generated TLS certificate 방식을 채택하여 사용하였다. 공식문서에 의하면
클러스터에 cert-manager 를 설치하고, 랜처는 cert-manager 를 사용하여 인증서를 발급하고 유지 관리한다. 랜처는 자체적으로 CA 인증서를 생성하고, 그 CA를 사용하여 인증서에 서명한다.
2.4 cert-manager 설치
Rancher 공식 문서에 참조된 cert-manager 공식 문서로 이동하여 최신 버전을 확인하여 설치를 진행했다. (v1.16.0)
$ kubectl apply -f https://github.com/cert-manager/cert-manager/releases/download/v1.16.0/cert-manager.crds.yaml
Jetstack 을 Helm 레포지토리에 등록한 후에 Helm 차트 레포지토리 캐시를 재설정했다.
$ helm repo add jetstack https://charts.jetstack.io
$ helm repo update
Helm 차트에 cert-manager 를 설치한다.
$ root@masternode-virtual-machine:/home/masternode# helm install cert-manager jetstack/cert-manager \
--namespace cert-manager \
--create-namespace \
--version v1.16.0 \
--set installCRDs=true
만약 cert-manager 설치 과정에서 이미 "CustomResourceDefinition" 오류가 난다면 해당 CRD 를 삭제한 뒤 재설치하면 된다. 해당 오류는 Helm 차트에서 관리되지 않는 CRD 리소스가 존재하기 때문에 '관리할 수 없는 리소스' 라고 간주하여, 이에 대한 소유권이 설정되어 있지 않기 때문에 설치를 거부한다.
따라서 다음 명령어를 사용하여 기존 CRD 를 삭제한다.
$ kubectl delete crd certificaterequests.cert-manager.io \
certificates.cert-manager.io \
challenges.acme.cert-manager.io \
clusterissuers.cert-manager.io \
issuers.cert-manager.io \
orders.acme.cert-manager.io
cert-manager 가 설치가 되었는지 다음 명령어를 통해 확인한다.
$ kubectl get pods --namespace cert-manager
2.5 Rancher 설치
- hostname : 로드 밸런서에서 지정한 DNS 이름으로 설정한다. 필자는 따로 지정한 DNS 가 없기 때문에 공식문서에서 제공하는 기본 hostname 으로 설정하였다.
- bootstrapPassword : admin user 를 위한 비밀번호를 설정한다. 공식문서에서 제공하는 기본 비밀번호로 설정했다.
$ root@masternode-virtual-machine:/home/masternode# helm install rancher rancher-latest/rancher \
--namespace cattle-system \
--create-namespace \
--set hostname=rancher.my.org \
--set bootstrapPassword=admin
2.6 설치 확인
다음 명령어를 통해 설치가 완료되었는지 확인한다.
$ kubectl -n cattle-system get deploy rancher
3. 웹으로 접속하기
Rancher 에서 설정했던 hostname : rancher.my.org 로 접속하여 로그인 하면 다음과 같은 창이 출력된다. 실시간으로 모니터링 및 로깅이 되는것을 확인할 수 있다.
'개인공부' 카테고리의 다른 글
K8S의 마스터노드와 워커노드 용어 정리 (3) | 2024.12.11 |
---|---|
RKE2 Worker Node 설치(2) (0) | 2024.12.10 |
VMware Fusion, RKE2 Master Node 설치 (1) (3) | 2024.12.09 |
Socket.IO (0) | 2024.12.03 |
Chat Gpt 가 내준 컨테이너 관련 문제 10개 (2) | 2024.10.13 |