Comments (8)
@MZC-CSC @CliffSynn @hippo-an (cc: @seokho-son )
[Image 목록 관련]
- 현재 Driver에서 fetch 해오는
Image Project List
는 다음과 같습니다.
- GCP
Image Project List
현황은 다음과 같습니다.
[제안]
- (1) 가급적
Image Project List
를 API로 획득 - (2) 부득이 Driver 내 List 유지시 목록 업데이트
from cb-spider.
- 넵, 아마도 될거라 생각합니다.
from cb-spider.
안녕하세요. @powerkimhub
말씀하신 내용과 관련하여 image list 를 조회하기 위한 api 를 호출시 사용되는 image project id list 를 조회할 수 있는 api 를 찾아보았지만 찾지 못하였습니다.
지원하는 모든 image project id list 를 확인할 수 있는 문서도 찾지 못했습니다.
일단 Google Cloud Support 에 문의를 남겨두었습니다.
문의에 대한 답변이 오면 답변 남겨드리도록 하겠습니다.
드라이버 내 image project id list 를 업데이트를 하는 방식에 대해서 조사한 내용에 대해 공유드리겠습니다.
image project id
리스트업을 위한 레퍼런스는 다음과 같습니다.
- 기존 spider driver 내 존재하는 image project list
- 말씀주신 GCP Image Project List 현황 페이지 및 해당 프로젝트 소스코드
- gcp image os 세부정보 공식 문서
- gcp image 공식 문서
- gcp deeplearning 공식 문서
- gcp gcloud public os image call
gcloud compute images list
다음 단계를 따라서 image project id
리스트를 추출했습니다.
- 각 레퍼런스에서 추출 가능한 image project id 를 리스트업
- 중복 제거 및 모든 리스트를 순회하여 gcloud command 호출
- 지원하지 않거나 에러를 발생하는 image project id 를 제거
참고로 호출한 gcloud command 는 다음과 같습니다.
gcloud compute images list --project "${item}" --no-standard-images
추출된 image project id list
는 다음과 같습니다.
## 기존 spider list 에 존재하는 목록
gce-uefi-images
centos-cloud
cos-cloud
coreos-cloud
debian-cloud
rhel-cloud
rhel-sap-cloud
suse-cloud
suse-sap-cloud
ubuntu-os-cloud
windows-cloud
windows-sql-cloud
## 추가 가능한 항목
almalinux-cloud
cloud-hpc-image-public
deeplearning-platform-release
fedora-cloud
fedora-coreos-cloud
freebsd-org-cloud-dev
ml-images
opensuse-cloud
rocky-linux-cloud
ubuntu-os-pro-cloud
suse-byos-cloud
- sdk를 이용한 호출이 아닌 gcloud command 를 이용해 호출하였기 때문에 코드 작업시 추가적인 테스트는 필요해보입니다.
from cb-spider.
- 분석 및 현황 공유 감사드립니다.
- 일단, Image List에
추가 가능한 항목
반영 부탁 드립니다. - 관련하여, 다음 3가지 API 점검 부탁 드립니다.
ListImage() ([]*ImageInfo, error) GetImage(imageIID IID) (ImageInfo, error) CheckWindowsImage(imageIID IID) (bool, error)
- 추가로, driver image list code 관련 부분에 현재 issue 링크 남겨 주시기 바랍니다.
from cb-spider.
@powerkimhub
안녕하세요. 로컬에서 해당 리스트 반영 및 api 점검 결과 입니다.
참고 - image 조회에서 사용되는
project id
란 Public Image 가 속한 Image Family 의 개념입니다.
ListImage() ([]*ImageInfo, error)
- GCP ImageHandler 에 project id 에 추가 가능한 항목을 반영한 후
- ImageList 조회 호출 시 문제 없이 호출이 가능합니다.
- 다만 deeplearning-platform-release 만 조회한 응답 결과는
zone: us-central1-a
기준 2만건이 넘으며 - 해당 project id (deeplearning-platform-release) 를 제외하고 조회한 결과는 약 16000 건으로
- 다른 모든 이미지 응답 결과의 수보다 더 많은 이미지를 조회합니다.
- 따라서 ImageList 조회 성능이 상당히 느려지며 (로컬 환경에서 api 요청부터 응답까지 160~180초 내외로 소요되며 렌더링까지 약 300초)
- adminweb 에서 렌더링 이후 사용이 거의 불가능합니다.
GetImage(imageIID IID) (ImageInfo, error), CheckWindowsImage(imageIID IID) (bool, error)
- GCP ImageHandler 에서 ImageList 를 조회 시
- ImageInfo 라는 struct 의 ImageIID 에 속한 NameId 와 SystemId 를 응답값의 image selflink 로 설정하게 됩니다.
"ImageIId": {
"NameId": "https://www.googleapis.com/compute/v1/projects/ubuntu-os-cloud/global/images/ubuntu-minimal-1804-bionic-v20191024",
"SystemId": "https://www.googleapis.com/compute/v1/projects/ubuntu-os-cloud/global/images/ubuntu-minimal-1804-bionic-v20191024"
},
- selflink 에 포함된
project id
(url 경로의 /projects 다음 인덱스로 위 예시의 경우 ubuntu-os-cloud입니다.) 와image name
(예시의 경우 ubuntu-minimal-1804-bionic-v20191024) 은 - GCP 의 이미지 단건 조회 시 반드시 필요한 값입니다.
- 적절한 format 으로 image IID 를 채우는 경우
- 오류 없이 이미지 정보 조회가 가능합니다.
- 추가적으로 GCP ImageHandler 내부의 두 메서드
FindImageInfoByName
과FindImageInfo
에서도 Image project id list 를 사용하지만,- 실제로는 해당 함수를 사용하는 곳은 테스트 코드에서만 사용하거나, 참조가 없는 것으로 확인했습니다.
리스트 추가는 바로 반영 가능하나, 사용 측면에서 고려가 필요해 보입니다.
from cb-spider.
GCP 콘솔에서는 해당 이미지를 활용한 VM 구동을 확인하였습니다.
from cb-spider.
- 해당 이미지는 Spider 현재 Image List로는 제공되고 있지 않지만(patch 예정),
- 다음 조건에서 VM 생성은 가능합니다.
[Image Name 형식]
-
해당 이미지 정보 호출 예시
curl -sX GET http://localhost:1024/spider/vmimage/https://www.googleapis.com/compute/v1/projects/deeplearning-platform-release/global/images/tf-2-15-cu121-v20240417-debian-11 -H 'Content-Type: application/json' -d '{"ConnectionName": "gcp-iowa-config"}' |json_pp
{ "GuestOS" : "tf-2-15-cu121-debian-11", "IId" : { "NameId" : "https://www.googleapis.com/compute/v1/projects/deeplearning-platform-release/global/images/tf-2-15-cu121-v20240417-debian-11", "SystemId" : "https://www.googleapis.com/compute/v1/projects/deeplearning-platform-release/global/images/tf-2-15-cu121-v20240417-debian-11" }, "KeyValueList" : [ { "Key" : "Name", "Value" : "tf-2-15-cu121-v20240417-debian-11" }, { "Key" : "SourceImage", "Value" : "" }, { "Key" : "SourceType", "Value" : "RAW" }, { "Key" : "SelfLink", "Value" : "https://www.googleapis.com/compute/v1/projects/deeplearning-platform-release/global/images/tf-2-15-cu121-v20240417-debian-11" }, { "Key" : "Family", "Value" : "tf-2-15-cu121-debian-11" }, { "Key" : "DiskSizeGb", "Value" : "50" } ], "Status" : "READY" }
-
해당 이미지로 VM 생성 예시
curl -sX POST http://localhost:1024/spider/vm -H 'Content-Type: application/json' -d '{
"ConnectionName": "gcp-iowa-config",
"ReqInfo": {
"Name": "deeplearning-vm-test",
"ImageType": "PublicImage",
"ImageName": "https://www.googleapis.com/compute/v1/projects/deeplearning-platform-release/global/images/tf-2-15-cu121-v20240417-debian-11",
"VMSpecName": "a2-highgpu-1g",
"VPCName": "vpc-01",
"SubnetName": "subnet-01",
"SecurityGroupNames": ["sg-01"],
"RootDiskType": "default",
"DataDiskNames": [],
"KeyPairName": "keypair-01",
"VMUserId": "Administrator",
"VMUserPasswd": "cloudbarista123^"
}
}'
from cb-spider.
@powerkimhub 확인 감사합니다.
https://www.googleapis.com/compute/v1/projects/deeplearning-platform-release/global/images/
tf-2-15-cu121-v20240417-debian-11
https://www.googleapis.com/compute/v1/projects/deeplearning-platform-release/global/images/
는 임의로 찾아서 붙여넣기 하면 되는 상황일까요? (tf-2-15-cu121-v20240417-debian-11
이미지 말고도 테스트해봐야 할 이미지가 더 있습니다.)
from cb-spider.
Related Issues (20)
- [Alibaba:PMKS] SLB resource is remained when deleting a cluster HOT 2
- [NHNCloud] hope to check current API endpoints HOT 1
- [Server:IID] Invalid default option for ID_TRANSFORM_MODE in the Spider Docker container HOT 2
- [AWS:Logger] Unnecessary Check
- [AdminWeb] Region/Zone Page Display Error
- [NLB:Server] Error Creating NLB without VM Settings
- [Alibaba:VM] Nil Pointer Access Error with Unsupported Instance Type HOT 1
- [Feature] Need API for Available Resources to Prevent VM or K8S Cluster Creation Failures HOT 1
- [All: Logging] Remove Print Statements and Check Log Level HOT 5
- [AWS:PMKS] Load balancer Remains after Cluster Deletion
- Changing domestic CSP naming pattern HOT 4
- Readme in English
- API that returns price list of the given spec list
- [Spider server] Abnormal Error messages occur when Disk Detech with NCP VPC driver HOT 2
- [NHNCloud] No GPU information in VM Spec HOT 3
- [NCP Classic] Config files need to be modified with the end of Hong Kong region cloud services. HOT 1
- [NCP VPC] Additional APIs and param.s should be applied so that the latest image/spec info can be used.
- [Server->IBM] Zone Info Fetch Error When ConnectionConfig is Not Used HOT 1
- [Azure:PMKS] Is it an error if the new autoscaling value is the same as the current autoscaling value?
- [Azure:PMKS] When availability zone is not supported(WestUS region), it failed to create a kubernetes cluster HOT 10
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from cb-spider.