본문 바로가기

DevOps/쿠버네티스(Kubernetes)

[쿠버네티스] Rancher를 사용한 K8S 클러스터 구축하기

728x90

안녕하세요 오랜만입니다.

 

블로그를 처음 개설했을 때 쓴 글이 쿠버네티스 설치였는데, 최근에 Rancher라는 좋은게 나와서 쿠버네티스 클러스터 구성 및 관리 등 여러가지를 제공해준다고 하더군요. 그래서 오늘은 Rancher를 이용한 K8S 클러스터를 구축해 보겠습니다.

 

rancher.com/

 

Innovate Everywhere

Rancher, the open-source multi-cluster orchestration platform, lets operations teams deploy, manage and secure enterprise Kubernetes. Request a demo!

rancher.com

rancher.com/docs/

 

Documentation | Rancher Labs

Rancher is open source software that combines everything an organization needs to adopt and run containers in production. Built on Kubernetes, Rancher makes it easy for DevOps teams to test, deploy and manage their applications. Operations teams use Ranche

rancher.com

 

랜처 공식 홈페이지 및 공식 Docs

 

 

우선 Rancher는 Kubernetes 관리를 위한 플랫폼입니다.

여러 클라우드에서 제공되는 k8s를 쉽게 연동하여 관리, 운영 및 보안 문제를 해결할 수 있게 한다고합니다.

 

랜처에 여러가지 솔루션이 있지만 오늘은 랜처 버전 2.5 에 대해 실험해보도록합니다.

 

설치방법에는 1. 기존 쿠버네티스에 랜처를 설치하는방법, 2. 리눅스 OS에 설치하는방법 3. 헬름CLI로 설치하는방법, 4. Docker를 사용하여 단일 노드에 랜처를 설치하는 방법 등등 여러가지가 있지만 

 

오늘은 테스트 목적이므로 4번 Docker를 사용하여 단일 노드에 랜처를 설치해보도록 하겠습니다.

 

docker run -d --restart=unless-stopped \
  -p 80:80 -p 443:443 \
  -v /host/certs:/container/certs \
  -e SSL_CERT_DIR="/container/certs" \
  --privileged \
  --name rancher_test \
  rancher/rancher:latest

포트 포워딩 된 부분, 바인드 마운트 부분 다 중요하지만 가장 중요한 부분은 --privileged  << 요겁니다. 

 

요건 무슨 옵션이냐 시스템의 주요자원에 접근할 수 있게 하는 옵션입니다.

 

도커 컨테이너는 기본 모드가 unprivileged이기 때문에 만약 저 옵션없이 실행할 경우 logs 에서 privileged 모드가 필요하다고 뜨는걸 확인할 수 있습니다.

 

그러면 이제 접속을 해봐야하는데 443포트로 접근해야합니다. https 로 말이죠 저같은 경우에는 공유기를 통해 외부주소와 내부 주소가 나뉘어져서 포트포워딩을 알맞게 해둔상태입니다. 여러분들도 잘 설정하시길 빕니다. 

 

인터넷에 주소로 접근해보면 인증서를 따로 지정하지 않았기때문에 주의요함이 뜨긴하지만 접속이 되면서 최초 로그인이 뜹니다. 로그인을 해주시면 다음처럼 화면을 보실 수 있습니다. (물론 저는 클러스터를 추가해둔 상황입니다. 처음엔 local밖에 없습니다.)

 

 

가장 중요한 부분 처음 접속 시 접근할 수 있는 URL 을 정해달라고 합니다. 

이 때 floating된 IP가 아닌 내부 IP를 입력해 주세요 (제 추측상 내부 노드들로 클러스터를 구축할 예정이기 때문에 그렇습니다. floating된 IP면 외부 접속도 가능하다는 얘기기 때문에 퍼블릭 클라우드들과 연동할 땐 필요할 수 도 있을 거같습니다... 요건 아직 안해봐서 모르기 때문에 추후 알게 되면 내용을 추가해보겠습니다.)

 

 

 

Add Cluster를 누르시면 여러가지 옵션들이 보입니다. AWS부터 시작해서 GCP, Azure 등등 퍼블릭 클라우드에서 제공하는 K8s 엔진부터 온프레미스 환경에서 구축된 노드도 추가할 수 있습니다.

 

 

우선 Existing nodes 를 클릭 후 클러스터 이름만 정하고 기본으로 설정 후 Next를 누릅니다.

 

 

 

 

 

그리고 가장 중요한 부분입니다.

etcd, Control plane, Worker 세 부분을 클릭해 주시고 밑에 코드를 복사 한 후 추가할 클러스터에 입력해줍니다.

 

이런식으로 원하는 노드들의 역할을 정해서 클러스터에 추가할 수 있습니다. (so amazing..)

 

자 이런식으로 구축을 하고 나면 처음 그림처럼 클러스터가 구성이됩니다. 

 

 

내부로 들어가면 이런모습입니다. 저같은 경우는 tools에 모니터링을 추가해놔서 그라파나 연동이 되있구요. 

그라파나도 쉽게 연동이 되서 자원 모니터링도 깔끔하게 되는 걸 확인할 수 있습니다.

 

 

 

자 오늘은 랜처를 이용한 k8s 구축을 해보았습니다.

 

이전에 쌩 노가다를 하며 kubeadm이니 뭐니 하면서 마스터 노드니 워커노드니 직접 설치하면서 추가했던게 일년 전 이었는데.. 

 

뭔가 허탈하면서 기분이좋습니다. 고생하십쇼 다음번엔 좀 더 양질의 정보로 찾아뵙겠습니다.

반응형