제공 - VMware · 예: 그림 2에서 배포를 정의하는 작업자는 배포 매니페스트...

12
BOSH 소개 VMware 제공 백서 2017 8

Transcript of 제공 - VMware · 예: 그림 2에서 배포를 정의하는 작업자는 배포 매니페스트...

Page 1: 제공 - VMware · 예: 그림 2에서 배포를 정의하는 작업자는 배포 매니페스트 내에서 버전이 지정된 릴리스를 1개 이상 참조할 수 있습니다.

BOSH 소개VMware 제공

백서 – 2 0 1 7년 8월

Page 2: 제공 - VMware · 예: 그림 2에서 배포를 정의하는 작업자는 배포 매니페스트 내에서 버전이 지정된 릴리스를 1개 이상 참조할 수 있습니다.

컨텐츠

BOSH 소개 .................................................................................................................................. 3

BOSH 개요 ..........................................................................................................................................3

BOSH로 해결할 수 있는 문제 ........................................................................................................4

BOSH 사용 사례: ...............................................................................................................................6

BOSH 배포 .................................................................................................................................. 8

BOSH 아키텍처 ..................................................................................................................................8

BOSH 참조 자료 ................................................................................................................................8

쿡북: vSphere에 “Kubo” 배포 방법 ...................................................................................... 9

BOSH 배포 단계(Mac OSX용): ..................................................................................................9

BOSH에 Kubo를 배포하는 단계 ............................................................................................... 10

B O S H 소개

백서 | 2

Page 3: 제공 - VMware · 예: 그림 2에서 배포를 정의하는 작업자는 배포 매니페스트 내에서 버전이 지정된 릴리스를 1개 이상 참조할 수 있습니다.

BOSH 소개BOSH 개요BOSH는 분산 시스템의 배포 및 수명주기 관리를 지원하는 오픈소스 툴입니다. Cloud Foundry를 구축하기 위한 주된 수단으로 사용되고 있으며 Google, Pivotal 및 VMware와 같은 Cloud Foundry Foundation의 여러 핵심 멤버들이 여기에 참여하고 있습니다. 다양한 IaaS 공급업체 전반에 걸쳐 구축을 지원할 수 있습니다. 이러한 공급업체는 다음과 같습니다.

• VMware vSphere

• Google Compute Platform

• Amazon Web Services EC2

• Microsoft Azure

• OpenStack

백서 | 3

그림 1: BOSH 개요

BOSH는 복잡한 시스템을 쉽고 반복 가능하게 구축할 수 있도록 하는 여러 주요 추상화 객체를 생성하여 배포를 실현합니다. 위 그림을 참조하면, 해당 객체는 다음과 같습니다.

1. CPI: CPI(Cloud Provider Interface)는 BOSH가 IaaS와 상호 작용하기 위해 사용하는 실행 가능한 라이브러리입니다. BOSH를 지원하는 IaaS마다 하나의 CPI를 사용할 수 있으며, BOSH 인스턴스를 배포할 때 어떤 것을 사용할지 정의할 수 있습니다. 위 이미지에 vSphere CPI가 표시되어 있습니다. 이 CPI는 BOSH로 하여금 배포의 인스턴스화를 위해 필요한 다양한 기타 인스턴스, 네트워크 및 스토리지 기본 작업뿐만 아니라 가상 머신 또는 인스턴스의 생성과 같이 필요한 모든 IaaS 작업을 수행하도록 합니다.

BOSH 배포

매니페스트

CPI-vSphere

BOSH

네트워크 네트워크

BOSH 배포 실행

작업 VM

vSphere

1

4

5

BOSH 릴리스

BOSH 스템 셀

3

2

작업 VM

작업 VM

작업 VM

작업 VM

B O S H 소개

Page 4: 제공 - VMware · 예: 그림 2에서 배포를 정의하는 작업자는 배포 매니페스트 내에서 버전이 지정된 릴리스를 1개 이상 참조할 수 있습니다.

2. BOSH 스템 셀: 스템 셀은 버전이 지정된 기본 운영 시스템 이미지이며 BOSH에서 지원하는 각 CPI를 위해 구축됩니다. 이는 일반적으로 Canonical의 Ubuntu 배포를 기반으로 하지만 RHEL 및 Windows 이미지 포트에서도 사용 가능합니다. 일반적으로, 스템 셀은 BOSH 에이전트가 사전 배포된 강화된 기본 운영 체제 이미지입니다. BOSH는 이 에이전트를 사용하여 인스턴스의 해당 VM에 소프트웨어를 설치하고 수명주기를 관리합니다.

3. BOSH 릴리스: BOSH 릴리스는 버전이 지정된 tarball이며 해당 소프트웨어 릴리스를 스템 셀에서 프로비저닝된 가상 머신 또는 인스턴스에 배포하는 방법을 BOSH에 설명하는 데 필요한 전체 소스 코드 및 작업 정의를 포함합니다. BOSH가 완벽하게 작동하는 Kubernetes 클러스터를 배포하는 데 필요한 모든 패키지 및 세부 정보를 포함하는 Kubo 릴리스를 예로 들 수 있습니다.

4. BOSH 배포 매니페스트: BOSH는 실제로 무언가를 배포하기 위해 선언적 정보를 받아야 합니다. 이 정보는 매니페스트를 통해 작업자가 제공합니다. 매니페스트는 배포에 사용할 1개 이상의 릴리스 및 스템 셀을 정의하고 IP 스택 정보, 인스턴스 수, 배포하고자 하는 특정 릴리스의 고급 구성과 같은 몇몇 주요 변수를 제공합니다. 이러한 매니페스트는 일반적으로 YAML 형식으로 작성됩니다.

5. BOSH 배포: BOSH는 실제로 무언가를 배포하기 전에 선언적 정보가 필요합니다. 이 정보는 배포 매니페스트 및 클라우드 구성 매니페스트를 통해 작업자가 제공합니다. 이러한 매니페스트는 일반적으로 YAML 형식으로 작성됩니다.

–클라우드 구성 매니페스트: 이 YAML은 CPI에 제공된 속성에서 정의한 IaaS에 따라 다릅니다. 이는 네트워크, 가상 머신 크기, 스토리지 위치 및 가용성 영역 매핑 등에 대한 정의를 제공합니다. 이 매니페스트는 전역적이기 때문에 BOSH당 1개의 인스턴스만 있으며, 여러 배포 매니페스트에 의해 참조될 수 있습니다.

– 배포 매니페스트: 이 매니페스트는 클라우드 구성의 객체를 참조하며 릴리스의 속성에 중점을 둡니다. 매니페스트는 배포에 사용할 1개 이상의 릴리스 및 스템 셀을 정의하고 인스턴스 수 및 배포할 특정 릴리스의 고급 구성과 같은 몇몇 주요 변수를 제공합니다. 이는 CPI 전반에 걸쳐 배포 매니페스트의 이동을 가능하게 합니다.

BOSH로 해결할 수 있는 문제BOSH를 통해 릴리스 개발자1는 소프트웨어를 재현 가능한 방식으로 쉽게 버전 지정, 패키지화 및 배포할 수 있습니다. 작업자는 BOSH 릴리스를 사용할 수 있고, 배포가 환경 전반에서 예측 가능한 결과를 제공하여 반복 가능하다는 확신을 얻을 수 있습니다. 이를 달성하기 위해, BOSH는 릴리스 개발자가 릴리스를 빌드할 때 다음과 같은 몇몇 주요 기능 제공하는 데 중점을 두도록 합니다.

• 식별성 작업자는 소프트웨어 배포 및 해당 버전을 문서화할 수 있어야 합니다. BOSH 릴리스는 기본적으로 개발자가 릴리스 내에 있는 모든 것을 선언하고 패키지화도록 요구합니다. 릴리스 자체도 반드시 버전을 지정해야 합니다. 이를 통해 작업자는 무엇이 배포되었는지 완벽하게 파악할 수 있을 뿐 아니라 릴리스 내의 소프트웨어 버전을 일관되게 업그레이드 또는 다운그레이드할 수 있습니다.

1 릴리스 개발자는 BOSH를 통해 배포할 소프트웨어를 패키징하는 개발자입니다.

B O S H 소개

백서 | 4

Page 5: 제공 - VMware · 예: 그림 2에서 배포를 정의하는 작업자는 배포 매니페스트 내에서 버전이 지정된 릴리스를 1개 이상 참조할 수 있습니다.

예 : 그림 2에서 배포를 정의하는 작업자는 배포 매니페스트 내에서 버전이 지정된 릴리스를 1개 이상 참조할 수 있습니다. 이를 통해 사용되는 소프트웨어 버전을 식별할 수 있습니다. 위 이미지에서 BOSH에는 버전 0.0.5 및 0.0.6 Kubo 릴리스가 있습니다. 작업자는 배포 매니페스트에서 릴리스의 버전 0.0.5 사용을 정의했으며, 이는 "mykubo-deployment"라는 배포 전반에서 Kubernetes 버전 1.6.6을 사용하도록 합니다.

그림 2: BOSH 식별성

* 재현성소프트웨어를 릴리스함에 있어 BOSH를 통해 해결하는 또 하나의 중요한 요소는 재현성입니다. 작업자에게 있어 이는 운영상의 안정성을 보장하기 위해 소프트웨어가 여러 환경 전반에서 동일한 방식으로 배포되어야 함을 의미합니다.

예 : 다음 페이지의 그림 3에서는 단일 매니페스트가 Kubernetes를 일관된 방식으로 배포하여 여러 환경에 걸쳐 동일한 릴리스를 통해 동일한 기능을 하는 배포를 제공합니다. 이러한 환경은 CPI 추상화를 이용하여 여러 IaaS 공급업체의 경계도 초월할 수 있습니다. 위 이미지의 간소화되고 부분적인 배포 매니페스트는 두 가지의 서로 다른 환경에 기능적으로 동일한 Kubernetes 클러스터를 배포하기 위해 사용할 BOSH 스템 셀 , BOSH 릴리스 및 구성 속성을 선언합니다.

BOSH 릴리스 : kubo-release버전: 0.0.5

패키지:

kubernetes: kubernetes-1.6.6/*nginx: nginx/ nginx-release-1.11.4.tar.gz

BOSH 릴리스: kubo-release버전: 0.0.6

패키지:

kubernetes: kubernetes-1.7.1/*nginx: nginx/nginx-release-1.11.4.tar.gz

BOSH 배포

매니페스트

CPI-vSphere

BOSH

네트워크

BOSH 배포 실행

VM KBS

V1.6.6

vSphere

VM KBS

V1.6.6

VM KBS

V1.6.6

이름: mykubo-deployment 릴리스 : - 이름: kubo-release 버전: 0.0.5 - 이름: docker 버전: 28.0.1

mykubo-deployment

백서 | 5

B O S H 소개

Page 6: 제공 - VMware · 예: 그림 2에서 배포를 정의하는 작업자는 배포 매니페스트 내에서 버전이 지정된 릴리스를 1개 이상 참조할 수 있습니다.

그림 3: BOSH 재현성

• 일관성또한 BOSH는 BOSH 릴리스 개발에서 일관성을 적용하여 거의 모든 소프트웨어를 유사한 패턴으로 패키지화하고 버전을 지정하며 배포하도록 보장합니다. 이는 또한 운영상의 안정성도 제공합니다.

BOSH 사용 사례:BOSH의 주된 가치는 복잡한 시스템의 배포 및 2일 차 수명주기 관리를 간소화하는 데 있습니다. 이는 주로 Cloud Foundry를 배포하기 위해 개발되었으나 단순하고 복잡한 여러 기타 환경을 배포하기 위해 개발자에 의해 확장되어 왔습니다. BOSH의 배포 환경이 되는 시스템은 주로 2군데에서 확인할 수 있습니다. 첫 번째는 Pivotal이 Pivotal Cloud Foundry의 커머셜 BOSH 릴리스 및 일반적으로 Pivotal Operations Manager와 BOSH를 기반으로 하는 Pivotal 서비스를 관리하는 Pivotal Network입니다. 두 번째는 배포 가능한 다양한 시스템의 OSS 커뮤니티 저장소를 호스팅하는 BOSH.io입니다.

BOSH 사용 사례의 대표적인 예는 BOSH 기반 Kubernetes(이른바 Kudo)입니다.

다음 페이지의 그림 4를 참조하면 BOSH가 작업자에게 제공하는 주요 이점을 확인할 수 있습니다.

1. 반복성: 클라우드형 개발 환경에서 작업자는 여러 개발자의 요구 사항을 충족하기 위해 고유하지만 기능적으로는 동일한 2개 이상의 Kubernetes 배포를 목적으로 2개 이상의 유사한 배포 매니페스트를 생성할 수 있습니다.

B O S H 소개

백서 | 6

이름: mykubo-deployment 릴리스 : - 이름: kubo-release 버전: 0.0.5 - 이름: docker 버전: 28.0.1 - 이름: kubo-etcd 버전: 2 stemcells: - alias: trusty os: ubuntu-trusty 버전: latest instance_groups: - 이름: etcd instances: 2 network: alpha azs: [az1] jobs: alpha - 이름: etcd 릴리스: kubo-etcd properties: [ ] stemcell: trusty - 이름: master instances: 2 - 이름: worker instances: 3

BOSH 배포

매니페스트

CPI-AWS

BOSH A vpc 네트워크 이름 = alpha

etcd etcd 마스터

vSphere

마스터 마스터 마스터 마스터

CPI-vSphere

vSphere 포트 그룹 이름 = alpha

etcd etcd 마스터

vSphere

마스터 작업자 작업자 작업자

BOSH B

BOSH 배포 실행

mykubo -deployment

BOSH 배포 실행 mykubo -deployment

Page 7: 제공 - VMware · 예: 그림 2에서 배포를 정의하는 작업자는 배포 매니페스트 내에서 버전이 지정된 릴리스를 1개 이상 참조할 수 있습니다.

그림 4: BOSH 사용 사례: Kubo

2. 2일 차 운영: BOSH 수명주기 관리를 이용하면 손쉽게 모든 Kubernetes 배포를 정상 가동 상태로 유지할 수 있습니다.

–정상 상태 유지: BOSH에서 배포한 각 가상 머신 또는 인스턴스는 또한 BOSH와 상태에 대해 통신하는 에이전트를 배포합니다. Kubo 노드의 상태가 좋지 않을 경우, BOSH는 자동으로 복구를 시도하거나 문제가 발생한 노드를 재구축합니다. 따라서 가동 시간이 개선됩니다.

–가동 시간 증가: 제공된 서비스가 특정 가용성 영역의 물리적 장애로 인한 영향을 받지 않도록 하기 위해 릴리스 작업 인스턴스 유형마다 여러 가상 머신 또는 인스턴스가 가용성 영역에 분산되어 있을 수 있습니다. 가용성 영역은 vCenter 클러스터로 가용성 영역이 매핑되는 vSphere CPI와 같은 특정 CPI에서만 지원됩니다.

–패치 적용: BOSH는 버전이 지정된 릴리스를 사용하기 때문에, 작업자는 서비스의 중단이 전혀 혹은 거의 없이 Kubernetes Kubo 릴리스를 간편하게 업그레이드하고 이를 실행 중인 모든 배포에 적용할 수 있습니다. BOSH는 (1) 영구 디스크 분리, (2) 문제가 발생한 가상 머신 또는 인스턴스 재구축, (3) 영구 디스크 재연결을 통해 각 배포를 업데이트하고 상태를 유지합니다.

CPI-vSphere

BOSH

mykubo-deployment-2

작업자 1

etcd 1

마스터 1

작업자 2

etcd 2

가용성 영역 1 가용성 영역 2 가용성 영역 2

작업자 0

master- haproxy

0

마스터 0

etcd 0 BOSH

에이

전트

개발자 팀 B

개발자

mykubo-deployment-1

작업자 1

etcd 1

마스터 1

작업자 2

etcd 2

가용성 영역 1 가용성 영역 2 가용성 영역 3

작업자 0

master- haproxy

0

마스터 0

etcd 0 BOSH

이전

개발자 팀 A

개발자

상태 관리자

플랫폼 작업자

mykubo-deployment-2개발자 팀 B

mykubo-deployment-1개발자 팀 A

= 영구 디스크

백서 | 7

B O S H 소개

Page 8: 제공 - VMware · 예: 그림 2에서 배포를 정의하는 작업자는 배포 매니페스트 내에서 버전이 지정된 릴리스를 1개 이상 참조할 수 있습니다.

BOSH 배포BOSH 아키텍처

BOSH는 일반적으로 단일 가상 머신 또는 인스턴스로 배포됩니다. 이러한 가상 머신/인스턴스에는 BOSH를 통해 규모에 맞는 배포 관리를 실현하는 데 중요한 역할을 수행하는 다음과 같은 여러 구성 요소가 있습니다.

• NATS: BOSH의 다양한 서비스가 상호 작용할 수 있도록 지원하는 메시지 버스를 제공합니다.

• POSTGRESQL: BOSH는 모든 상태를 데이터베이스에 작성합니다. 일반적으로 이 데이터베이스는 단일 가상 머신 BOSH 배포 내부에 있으며 Postgres에서 제공합니다. 하지만 외부 데이터 소스를 사용하도록 이를 수정하여 BOSH 가상 머신을 재구축하고 데이터베이스에 다시 연결하여 지속적인 상태를 다시 로드할 수 있습니다.

• BLOBSTORE: BOSH에 업로드된 각 스템 셀 및 릴리스는 Blobstore에 저장됩니다. BOSH 배포는 기본적으로 내부 스토어(webdav)를 이용하지만 PostgreSQL 데이터베이스와 마찬가지로 외부화할 수 있습니다.

• 책임자: 작업자가 BOSH 배포를 생성 및 관리할 수 있도록 BOSH CLI가 상호작용하는 주요 API입니다.

• 상태 모니터링: BOSH에서 배포하는 각 가상 머신은 배포 매니페스트에 정의되어 있는 BOSH 릴리스와 관련하여 작업을 할당 및 배포하기 위해 통신할 수 있는 에이전트가 있어야 합니다. 또한 배포한 각 가상 머신 또는 인스턴스의 상태를 유지합니다. 에이전트는 중요한 사항을 BOSH에 보고하며, 가상 머신의 서비스에 결함이 발생하거나 에이전트와의 연결이 불가능한 경우 상태 모니터링에서 플러그인을 사용하여 서비스를 재시작하거나 가상 머신 또는 인스턴스를 재구축할 수 있습니다.

• CPI: CPI는 IaaS에 따라 다른 실행 가능한 바이너리로서 BOSH에서 이를 사용하여 배포 YAML에 정의된 IaaS와 상호 작용합니다.

• UAA: BOSH가 SAML 또는 LDAP 백엔드를 통해 작업자를 인증할 수 있도록 사용자 액세스 및 인증을 제공합니다.

• CREDHUB: 암호, 인증서, 인증 기관, SSH 키, RSA 키 및 임의 값(문자열 및 JSON blob)과 같은 자격 증명을 관리합니다. BOSH는 공개 인증서 및 키와 같은 배포를 위한 주요 자격 증명을 생성 및 저장하기 위해 CREDHUB을 활용합니다.

백서 | 8

B O S H 소개

그림 5: BOSH 아키텍처

BOSH 참조 자료BOSH에 관한 모든 참조 자료는 다음에서 찾을 수 있습니다. BOSH.io

BOSH

작업자 1

etcd 1

마스터 1

작업자 2

etcd 2

가용성 영역 1 가용성 영역 2 가용성 영역 3

작업자 0

마스터haproxy

0

마스터 0

etcd 0

vSphere에 Kubo 배포

NATS

POSTGRESQL

BLOBSTSORE

책임자

상태 모니터링

CPI

UAA

CREDHUB

BOSH Agent

Page 9: 제공 - VMware · 예: 그림 2에서 배포를 정의하는 작업자는 배포 매니페스트 내에서 버전이 지정된 릴리스를 1개 이상 참조할 수 있습니다.

쿡북: vSphere에 “Kubo” 배포 방법BOSH는 BOSH CLI를 사용하여 올바른 명령줄 인수를 전달하거나, BOSH 자체가 배포되는 방법을 정의하기 위해 추가 YAML 파일 내에 해당 인수를 가변 데이터로 저장하여 배포됩니다. 이 '쿡북' 섹션에서는 BOSH를 배포하기 위해 필요한 단계를 설명하고, 기본 Kubo 배포를 위한 가이드를 제공합니다.

사전 요구 사항:

• vSphere vCenter 6.x

• 배포를 위한 공간이 충분한 vSphere 데이터스토어 1개

• Kubo 배포를 위한 vCenter 리소스 풀 1개

BOSH 배포 단계(Mac OSX용): CLI를 위한 운영 체제별 설치 지침은 여기에 설명되어 있습니다.

BOSH CLI 얻기 • 이 쿡북은 BOSH CLI 버전 2를 사용합니다. 이는 Go 컴파일 바이너리이지만, 일부 운영 체제 종속성이 있습니다.

1. sudo wget -O /usr/local/bin/bosh https://s3.amazonaws.com/bosh-cli-artifacts/bosh-cli-2.0.28-darwin-amd64 && sudo chmod 755 /usr/local/bin/bosh

Mac 운영 체제 요구 사항(예: Ruby) 준비• 기타 운영 체제별 지침은 여기서 확인할 수 있습니다.

2. gem update --system 3. xcode-select --install 4. brew install openssl

BOSH 배포 저장소 복제를 위해 GIT 클라이언트 사용 • 이 쿡북은 사용자가 GIT 클라이언트를 이미 설치했다고 가정합니다. 이 저장소에는 BOSH 인스턴스를 배포하는 데 필요한 모든 요소가 포함되어 있습니다.

5. git clone https://github.com/cloudfoundry/bosh-deployment 6. cd bosh-deployment

BOSH 배포• 아래의 단일 CLI 명령은 BOSH 인스턴스를 배포합니다. -o 플래그는 단일 매니페스트를 구성하는

1개 이상의 YAML 파일입니다. -v 플래그는 각 YAML의 가변 마커에 할당하는 변수입니다. BOSH int(interpolate) 명령은 YAML 스텁 및 변수로 매니페스트를 구성합니다.

7. /usr/local/bin/bosh create-env bosh.yml \ --state=mystate.json \ --vars-store=mycreds.yml \ -o vsphere/cpi.yml \ -o uaa.yml \ -o misc/powerdns.yml \ -o credhub.yml \ -v director _ name=kubobosh \ -v internal _ cidr=[[CIDR-OF-NETWORK-FOR-BOSH-VM]] \ -v internal _ gw=[[GATEWAY-OF-NETWORK-FOR-BOSH-VM]] \ -v internal _ ip=[[IP-OF-NETWORK-FOR-BOSH-VM]] \ -v network _ name=[[VCENTER-PG-NAME-NETWORK-FOR-BOSH-VM]] \ -v vcenter _ dc=[[VCENTER-DC-NAME]] \ -v vcenter _ ds=[[VCENTER-DATASTORE-NAME]] \ -v vcenter _ ip=[[VCENTER-IP]] \

백서 | 9

B O S H 소개

Page 10: 제공 - VMware · 예: 그림 2에서 배포를 정의하는 작업자는 배포 매니페스트 내에서 버전이 지정된 릴리스를 1개 이상 참조할 수 있습니다.

-v vcenter _ user=[[VCENTER-USER]] \ -v vcenter _ password=[[VCENTER-PASSWD]] \ -v vcenter _ templates=kubobosh-templates \ -v vcenter _ vms=kubobosh-vms \ -v vcenter _ disks=kubobosh-disks \ -v vcenter _ cluster=[[VCENTER-CLUSTER]] \ -v dns _ recursor _ ip=[[YOUR-NETWORK-DNS]]

8. /usr/local/bin/bosh alias-env kubobosh -e [[IP-OF-NETWORK-FOR-BOSH-VM]] --ca-cert <(/usr/local/bin/bosh int ./mycreds.yml --path /director _ ssl/ca) 9. export BOSH _ CLIENT=admin 10. export BOSH _ CLIENT _ SECRET=$(/usr/local/bin/bosh int ./mycreds.yml --path /admin _ password) 11. /usr/local/bin/bosh -e kubobosh env

BOSH에 Kubo를 배포하는 단계

BOSH 배포 저장소 복제를 위해 GIT 클라이언트 사용• 이 쿡북은 사용자가 GIT 클라이언트를 이미 설치했다고 가정합니다. 이 저장소에는 BOSH 인스턴스를 통해 Kubo를 배포하는 데 필요한 모든 요소가 포함되어 있습니다.

1. git clone https://github.com/cloudfoundry-incubator/kubo-deployment 2. cd kubo-deployment

BOSH 클라우드 구성 매니페스트를 생성하고 이를 업데이트• 클라우드 구성 매니페스트는 각 CPI에만 해당되며, BOSH 구조(예: 가용성 영역)를 vSphere 구조에 매핑합니다. 배포 매니페스트는 클라우드 구성에서 구조를 참조합니다.

3. /usr/local/bin/bosh int configurations/vsphere/cloud-config.yml \ -o manifests/ops-files/k8s _ master _ static _ ip _ vsphere.yml \ -v director _ name=bosh \ -v internal _ cidr=[[CIDR-OF-NETWORK-FOR-KUBO-CAN-BE-SAME-AS-BOSH]] \ -v internal _ gw=[[GATEWAY-OF-NETWORK-FOR-KUBO-CAN-BE-SAME-AS-BOSH]] \ -v internal _ ip=[[DNS-OF-NETWORK-FOR-KUBO-CAN-BE-SAME-AS-BOSH]] \ -v kubernetes _ master _ host=[[IP-FOR-KUBO-MASTER-VIP]] \ -v reserved _ ips=[[IP-RANGE-YOU-DONT-WANT-BOSH-TO-USE ex: 192.168.100.10-192.168.100.20]] \ -v network _ name=[[VCENTER-PG-NAME-NETWORK-FOR-KUBO-CAN-BE-SAME-AS-BOSH]] \ -v deployments _ network=[[VCENTER-PG-NAME-NETWORK-FOR-KUBO-CAN-BE-SAME-AS-BOSH]] \ -v vcenter _ cluster=[[VCENTER-CLUSTER-FOR-KUBO]] \ -v vcenter _ rp=”[[VCENTER-RESOURCE-POOL-FOR-KUBO]]” > mycloudconfig.yml 4. bosh -e kubobosh update-cloud-config mycloudconfig.yml

백서 | 1 0

B O S H 소개

Page 11: 제공 - VMware · 예: 그림 2에서 배포를 정의하는 작업자는 배포 매니페스트 내에서 버전이 지정된 릴리스를 1개 이상 참조할 수 있습니다.

Kubo 배포 매니페스트 생성

5. /usr/local/bin/bosh int manifests/kubo.yml \ -o manifests/ops-files/master-haproxy-vsphere.yml \ -o manifests/ops-files/worker-haproxy.yml \ -v deployments _ network=[[VCENTER-PG-NAME-NETWORK-FOR-KUBO-CAN-BE-SAME-AS-BOSH]] \ -v kubo-admin-password=”mykubopasswd” \ -v kubelet-password=”mykubopasswd” \ -v kubernetes _ master _ port=443 \ -v kubernetes _ master _ host=[[IP-FOR-KUBO-MASTER-VIP]] \ -v deployment _ name=mykubocluster \ -v worker _ haproxy _ tcp _ frontend _ port=1234 \ -v worker _ haproxy _ tcp _ backend _ port=4231 > mykubo.yml

최신 BOSH 스템 셀 업로드

6. /usr/local/bin/bosh -e kubobosh upload-stemcell https://s3.amazonaws.com/bosh-core-stemcells/vsphere/bosh-stemcell-3421.11-vsphere-esxi-ubuntu-trusty-go _ agent.tgz

BOSH Kubo 릴리스 업로드

7. wget https://github.com/cloudfoundry-incubator/kubo-release/releases/download/v0.0.5/kubo-release-0.0.5.tgz 8. /usr/local/bin/bosh -e kubobosh upload-release kubo-release-0.0.5.tgz

Kubo 배포 :)

9. /usr/local/bin/bosh -e kubobosh -d mykubocluster deploy ~/kubo-deployment/mykubo.yml

이 문서의 최신 버전은 여기에서 찾을 수 있습니다.

VMware 소개 VMware는 IT와 개발자들이 비즈니스 대응력, 보안, 효율성을 높이기 위해 클라우드형 애플리케이션을 빌드, 실행, 관리할 수 있도록 지원하는 인프라 기술을 제공합니다.

www.vmware.com/solutions/cloudnative.html에서 더 많은 정보를 보실 수 있습니다.

트위터 링크: https://twitter.com/cloudnativeapps

블로그 링크: https://blogs.vmware.com/cloudnative/

B O S H 소개

백서 | 1 1

Page 12: 제공 - VMware · 예: 그림 2에서 배포를 정의하는 작업자는 배포 매니페스트 내에서 버전이 지정된 릴리스를 1개 이상 참조할 수 있습니다.

VMware, Inc. 3401 Hillview Avenue Palo Alto CA 94304 USA Tel 877-486-9273 Fax 650-427-5001 www.vmware.com 서울시 강남구 영동대로 517 아셈타워 13층 (우) 06164 e-메일: [email protected] © 2017-2018 VMware, Inc. All rights reserved. 본 제품은 미국 및 국제 저작권과 지적 재산권에 관한 법률의 보호를 받습니다. VMware 제품은 http://www.vmware.com/kr/support/patents 에 기술된 하나 이상의 특허로 보호받습니다. VMware는 미국 및/또는 기타 관할 지역에서 VMware, Inc.의 등록 상표 또는 상표입니다. 이 문서에 언급된 기타 명칭과 표시는 모두 해당 소유권자의 상표입니다. Item No: VMW_17Q3_WP_Introduction-to-BOSH_FINAL_080817_KR

08/17