로컬 서버에 k8s cluster 환경 구성하기 part 2 (rancher, ceph storage)

Published: by Creative Commons Licence

intro

지난번에 이어 로컬서버에 k8s cluster 환경을 구성하고 있습니다. k8s cluster를 구성하는데에서 시작하여 airflow를 k8s 환경에서 동작하도록 구성하는것이 목표입니다. part2, 이번 포스트에는 k8s cluster의 관리도구인 rancher를 세팅한 과정, 그리고 airflow의 데이터 저장공간으로 사용할 ceph storage를 세팅한 과정을 담아보겠습니다.

  • ☑ k8s cluster 설치
  • ☑ nginx 구성
  • ☑ rancher 구성
  • ☑ ceph storage 구성
  • ☐ airflow (iceberg, hive, spark, trino) 구성…

rancher를 구성할때에는 https://ranchermanager.docs.rancher.com/getting-started/installation-and-upgrade/install-upgrade-on-a-kubernetes-cluster 를 참고하였습니다.

prepare

먼저 아래와같이 helm repo를 추가하고, name space를 선언해두었습니다.

helm repo add rancher-stable https://releases.rancher.com/server-charts/stable
helm repo add jetstack https://charts.jetstack.io
helm repo update

kubectl create namespace cattle-system
kubectl create namespace cert-manager

cert-manager install

rancher에서 자체적으로 사용하는 인증서라고 합니다. rancher 홈페이지의 가이드에 나와있는 세가지 방법 중 비교적 간단해보이는 옵션으로 진행하였습니다.

kubectl apply -f https://github.com/cert-manager/cert-manager/releases/download/v1.16.1/cert-manager.crds.yaml
helm install cert-manager jetstack/cert-manager --namespace cert-manager --set crds.enabled=false

rancher install

아래와 같이 helm을 이용해 rancher를 설치하였습니다.

helm install rancher rancher-stable/rancher \
  --namespace cattle-system \
  -f /app/k8s/rancher/values.yaml

# helm upgrade rancher rancher-stable/rancher \
  --namespace cattle-system \
  -f /app/k8s/rancher/values.yaml

values.yaml에 따로 parameter를 저장해두었습니다.

hostname: 000namc.xyz
bootstrapPassword: admin

설치 과정중에 많은 시행착오가 있었습니다. 000namc.xyz/rancher 혹은 rancher.000namc.xyz 로 기본 URL을 세팅하고 싶었는데 그렇게 구성하지 못했습니다. 그럼에도 과정중에 원인을 파악하기 위해 사용했던 명령어들을 정리해두려 합니다.

# ingress-nginx가 어떤 요청을 받고 있는지 확인
kubectl -n ingress-nginx logs -l app.kubernetes.io/name=ingress-nginx -f

# helm을 통해 설정된 ingress를 yaml로 저장 
kubectl -n cattle-system get ingress rancher -o yaml > ingress.yaml

# localhost 환경에서 rancher가 제대로 동작하는지 확인하기위해 포트포워딩 세팅
kubectl port-forward -n cattle-system --address 0.0.0.0 svc/rancher 80:80

# dashboard가 성공적으로 동작하는지 확인 
curl -k https://localhost/dashboard/?setup=admin

# 기본적인 값 조회...
kubectl get ingress rancher -n cattle-system
kubectl describe ingress rancher -n cattle-system

최종적으로 rancher는 https://000namc.xyz/dashboard/home 로 접근할 수 있게 되었습니다.

ceph storage install

to be written