ktcloud

package
v0.8.17 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 17, 2024 License: Apache-2.0 Imports: 8 Imported by: 0

README

KT Cloud connection driver Build 및 CB-Spider에 적용 방법


# CB-Spider에 KT Cloud 연동 driver 적용 방법

​ O CB-Spider 코드가 clone된 상태에서 setup 파일 적용

$CBSPIDER_ROOT/ source setup.env

​ O Dynamic plugin mode로 CB-Spider build 실행

cd $CBSPIDER_ROOT

make dyna

  • CB-Spider Build 과정이 완료되면, $CBSPIDER_ROOT/bin/에 binary 파일로 'cb-spider-dyna' 가 생김


​ O CB-Spider server 구동(Dynamic plugin 방식, 1024 포트로 REST API Server 구동됨)

cd bin

./start-dyna.sh
  • CB-Spider server가 구동된 후, KT Cloud driver 등록 과정을 마친 후 사용
    (아래의 11.ktcloud-conn-config.sh 파일을 실행해서 등록 가능)


# CB-Spider에 KT Cloud driver 테스트 방법

​ O 위와 같은 방법으로 CB-Spider 서버가 구동된 상태에서, 아래 위치의 KT Cloud connection config 파일에 KT Cloud Credential 정보 기입 후 실행

$CBSPIDER_ROOT/api-runtime/rest-runtime/test/connect-config/ ./11.ktcloud-conn-config.sh


​ O AdminWeb 기능을 이용한 테스트


# KT Cloud driver 자체 test 파일을 이용한 기능 테스트

​ O CB-Spider 환경 파일 적용

$CBSPIDER_ROOT/ source setup.env

​ O 아래 위치의 config 파일에 KT Cloud Credential 정보 기입

$GOPATH/src/github.com/cloud-barista/ktcloud/ktcloud/main/config/config.yaml

​ O 아래의 위치에 있는 ~.sh 파일을 실행해서 KT Cloud driver 각 handler 세부 기능 테스트

$GOPATH/src/github.com/cloud-barista/ktcloud/ktcloud/main/


# KT Cloud Classic (G1/G2) 드라이버 이용시 참고 사항

​ O KT Cloud Classic 버전(G1/G2) CSP 인프라 서비스는 물리적 네트워크 기반으로 운영되므로, KT에서 VPC/Subnet 생성 등의 제어 기능 및 관련 API를 지원하지 않음.

  • 따라서, 본 driver를 통해 VPC 및 Subnet 관련 제어가 실행될때, VPC 및 Subnet 정보는 driver 자체에서 임의적으로 local에서 JSON 파일 형태로 관리됨.(VPC 및 Subnet 생성시 어떤 Name이든 가능)


​ O KT Cloud Classic 인프라 서비스는 VPC 및 Subnet 제어 기능을 제공하지 않으므로, 본 driver에서 지원하는 VPC와 Subnet 제어 기능은 CB-Spider common interface를 만족하기 위해 제공하는 임의의 VPC 및 Subnet을 위한 제어 기능임.

  • KT Cloud Classic 서비스 기반으로 VM 생성시 적용되는 private IP의 IPv4_CIDR은 KT Cloud Zone마다 다른 대역을 지원함.


​ O VM 생성을 위한 VMImage ID, VMSpec ID 결정 관련

  • 해당 zone에서 지원하는 VM Image(KT Cloud의 Template) 목록중 사용하고자 하는 운영체제(OS)에 대한 Image ID 값을 찾은 뒤, VM Spec 목록에서 추가 정보로 제공하는 'SupportingImage(Template)ID'에서 그 Image ID와 같은 VM Spec을 찾아 해당 Image ID를 지원하는 VMSpec ID를 사용해야함.
  • 위와 같이 해당 VMImage를 지원하는 VMSpec ID를 사용해야하는데, 그렇지 않은 경우 KT Cloud에서는 error message로 "general error"를 return함.


​ O Security Group 설정시 주의해야할 사항으로, 본 드라이버는 inbound rule만 지원하고, protocol별 rule이 중복되지 않아야함.

  • KT Cloud Classic(G1/G2) 인프라 서비스는 port forwarding rule, firewall rule 적용시 inbound rule만 지원함.
  • Security Group을 생성하고 VM 생성시 본 드라이버 내에서 그 Security Group의 rule을 VM에 매핑된 public IP 기준으로 port forwarding rule, firewall rule이 적용됨.
  • 이때 KT Cloud Classic(G1/G2)에서 inbound rule만 지원하므로, Security Group에 outbound rule을 설정해도 inbound rule만 적용됨.
  • 추가로 주의해야할 사항으로, 본 드라이버로 Security Group 설정시 protocol별 rule이 중복되지 않아야함.
    • 예를들어, 현재 버전의 드라이버를 기준으로, VM 생성 후 드라이버 내부적으로 Security Group 적용시에 TCP 22번 port를 open하는 rule을 적용하고, TCP 모든 port를 open하는 rule을 적용할 수 없음.


O 생성되는 VM의 root disk(volume) type 및 size (KT Cloud Classic(G1/G2) 기준)

  • VM 생성시, root disk type으로 'Seoul-M2' zone은 SSD type만 지원하고, 나머지 zone은 HDD type만 지원함.​
  • Root disk(volume) size는 default로 Linux 20G, Windows 50G로 지원됨.(향후 변경될 수 있음)


O 'VM 생성시', Data disk (추가 volume) 생성 방법

  • VM Spec 조회시, Spec 이름의 맨 뒤에 붙은 disk 크기가 기본(Root) disk volume과 추가 volume을 합한 크기임.
    • 본 드라이버를 통해 조회되는 VM Spec 예) 97359d1d-a7b1-49d9-b435-14608543f00b#097b63d7-e725-4db7-b4dd-a893b0c76cb0_disk100GB
    • 위의 예의 경우, Linux 계열에서는 기본 volume 20GB에 80GB의 추가 볼륨이 생성되어 총 100GB가 됨.
  • VM 생성시 원하는 총 disk 크기에 따라 Spec을 결정해서 입력하면됨.


O 일반적인 Data disk (추가 volume) 생성 방법

  • 본 드라이버에서 data disk 생성시, disk type은 'HDD'와 'SSD-Provisioned'를 지원함.
    • 참고) Zone별로 가용한 disk type이 다르므로, 본 드라이버에서는 현재 모든 zone에서 가용한 위의 두가지만 지원함.(향후 변경 가능)
  • Disk size 지정시, type별로 아래의 기준으로 지정해야함.


# KT Cloud Classic (G1/G2) 드라이버 개발시 참고 사항

​ O 생성되는 VM의 root disk(volume) type 정보

  • KT Cloud Volume 정보에서 root disk의 type 정보는 제공하지 않음.
    • 아래의 기준을 드라이버에 반영함.
      • Seoul M2 zone은 SSD type으로 root volume이 생성되고, 나머지 zone은 HDD type으로 생성됨.​


Documentation

Index

Constants

View Source
const (
	KOR_Seoul_M2_ZoneID string = "d7d0177e-6cda-404a-a46f-a5b356d2874e"
)

Variables

This section is empty.

Functions

This section is empty.

Types

type KtCloudDriver

type KtCloudDriver struct {
}

func (*KtCloudDriver) ConnectCloud

func (driver *KtCloudDriver) ConnectCloud(connectionInfo idrv.ConnectionInfo) (icon.CloudConnection, error)

func (KtCloudDriver) GetDriverCapability

func (KtCloudDriver) GetDriverCapability() idrv.DriverCapabilityInfo

func (KtCloudDriver) GetDriverVersion

func (KtCloudDriver) GetDriverVersion() string

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL