Open SungWoongz opened 2 months ago
@SungWoongz
@powerkimhub
원인
현재 Spider는
방안A : 2번의 방법과 같이 IID로 DB를 조회하여 targetzone이 있으면 해당 zone을 handler의 targetzone이나 vm Request객체에 설정하여 사용
방안B : startVM등의 function에서 IID가지고 targetzone을 조회하는 func이 필요
검토 바랍니다.
Azure Issue에서 다음과 같은 내용을 확인하였습니다.
VM을 생성할 때 사용자가 subnet을 설정하는 데, 이때 Subnet NameId만 입력하므로
NameId 값만 Driver에 전달되게 됩니다.
이때, 서버에서 ConnectionInfo.RegionInfo.TargetZone을 설정해서 내려 보내도록 하겠습니다.
ConnectionInfo.RegionInfo.TargetZone이 설정되어 있으면, TargetZone에 VM을 생성해주시고
설정이 안되어 있으면, 기존 처럼 ConnectionInfo.RegionInfo.Zone에 VM을 생성해주시면 될 것 같습니다.
위에서 제시한 방안A의 형태로 보여집니다.
제공시점 알려주신다면, 해당 방안으로 구현하겠습니다.
@SungWoongz
@powerkimhub
안녕하세요.
Target Zone을 설정하여 VM을 생성했을 때 Target Zone에 생성이 되었으며 콘솔 상에서 생성이 된 것을 확인했습니다.
그러나, spider상에서는 생성한 VM이 확인 되지 않아
GetVM()과 GetVMStatus()를 확인했고
vmHandler에 TargetZone이 설정되어 있지 않는 것을 확인했니다.
확인부탁드립니다.
또한,
googleapi: Error 400: Invalid value for field 'resource.ipCidrRange': '10.0.1.0/24 '. Must be a CIDR address range., invalid
@SungWoongz
[GetVM/GetVMStatus 관련]
Connection에 설정된 DefaultZone이 a일때, TargetZone(b)으로 VM을 생성 요청 후
에러 로그를 보면 다음과 같이 ~/us-central1-a/~
a zone에서 찾고 있습니다.
resources.(*GCPVMHandler).WaitForRun() - googleapi: Error 404: The resource 'projects/powerkimhub/zones/us-central1-a/instances/gcp-iowa-vm-iaw-csbf03bp70ip12qaflag' was not found, notFound
바로 위 글에 링크를 따라 가보시면, 현재 서버에서 TargetZone을 설정해서 내려 보내는 자원 및 API 목록이 있습니다.
TargetZone 정보 확인: GCP.VMHandler.GetVMStatus()에 다음과 같이 임시 코드 추가 후 TargetZone 확인
func (vmHandler *GCPVMHandler) GetVMStatus(vmID irs.IID) (irs.VMStatus, error) { // GCP의 ID는 uint64 이므로 GCP에서는 Name을 ID값으로 사용한다.
projectID := vmHandler.Credential.ProjectID
zone := vmHandler.Region.Zone
fmt.Printf("\n========== TargetZone: %s\n", vmHandler.Region.TargetZone)
=>
========== TargetZone: us-central1-b
추가로, WaitForRun()에서 다음부분에서 반복적인 ErrorLog를 출력하고 있습니다.
curStatus, errStatus := vmHandler.GetVMStatus(vmIID)
if errStatus != nil {
cblogger.Error(errStatus.Error())
}
CIDR 이슈는 별도 확인해보도록 하겠습니다.
@SungWoongz
- Region의 서로 다른 Zone에 같은 CIDR을 가진 subent 생성이 불가한데 확인 부탁드립니다.
- VPC(A zone)에 밑에 Subnet(A zone) 생성 후 같은 CIDR로 Subnet(B zone)에 생성하면 google api에서 다음과 같은 에러 코드를 반환합니다.
googleapi: Error 400: Invalid value for field 'resource.ipCidrRange': '10.0.1.0/24 '. Must be a CIDR address range., invalid
입력 CIDR 값에 10.0.1.0/24
뒤쪽에 space가 붙어 있습니다.
더 이슈인 것은 동일 zone에 동일 CIDR 값을 추가해도 에러를 반환하지 않고, 성공한 것으로 정상 반환 되고 있습니다.
GCP는 Subnet을 Regional로 관리하고 있기 때문에, Zone을 별도 설정할 수 없으니,
@powerkimhub
GCP는 VPC, SUBNET, SG가 Regional이고 VM 생성 시 targetzone을 받고 있지 않기 때문에 targetzone설정이 불가능 합니다.
issue