cb-spider icon indicating copy to clipboard operation
cb-spider copied to clipboard

[AWS:Cluster] Change the subnet configuration to 'Enable auto-assign public ip address'

Open powerkimhub opened this issue 10 months ago • 5 comments

cc) @sykim-etri


[개요]

  • AWS K8S Cluster의 경우,
    • Cluster 생성시 서로 다른 Zone에 생성된 2개 이상의 Subnet의 입력이 필요하며,
    • Spider Connection의 경우, 고정된 단일 Zone만 제공으로 AWS Cluster 생성이 불가했었습니다.
  • 최신 버전은 다음 Zone-Level 제어 반영으로 인하여 AWS Cluster 생성 시험이 가능하게 되었습니다.
    • AWS Driver: https://github.com/cloud-barista/cb-spider/pull/1135
    • Serve/AdminWeb: https://github.com/cloud-barista/cb-spider/issues/1067#issuecomment-2032196281

[개선 요청]

  • 현재 Cluster 생성은 성공하지만, NodeGroup을 배포하게 되면,
  • subnet이 auto-assign public IP 설정이 필요하다고 Fail이 발생 합니다.
  • 관련하여 추가 확인 및 특별한 이슈가 없을 경우 subnet 생성시 auto-assign public IP 옵션으로 반영 부탁 드립니다.
  • 현재는 AWS Console에서 다음과 같이 수동 설정하면 잘 배포가 됩니다.
  • 참고
    • image

[ASW 통합 시험 현황 및 점검 필요]

  • AWS Cluster 통합 시험 과정에서,
  • Kubeconfig 제공 받기 위해서 Driver에 다음과 같이 임시 코드 블록 추가 반영 후 통합 시험을 진행하였습니다.
    • https://github.com/cloud-barista/cb-spider/commit/02d3dfb594cb24e1e2966335bf58472978921d05
    • 관련하여, 확인 및 점검 또는 필요시 개선 부탁 드립니다.
  • 일단, 현재 반영 버전으로 제공되는 Kubeconfig를 활용하여 다음과 같은 시험은 완료한 상태입니다.
  • Third Party 도구(OpenLens) 활용한 Cluster 원격 연동/제어
    • Cluster 연동 및 노드 모니터링
      • image

    • Nginx 배포 및 접속 확인
    • image
  • ※ 사실, OpenLens의 경우에는 순수하게 Kubeconfig로만 접속하는 상황은 아닙니다.

    • 내부 형상은 정확히 파악이 안되었지만,
    • OpenLens는 AWS Cluster 접속을 위해서는 aws cli의 사전 설치가 필요하고,
    • 뿐만 아니라 aws configure 설정(Access Key, Secret Access Key)도 필요합니다.
    • 그 이후에 Kubeconfig를 활용하여 접속할 수 있습니다.
    • aws cli를 함께 사용한 연동 방법이 정석인지 어떤지는 아직 잘 모르겠네요.
    • Cluster 보안을 생각한다면, 필요한 거 같기도 하고...
    • 혹시, 관련 사항 아시는 부분이 있다면 공유 부탁 드립니다.

powerkimhub avatar Apr 02 '24 15:04 powerkimhub

  • OpenLens는 AWS Cluster 접속을 위해서는 aws cli의 사전 설치가 필요하고,
  • 뿐만 아니라 aws configure 설정(Access Key, Secret Access Key)도 필요합니다.
  • 그 이후에 Kubeconfig를 활용하여 접속할 수 있습니다.
  • aws cli를 함께 사용한 연동 방법이 정석인지 어떤지는 아직 잘 모르겠네요.
  • Cluster 보안을 생각한다면, 필요한 거 같기도 하고...
  • 혹시, 관련 사항 아시는 부분이 있다면 공유 부탁 드립니다.
  • 예전에 살짝 공유드렸던 GCP의 client-go credential plugins와 동일한 방식으로 파악됩니다.

    • 쿠버네티스 인증 (client-go credential plugins 방식): link
    • GKE auth plugin 변경 안내 : link
  • 관련 문서들을 대략 살펴보면 GCP와 AWS에서는 OIDC(OpenID Connect) 방식의 인증 등도 지원하는 것으로 보이고, 타 CSP의 지원 방식인 X509 인증 방식(?) 지원 여부에 대해서는 명확하게 확인되지 않긴 하지만 지원하지 않는 것으로 추측됩니다.

    • GKE 제공 인증 방식: link
    • AWS 제공 인증 방식: link

sykim-etri avatar Apr 30 '24 02:04 sykim-etri

@sykim-etri


  • 정보 공유 캄사 드립니다.
  • 현재, 제 생각으로는 Spider 제공 정보를 활용하여
  • 다음 2가지 방법으로 연동/제어 가능하다면 크게 문제는 없을 것 같습니다.
    • (1) kubectl
    • (2) OpenLens

powerkimhub avatar Apr 30 '24 02:04 powerkimhub

[Plan] from slack

image

image

image

powerkimhub avatar May 30 '24 12:05 powerkimhub

  • [1] 임시 반영
    • https://github.com/cloud-barista/cb-spider/pull/1206
    • 향후, auto-assign public IP 설정 영향 및 해제 시점 등 고려 필요

powerkimhub avatar May 30 '24 12:05 powerkimhub

@MZC-CSC @raccoon-mh @sykim-etri

  • [2] 2개 Cluster 생성 후 Spider가 제공하는 각 Cluster의 Kubeconfig 활용한 동작 시험 완료

  • 시험 시나리오(with AdminWeb)

    • (1) VPC 및 VPC 내에 서로 다른 zone에 subnet을 1개씩 총 2개 생성
    • (2) SecurityGroup 생성
    • (3) 생성한 정보를 이용하여 Cluster 생성 요청
    • (4) Cluster ACTIVE 상태가 되면, NodeGroup 추가
    • (5) Cluster ACTIVE 상태가 되면, AdminWeb에서 Kubeconfig를 제공하며, OpenLens에 kubeconfig 등록
    • (6) OpenLens/Helm 통해 K8S에 kube-prometheus 설치 => Cluster 모니터링 정보 제공 확인
    • (7) OpenLens/Helm 통해 K8S에 nginx 설치 => nginx default page 확인
    • (8) 동일 VPC/Subnet 2개 이용해서 신규 Cluster 및 노드그룹 추가 후 위 시험 반복
  • OpenLens: spider-cluster-01 연동 화면

    • image
  • OpenLens: spider-cluster-02 연동 화면

    • image

powerkimhub avatar May 30 '24 13:05 powerkimhub