Juju와 함께 OpenStack 클라우드를 어떻게 배포합니까?


15

12.04의 가능한 배포를 준비하기 위해 테스트 클라우드를 시작하고 실행하고 싶습니다. 나는 UEC를 약간 망 쳤지 만 새로운 스택의 입문서로 도움이되는 것을 찾는 데 훨씬 힘들었습니다. 디아블로에 대한 일반적인 문서가 있지만 특정 가이드로 시간을 절약 할 수있는 우분투에는 이미 유용한 것들이 많이 있습니다.

또한, 내가 좋아하는 한, 예산에는 Canonical 지원으로 실행되는 작은 클러스터를 얻기 위해 $ 4-6k가 포함되어 있지 않습니다.

답변:


17

OpenStack 설치

빨리 일어나서 달리고 싶다면 여기로 가십시오.

이 답변은 Juju를 OpenStack과 함께 사용하는 방법에 대한 자세한 내용입니다.

범위

OpenStack 플랫폼은 강력하고 다양합니다. 이 문서 섹션은 주로 MAAS, Juju 및 Ubuntu와 같은 정식 구성 요소를 사용하여 OpenStack 시스템을 실행하는 "표준"배포와 관련이 있습니다. 적절한 다른 방법과 소프트웨어가 언급 될 것입니다.

가정

  1. MAAS 사용 -먼저이 지침을 따르십시오.
  2. 주주 사용
  3. 로컬 네트워크 구성-이 문서는 OpenStack 클라우드에 액세스하기위한 별도의 인터페이스를 포함하여 적절한 로컬 네트워크 구성이 있다고 가정합니다. 이상적인 네트워크는 [MAAS] [OpenStack의 MAAS 문서]에 나와 있습니다.

설치 계획

서비스를 배포하기 전에 사용 가능한 리소스와 사용 방법을 파악하는 것이 매우 유용합니다. OpenStack은 호스트 측면에서 요구 사항이 서로 다른 여러 관련 서비스 (Nova, Swift 등)로 구성됩니다. 예를 들어, 오브젝트 스토리지를 제공하는 Swift 서비스는 계산 자원을 제공하는 Nova 서비스와는 다른 요구 사항이 있습니다.

각 서비스 및 권장 사항에 대한 최소 요구 사항은 공식 OpenStack 운영 가이드에 나와 있습니다.

MAAS 및 주주와 OpenStack은 배포를위한 노드의 권장 구성은 시스템의 모든 노드가 실행 할 수 있어야한다는 것입니다 모든 서비스의. 이는 물리적 노드가 실패해야하기 때문에 다른 노드가 대신 사용될 수 있기 때문에 시스템의 견고성을위한 최선의 방법입니다. 이것은 추가 네트워크 인터페이스와 같은 모든 하드웨어 요구 사항으로 확장됩니다.

경제적 인 이유로 또는 다른 방식의 하드웨어 구성을 사용하기로 선택한 경우, 하드웨어 오류를 극복하는 능력이 줄어 듭니다. 또한 특정 노드에 대한 배포를 대상으로해야 합니다 . 태그 에 대한 MAAS 설명서 의 섹션을 참조하십시오 .

OpenStack 구성 파일 작성

Juju 참을 사용하여 OpenStack의 구성 요소 부분을 배포합니다. 각 매력은 특정 서비스를 설정하는 데 필요한 모든 것을 캡슐화합니다. 그러나 개별 서비스에는 많은 구성 옵션이 있으며 그 중 일부는 변경하고자합니다.

이 작업을보다 쉽고 재현 가능하게하기 위해 모든 서비스에 대한 관련 옵션이있는 별도의 구성 파일을 만듭니다. 이것은 표준 YAML 형식으로 작성되었습니다 (이에 익숙하지 않은 경우 www.yaml.org 참조 ).

다음은 openstack-config.yaml의 예입니다.

keystone:
  admin-password: openstack
  debug: 'true'
  log-level: DEBUG
nova-cloud-controller:
  network-manager: 'Neutron'
  quantum-security-groups: 'yes'
  neutron-external-network: Public_Network
nova-compute:
  enable-live-migration: 'True'
  migration-auth-type: "none"
  virt-type: kvm
  #virt-type: lxc
  enable-resize: 'True'
quantum-gateway:
  ext-port: 'eth1'
  plugin: ovs
glance:
  ceph-osd-replication-count: 3
cinder:
  block-device: None
  ceph-osd-replication-count: 3
  overwrite: "true"
  glance-api-version: 2
ceph:
  fsid: a51ce9ea-35cd-4639-9b5e-668625d3c1d8
  monitor-secret: AQCk5+dR6NRDMRAAKUd3B8SdAD7jLJ5nbzxXXA==
  osd-devices: /dev/sdb
  osd-reformat: 'True'

모든 서비스 openstack-origin에 대해 설치 소스를 가리 키도록 구성 할 수 있습니다 . 이 경우 기본값을 사용하며 Ubuntu 14.04 LTS Trusty 릴리스의 관련 소스를 가리 킵니다. 각 서비스에 대한 추가 구성은 이 문서 에서 설명 합니다 .

다른 구성

OpenStack 서비스 배포를위한 다른 설정 및 구성 옵션이 가능합니다. 자세한 내용은 Juju에서 사용하는 개별 참에 대한 설명서를 참조하십시오. 온라인 Juju Charm Store 를 방문 하여 페이지 왼쪽 상단의 검색 상자를 사용하여 참을 검색 하여 검사 할 수 있습니다 . 구성 설정은 다음과 같이 기본 페이지의 "구성"에 자세히 설명되어 있습니다.

여기에 이미지 설명을 입력하십시오

Juju와 함께 OpenStack 배포

구성이 정의되었으므로 Juju를 사용하여 서비스를 배포하고 관련시킬 수 있습니다.

주주 초기화

Juju는 최소한의 설정 만 필요합니다. 여기서는 MAAS 클러스터와 작동하도록 이미 구성된 것으로 가정합니다 (자세한 내용은 [Juju 설치 안내서] [juju_install] 참조).

먼저 Juju가 사용할 이미지와 도구를 가져와야합니다.

juju sync-tools --debug

그런 다음 부트 스트랩 인스턴스를 만들 수 있습니다.

juju bootstrap --upload-tools --debug

우리는 upload-tools 스위치를 사용하여 방금 가져온 로컬 버전의 도구를 사용합니다. 디버그 스위치는 유용한 자세한 출력을 제공합니다. Juju가 인스턴스를 작성하고 도구를 설치하므로이 프로세스는 몇 분이 걸릴 수 있습니다. 완료되면 다음 명령으로 시스템 상태를 확인할 수 있습니다.

juju status

이것은 다음과 같은 것을 반환해야합니다 :

environment: maas
machines:
  "0":
    agent-state: started
    agent-version: 1.18.1.1
    dns-name: localhost
    instance-id: localhost
    series: trusty

OpenStack 참 배포

Juju 부트 스트랩 노드가 시작되어 실행 중이므로 OpenStack 설치에 필요한 서비스를 배포 할 수 있습니다. 이러한 서비스가 배포 될 때 올바르게 구성하기 위해 --config각 deploy 명령 과 함께 스위치와 함께 전달하여 앞에서 정의한 구성 파일을 사용합니다 . 다른 경우 구성 파일의 이름과 경로로 대체하십시오.

아래 순서대로 서비스를 배포하는 것이 유용하지만 필수는 아닙니다. 추가 터미널 창을 열고 명령을 실행하는 것이 juju debug-log좋습니다. 이렇게하면 모든 서비스가 실행될 때 로그가 출력되며 문제 해결에 유용 할 수 있습니다.

juju status각 서비스가 설치되어 있고 제대로 실행되고 있는지 확인하려면 명령을 정기적으로 실행하는 것이 좋습니다 . Juju는 온라인 Charm Store에서 가능한 최고의 매력 버전을 자동으로 가져 오려고 시도합니다. 제한된 네트워크 나 폐쇄 된 네트워크에서 설치하는 경우 필요한 참을 미리 가져올 수 있습니다. [오프라인 참에 대한 설명서] [charms-offline]을 참조하십시오.

juju deploy --to=0 juju-gui
juju deploy rabbitmq-server
juju deploy mysql
juju deploy --config openstack-config.yaml openstack-dashboard
juju deploy --config openstack-config.yaml keystone
juju deploy --config openstack-config.yaml ceph -n 3 
juju deploy --config openstack-config.yaml nova-compute -n 3
juju deploy --config openstack-config.yaml quantum-gateway
juju deploy --config openstack-config.yaml cinder
juju deploy --config openstack-config.yaml nova-cloud-controller
juju deploy --config openstack-config.yaml glance
juju deploy --config openstack-config.yaml ceph-radosgw

OpenStack 서비스 간의 관계 추가

이제 서비스가 배포되었지만 아직 서로 연결되지 않았습니다. 각 서비스는 현재 독립적으로 존재합니다. 우리는이 juju add-relation 명령을 사용하여 서로를 인식하고 관련 연결 및 프로토콜을 설정합니다. 이 추가 구성은 개별 참 자체에 의해 처리됩니다.

Keystone 인증 서비스와 데이터베이스를 설정하여 매력 사이에 관계를 추가해야합니다.

juju add-relation keystone mysql

관계가 설정 될 때까지 기다립니다. 완료 후 juju 상태로 확인하십시오.

juju status mysql
juju status keystone

이 서비스가 정착 되려면 약간의 시간이 걸릴 수 있습니다. 관계를 계속 추가하는 것은 확실히 가능하지만 (Juju는 보류중인 작업의 큐를 관리합니다) 많은 관계가 동일한 서비스를 참조하므로 전체 소요 시간 측면에서 비생산적 일 수 있습니다.

다음과 같은 관계도 만들어야합니다.

juju add-relation nova-cloud-controller mysql
juju add-relation nova-cloud-controller rabbitmq-server
juju add-relation nova-cloud-controller glance
juju add-relation nova-cloud-controller keystone
juju add-relation nova-compute mysql
juju add-relation nova-compute rabbitmq-server
juju add-relation nova-compute glance
juju add-relation nova-compute nova-cloud-controller
juju add-relation glance mysql
juju add-relation glance keystone
juju add-relation cinder keystone
juju add-relation cinder mysql
juju add-relation cinder rabbitmq-server
juju add-relation cinder nova-cloud-controller
juju add-relation openstack-dashboard keystone
juju add-relation swift-proxy swift-storage
juju add-relation swift-proxy keystone

마지막으로, juju 상태의 출력은 모든 관계가 완료된 것으로 표시해야합니다. OpenStack 클라우드가 현재 실행 중이지만 사용할 준비가되기 전에 일부 추가 구성 요소로 채워 져야합니다.




당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.