Skip to main content

시작 설정 및 정의

마이크로스택(MicroStack)에 대한 설치 및 설정을 시작하기 전에, MicroStack에 대해 간략히 알아보겠다. MicroStack 오픈스택(OpenStack)의 경량 버전으로서, 작은 규모의 개발 및 테스트 환경에 적합 한다. MicroStack은 신속한 배포와 간편한 설정을 제공하며, 개발자와 엔지니어들이 오픈스택을 쉽게 경험하고 활용할 수 있도록 도와 준다.

오픈스택은 대규모 클라우드 컴퓨팅 환경을 구축하고 관리하기 위한 오픈 소스 플랫폼. 가상화 기술을 활용하여 컴퓨팅, 스토리지 및 네트워킹 리소스를 효율적으로 관리할 수 있게 해준다.

MicroStack과 함께 사용되는 Sunbeam은 원래의 오픈스택 기능을 간결하게 제공하면서 네이티브 쿠버네티스 경험을 제공한다. 사용자에게 직관적인 대시보드와 강력한 기능을 제공하여 클라우드 인프라의 관리 및 모니터링을 용이하게 한다. 

Sunbeam은 오픈스택 서비스를 위한 Kubernetes 오퍼레이터를 작성하기 위한 라이브러리 모음.

마이크로쿠버네티스(MicroK8s)는 경량화된 Kubernetes 배포판으로서, 로컬 환경에서 쉽게 Kubernetes 클러스터를 구축하고 실행할 수 있도록 도와준다. 이는 하나의 노드로 구성된 단일 클러스터로, 가벼우면서도 빠르게 구성할 수 있다.

그 외 MicroStack의 스토리지 서비스는 분산형 객체 스토리지 시스템인 세프(Ceph)의 기반으로 가동 하므로, 동일하게 Ceph의 경량 버전인 마이크로세프(MicroCeph)를 사용한다.

아래 링크들을 통해 위에 계시 된 툴들을 더 자세하게 파악 할 수 있다.


설치전 요구 사항
  • Ubuntu 서버 20.04 버전 또는 22.04 버전 (Baremetal or VM)
  • VM을 사용 하는 경우 Nested Virtualization 활성화 여부 확인
  • 적어도 4 CPU 코어, 16GB 메모리 그리고 50GB+ 디스크 공간
  • MicroStack External Network용 비워둔 네트워크 인터페이스
  • MicroCeph용 새로운 디스크  


사용된 환경
  • VMWare Workstation Pro 가상 머신(Ubuntu 22.04 LTS)
  • Virtualization 설정 활성화
  • 2개의 네트워크 인터페이스 - ens32 VM용 + ens34 MicroStack용
  • 6개 CPU 코어
  • 16GB 메모리
  • 60GB 디스크 공간 for VM
  • 20GB 비워둔 디스크 공간 for MicroCeph
  • 네트워크: 192.168.1.80/24 및 2번째 NIC는 아무 설정 없음


설치 과정

설치 작업을 진행하기 전에, 현재 테스트 해본 MicroStack Sunbeam의 버전들은 아래와 같다:


현재 이슈

모든 버전들은 리부팅 후 MicroStack 접속이 안된다. 이슈를 보니 일단 microk8s 쪽에서는 OpenStack 파드들이 잘 올라오는 것을 확인 할 수 있다.

Every 2.0s: juju status --color -m openstack                                                                                                                 ubuntu: Sun Jun 11 19:12:25 2023

Model      Controller          Cloud/Region        Version  SLA          Timestamp
openstack  microk8s-localhost  microk8s/localhost  3.1.2    unsupported  19:12:25Z

App                    Version                  Status   Scale  Charm                      Channel     Rev  Address         Exposed  Message
certificate-authority                           active       1  tls-certificates-operator  stable       22  10.152.183.141  no
glance                                          waiting      1  glance-k8s                 yoga/beta    27  10.152.183.244  no       installing agent
horizon                                         waiting      1  horizon-k8s                yoga/beta    32  10.152.183.184  no       installing agent
keystone                                        waiting      1  keystone-k8s               yoga/beta    82  10.152.183.186  no       installing agent
mysql                  8.0.32-0ubuntu0.22.04.2  active       1  mysql-k8s                  8.0/stable   75  10.152.183.67   no       Primary
neutron                                         waiting      1  neutron-k8s                yoga/beta    29  10.152.183.157  no       installing agent
nova                                            waiting      1  nova-k8s                   yoga/beta    20  10.152.183.254  no       installing agent
ovn-central                                     active       1  ovn-central-k8s            22.03/beta   35  10.152.183.99   no
ovn-relay                                       active       1  ovn-relay-k8s              22.03/beta   25  10.152.183.133  no
placement                                       waiting      1  placement-k8s              yoga/beta    18  10.152.183.25   no       installing agent
rabbitmq               3.11.3                   active       1  rabbitmq-k8s               3.11/beta    10  10.152.183.142  no
traefik                2.9.6                    waiting      1  traefik-k8s                1.0/stable  110  10.152.183.60   no       installing agent

Unit                      Workload  Agent      Address       Ports  Message
certificate-authority/0*  active    idle       10.1.243.217     
glance/0*                 waiting   idle       10.1.243.210         (ingress-internal) integration incomplete
horizon/0*                waiting   executing  10.1.243.214         (ingress-internal) integration incomplete
keystone/0*               waiting   idle       10.1.243.198         (workload) Not all relations are ready
mysql/0*                  active    idle       10.1.243.216         Primary
neutron/0*                waiting   idle       10.1.243.203         (workload) Not all relations are ready
nova/0*                   waiting   idle       10.1.243.207         (workload) Not all relations are ready
ovn-central/0*            active    idle       10.1.243.209     
ovn-relay/0*              active    idle       10.1.243.199     
placement/0*              waiting   idle       10.1.243.208         (workload) Not all relations are ready
rabbitmq/0*               active    idle       10.1.243.196     
traefik/0*                waiting   idle       10.1.243.205         gateway address unavailable

그렇지만 juju 상태를 실시간으로 보면 계속 waiting status만 보인다.

이 이슈는 현재 MicroStack 개발자들도 인지 하고 있는 이슈이다. 간단한 fix는 waiting 상태에 오래 있는 서비스들의 파드를 삭제 해주면, 파드가 자동으로 재생성 되면서 서비스가 active상태로 바뀐다. 하지만 그렇게 MicroStack이 작동을 하지만:

  • OpenStack 라우터와 통신이 안되는 경우가 있다. 만약에 라우터와 통신이 돼면, 내부의 인스턴스와 통신이 안된다
  • OpenStack-hypervisor 상태가 DOWN으로 바뀌면서 수동으로 UP상태로 바꾸거나, 서비스 재시작 또는 재설치시에도 상태가 안 바뀐다
## 재부팅 전

openstack hypervisor list
+----+---------------------+-----------------+--------------+-------+
| ID | Hypervisor Hostname | Hypervisor Type | Host IP      | State |
+----+---------------------+-----------------+--------------+-------+
|  1 | ubuntu              | QEMU            | 192.168.1.80 | up    |
+----+---------------------+-----------------+--------------+-------+

## 재부팅 후
openstack hypervisor list
+----+---------------------+-----------------+--------------+-------+
| ID | Hypervisor Hostname | Hypervisor Type | Host IP      | State |
+----+---------------------+-----------------+--------------+-------+
|  1 | ubuntu              | QEMU            | 192.168.1.80 | down  |
+----+---------------------+-----------------+--------------+-------+


OpenStack의 Hypervisor상태가 DOWN이라서 인스턴스 생성도 불가능 하다. Nova-compute 상태도 down으로 나오는 원인도 동일하다.

openstack compute service list
+----+----------------+--------+----------+---------+-------+----------------------------+
| ID | Binary         | Host   | Zone     | Status  | State | Updated At                 |
+----+----------------+--------+----------+---------+-------+----------------------------+
|  1 | nova-scheduler | nova-0 | internal | enabled | up    | 2023-06-13T04:19:06.000000 |
|  2 | nova-conductor | nova-0 | internal | enabled | up    | 2023-06-13T04:19:14.000000 |
|  8 | nova-compute   | ubuntu | nova     | enabled | down  | 2023-06-12T18:08:40.000000 |
+----+----------------+--------+----------+---------+-------+----------------------------+


그리고 2023.1 버전만의 이슈는 Cinder 볼륨 상태 이다. 모든 요소들 설치는 문제 없이 진행 되지만 cinder-ceph 만 설치가 안된다

image.png


위에 있는 Workload가 Blocked 상태이라서 실제 MicroStack 설치 후 볼륨 서비스의 볼륨 생성 이 되지 않는다

image.png


그 외 MicroCeph 설정 완료 후에 시도 후에는는 아래와 같이 glance 워크로드가 integration incomplete이라고 뜬다

image.png


마지막으로 최신 버전인 stable/vancouver에서는 문제 없이 설정 완료 및 볼륨까지 생성은 되지만, 현재 Cinder에 의해 생성된 Ceph의 볼륨은 컴퓨트 인스턴스에 연결할 수 없다. 연결이 실패하거나 파드들이 Crash된다. 더 자세한 Bug내용은 여기서 확인.

 

MicroStack 관련 검사 및 로그 수집을 위해 명령어들의 모집은 여기에서 확인 할 수 있다. MicroStack의 작동 중 이슈 발생 시 적합 하다.