토이 프로젝트/서버갖고 놀기 for DevOps

Kubernetes on OpenStack : 오픈스택과 쿠버네티스 설치 결과와 환경 구성

TerianP 2023. 7. 2.
728x90

1. 시작하면서

거의 2달 반 정도 투자한 openstack 과 kubernetes 구성을 완료했습니다. 드디어 끝났어요ㅠㅠ

 

이번 서버 토이 프로젝트의 가장 큰 목적은 역시나 Openstack 이라는 클라우드 기술을 사용해 프라이빗 클라우드를 구성하고, Openstack 으로 생성한 인스턴스 위에서 Kubernetes 를 올려서 실제 AWS 나 Auzre 와 같은 퍼블릭 클라우드에서 사용하는 것처럼 환경을 구성하는 것이었습니다.

 

특히 이번 프로젝트를 통해서 네트워크 환경에 대해서 많은 공부를 할 수 있었던 것 같습니다. 진짜...정말 네트워크 기본 중에 기본만 알고 있었는데 이번 기회를 통해 오픈스택에서 네트워크를 구성하고, 서브넷도 구성하고, 인터페이스를 연결했다가 뺐다가 하면서 진짜 어렵고 재미있었습니다

 

이렇게 어찌저찌해서 '실무'에서 사용하는 환경 비스무리하게 구성되었으니 이제는 제가 개발했던 것들을 하나 둘 올려볼까 합니다.

이렇게하면 기존에는 1:1 화상채팅만 가능하던 임시 사이트가 아닌 N:M 화상채팅도 가능할 수 있을 것 같구요!! 물론 트래픽이나 이런 부분들 때문에 365일 열어두지는 못하겠지만ㅠㅠ

 

사실 최종 목표는 당연하게도 늘 그랬듯 프로젝트를 하면서 어떤 오류가 발생했었는지, 내가 어떻게 해결했는지, 설치방법과 필수 설정 등등 정말 작성하고 싶은게 많았지만, 조금 변명을 하자면 업무가 바빠서 결국 포스팅하지 못 했습니다ㅠㅠ

다만 노션으로는 꾸준히 정리해두었기에 어느정도 정리가 되면 노션의 파일을 리눅스 마스터 때처럼 pdf 로 해서 올려볼까하는 생각도 듭니다.

 

또한 저처럼 직접 서버와 환경을 구축하고 싶은 분들께 꼭 이야기드리고 싶은 부분은, 저처럼 멍청하게 라즈베리 파이를 쓰지마시고, 꼭 미니PC 2대 정도를 사서 거기에 설치하는게 훨~~씬 좋습니다. 8GB 라는 사양에도 결국 라즈베리파이는 라즈베리 일 뿐이고, 무엇보다 cpu 가 amd64 가 아닌 arm 라서 그런지 정말 설치하면서, 설치후에도 별별 이상한 문제들과 마주했습니다.

 

사실 처음에는 raspi-server-2 에 인스턴스를 2개 정도 생성해서 사용해봤는데 정말 속도가 정말정말 느리더라구요. 패키지 업데이트하는게 5분, 아무거나 설치하는게 5분 이런 느낌이었고, 명령어를 먹는 것조차 느렸습니다. openstack 을 처음 구성하고 사용하다보니 이렇게 느린 부분이 내가 네트워크 설정을 잘 못해서 그런건지 혹은 실제로 서버가 문제인건지 알 수 가 없는 상황이었고, 결국 새로운 서버(beelink mini s12)를 새로 구매해서 해당 서버를 사용해서 인스턴스를 생성했습니다.

 

결과 역시나 새로운 서버에서 생성된 인스턴스는 아주 멀쩡하게 되더랍니다ㅠ.ㅠ 심지어 속도도 잘 나와요...진짜 이것 때문에 오픈스택 2번이나 초기화하고 다시 설치한거 생각하면 순간 라즈베리를 부셔버릴까...하는 생각도 들었을정도. 이번에도 돈과 시간으로 좋은 경험...을 한것 같습니다ㅠㅠ

 

어쨌든 이렇게 하나 또 완성!!

 

아래는 인스턴스 2대의 실제 접속 및 사양을 확인한 사진!

instance-1
instance-2

2. 전체 서버 구성

1) 서버 목록

- openstack 과 kubernetes 구성을 위해 사용한 서버는 총 3대이며 라즈베리파이 8GB 와 beelink mini 를 사용하였다.

  • Rasberry-Pi 4B 8GB : 총 2대
    • raspi-server-1 : openstack 의 controller node
    • raspi-server-2  : kubernetes 의 control plane
  • beelink mini s12 N95 16GB : 총 1대
    • 서버 이름은 jsj-mini-s 로 명명
    • jsj-mini-s : openstack 의 compute node
  • openstack-instance-1, 2 : 가상머신
    • 각각 2vcpu , 5GB RAM, 20GB 를 할당받은 가상머신
  • 이제보니 처음 시작 때 AWS 나 Azure 에 돈내기 싫어서 서버를 구성하고자 했는데...결과적으로 지금까지 들어간 돈이 대략 70 정도 깨진거같은데...글쓰다가 현타올뻔ㅠㅠ

 

2) OpenStack 구성

오픈스택은 요렇게 구성되어 있다!

3) Kubernetes 구성

쿠버네티스 구성!

3. OpenStack 인스턴스 구성

- 오픈스택의 인스턴스는 지난 포스팅에서 크게 달라진 것 없다.

- 다만 Flavor 로 인스턴스들의 Ram 용량과 하드 용량을 조금 더 늘려서 Kubernetes 사용 시 더욱 편하게 사용할 수 있도록 조절했다

- 역시나 네트워크 환경도 비슷하다

 

- 하이퍼바이저가 기존에는 raspi-server-2 하나였는데 이제 2개로 늘었다!! 진짜 웃기고 화나는게 라즈베리파이를 괜히 샀구나...할 정도로 저 jsj-MINI-S 서버의 성능이 정말 월등히 좋았다. 심지어 가격도 그렇게 차이가 안나고...돈아까워ㅠㅠ

-

3. Kubernetes 구성

1) 서비스 현황과 dashboard

- 쿠버네티스 설치 후 가장 기본적인 fannel 과 dashboard 부터 시작해서 ingress 와 관련된 파드 및 private docker hub 를 사용하기 위해 파드로 배포해두었다

 

Reference

- kubernetes doc

https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/install-kubeadm/

 

Installing kubeadm

This page shows how to install the kubeadm toolbox. For information on how to create a cluster with kubeadm once you have performed this installation process, see the Creating a cluster with kubeadm page. Before you begin A compatible Linux host. The Kuber

kubernetes.io

- kubernetes 설치 및 에러 해결

2022.10.22 - [Server/Docker & Kubernetes] - 쿠버네티스 kubernetes 정복기(1) 설치하기, 각종 오류 트러블슈팅, 초기화(feat.성공적)

 

쿠버네티스 kubernetes 정복기(1) 설치하기, 각종 오류 트러블슈팅, 초기화(feat.성공적)

1. 시작하면서 최근에 도커를 공부하다가 갑자기...쿠버네티스에 관심이 생겨서 설치해서 이곳에 제가 지금까지 만들었던 프로젝트들을 올려보기로 했습니다. 사실 쿠버네티스가 정확히 뭔지

terianp.tistory.com

 

 

- 라즈베리파이 kubernetes 설치 관련

https://sungup.github.io/2019/12/26/Install-K8s-on-Raspberry-Pi-4.html

 

Install Kubernetes on Raspberry Pi 4

Raspberry Pi 4 기반 HW 구성에 Kubernetes(이하 K8s)를 설치하는 과정을 정리했습니다. Raspberry Pi 4 + Ubuntu 19.10 환경을 기반으로 설치를 진행했으며, 다양한 방법 중에서 K8s Official Site에서 설명된 설치방

sungup.github.io

https://truelifer.medium.com/raspberry-pi-4b-%EC%97%90-kubernetes-cluster-%EC%84%A4%EC%B9%98%ED%95%98%EA%B8%B0-35a1c7be3cbd

 

Raspberry pi 4B 에 Kubernetes cluster 설치하기

목차

truelifer.medium.com

 

- kubernetes 대시보스 설치 및 배포

https://may9noy.tistory.com/m/343

 

쿠버네티스 Dashboard 대쉬보드 설치 및 접속

# 쿠버네티스 대쉬보드 란? 쿠버네티스 대시보드는 웹 기반 쿠버네티스 유저 인터페이스이다. 대시보드를 통해 컨테이너화 된 애플리케이션을 쿠버네티스 클러스터에 배포할 수 있고, 컨테이너

may9noy.tistory.com

 

댓글