Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

GCP PMKS 기능 구현 #875

Merged
merged 58 commits into from
Dec 16, 2022
Merged

GCP PMKS 기능 구현 #875

merged 58 commits into from
Dec 16, 2022

Conversation

dogfootman
Copy link
Contributor

특이사항

. GCP의 GKE 는 autopilot 와 standard 두 가지 모드가 있으며 PMKS는 standard 모드로 동작
. Cluster 생성 시 NodeGroup이 필요하며 NodeGroup이 정의되지 않으면 default-pool이라는 이름으로 생성되기 때문에 NodeGroup을 1개 이상 정의해야 함.
. k8s 버전은 gke에서 지원하는 버전이 별도로 존재 (1.23-gke 등) 하며 리전별로 지원하는 버전이 다름.
버전값이 없는 경우 해당리전에서 지원하는 기본값으로 설정 됨.
. Cluster의 TAG : cb-spider의 securitygroup은 복수개가 가능하므로 tag로 "cb-spider-pmks-securitygroup-" + index 형태로 저장되며
원칙은 CB-SPIDER:PMKS:SECURITYGROUP 이나, gcp tag는 소문자, 하이픈, 숫자의 63글자 이내의 제약조건으로 인해 소문자-하이픈으로 사용. cluster 정보에 저장
(gcp의 firewall rule(securityGroup) 에 target tag에 securityGroup의 nameId 를 set)
pmks 생성시 securityGroup의 IID에 해당하는 firewall rule 값들을 해당 node에 추가.
. autoscaling이 on 의 경우 min node, max node 가 반드시 필요.(off 일 때는 min, max 자체를 setting하지 않음)
off 에서 on으로 바꿀 때에도 min, max node count 를 전달해야 함.

@powerkimhub powerkimhub self-requested a review December 15, 2022 08:35
@powerkimhub
Copy link
Member

@dogfootman

. autoscaling이 on 의 경우 min node, max node 가 반드시 필요.(off 일 때는 min, max 자체를 setting하지 않음)
off 에서 on으로 바꿀 때에도 min, max node count 를 전달해야 함.

  • 관련하여,
  • 현재 SetNodeGroupAutoScaling()는 min, max가 존재하지 않는데,
  • Driver 내에서 자체 해결을 하신 건지 현황 문의 드립니다.

@MZC-CSC
Copy link
Contributor

MZC-CSC commented Dec 15, 2022

SetNodeGroupAutoScaling 은 bool param만 있기 때문에
on -> off 로 끄기만 가능합니다.
off -> on 일 때는 min 또는 max node값이 없다는 오류를 반환합니다.

ChangeNodeGroupScaling 에서는 우선 기존 nodeGroup 정보를 조회하고
받아오는 parameter에 따라 두 가지 API를 호출.
현재 Node를 변경(SetSize), AutoScaling의 설정변경(SetAutoScaling)
autoScaling -> SetAutoscaling ( Enabled, MinNodeCount, MaxNodeCount)
initNodeCount -> SetSize( desiredNodeCount)

case1 기존 autoScaling = on 일 때, min, max 변경하는 경우

  • min, max 둘 중 0보다 큰 값을 변경(autoScaling)
    case2 기존 autoScaling = off 일 때, min, max 변경하는 경우
  • autoScaling 을 on 으로 변경하고 min, max set.(autoScaling)
    case3 autoScaling on/off 여부와 상관없이 desiredNodeSize가 바뀌는 경우
  • NodePool의 setSize()라는 별도의 api를 호출
  • autoScaling on/off는 불가
  • autoScaling min,max가 바뀌는 경우는 case1, case2 를 먼저 수행하고 node size변경

로직에 보완할 점이 있으면 알려주시기 바랍니다.

@powerkimhub
Copy link
Member

@MZC-CSC

  • SetNodeGroupAutoScaling: off => on 경우

    • NodePool.NodePoolAutoscaling struct에는 MaxNodeCountMinNodeCount의 값을 포함하고 있습니다.
    • 먼저, NodePoolAutoscaling 정보를 얻은 후에 on/off만 설정하여 요청하는 방법을 고려 부탁 드립니다.
  • DesiredNodeSize와 MinNodeSize, MaxNodeSize 관련

    • 일단, 제안 주신 방법대로 마무리 부탁 드립니다.
    • 추후 전체 CSP 현황을 보고 재정리하도록 하겠습니다.
  • HisCall관련해서 function name 확인 부탁 드립니다.

    • ex) ChangeNodeGroupScaling() 내부에서 'SetNodeGroupAutoScaling()'로 설정

    • image

  • conf/store_conf.yaml 관련

    • NUTSDB가 default 환경입니다.
    • 시험 환경이 따라 올라 온거 같습니다^^

AWS EKS 인터페이스 오류 처리 / 현재 AccessInfo.Kubeconfig와 AddonsInfo는 미구현
hiscallInfo 에 method명 mismatch  보완 "ChangeNodeGroupScaling"
default storetype is NUTSDB
@powerkimhub powerkimhub merged commit d422de3 into cloud-barista:master Dec 16, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants