본문 바로가기

Openstack

Openstack Senlin

Senlin은 profile이라 불리는 cluster 스펙 요구치와 policy라는 정책 설정 파일이 필요

특정 스펙의 instance를 같은 이름으로 cluster로 묶어 관리할 수 있음

 

test용 my-profile.yaml

type: os.nova.server
version: 1.0
properties:
  name: senlin-vm
  flavor: devstack-tiny
  image: "cirros"
  key_name: phw
  networks:
   - network: private
     security_groups:
       - default
  metadata:
    test_key: test_value
  user_data: |
    #!/bin/sh
    echo 'hello, world' > /tmp/test_file

 

test용 my-policy.yaml

type: senlin.policy.health
version: 1.1
description: A policy for maintaining node health from a cluster.
properties:
  detection:
    # Number of seconds between two adjacent checking
    interval: 60

    detection_modes:
      # Type for health checking, valid values include:
      # NODE_STATUS_POLLING, NODE_STATUS_POLL_URL, LIFECYCLE_EVENTS
      - type: NODE_STATUS_POLLING

  recovery:
    # Action that can be retried on a failed node, will improve to
    # support multiple actions in the future. Valid values include:
    # REBOOT, REBUILD, RECREATE
    actions:
      - name: RECREATE

 

policy 관련은 추가 공부 필요

 

해당 yaml을 통해 명령어 혹은 ui로 openstack에 등록

openstack cluster profile create --spec-file my-profile.yaml server-profile

 

profile을 통해 cluster 생성

openstack cluster create --profile server-profile --desired-capacity 2 --min-size 1 --max-size 3 my-cluster

 

policy 등록

openstack cluster policy create --spec-file mypolicy.yaml my-policy

 

등록한 policy를 cluster에 적용

openstack cluster policy attach --policy my-policy my-cluster

 

이후 vm 삭제 테스트 시 일정 갯수로 유지 되는 것 확인

  • 3개 였던 cluster를 하나를 지워 2개로 만들면 일정 시간 후 재생성 되며 3개 유지

resize 시 정상적으로 늘거나 줄어드는 것 확인

max size를 넘는 값으로 설정 시 max size로 적용 되는 것 확인

 

openstack cluster expand my-cluster

1개 증가

openstack cluster shrink my-cluster

1개 삭제

Scale-In이 2이면 2개가 되는 게 아니라 2개가 줄어드는 것

반대로 Scale-Out이 2이면 2개가 되는 게 아니라 2개가 늘어나는 것

 

클러스터 삭제 시 하위 멤버 인스턴스들도 삭제

'Openstack' 카테고리의 다른 글

Openstack Bridge, Port 수동 작업  (0) 2024.05.23
Openstack Galera clustering 복구  (0) 2024.05.23
Openstack RabbitMQ unsynchronized error  (0) 2024.05.23
Openstack Magnum  (0) 2024.05.23
Openstack DNS lookup  (0) 2024.05.23