ABCDEFGHIJKLMNOPQRSTUVWXYZAAABACADAE
1
2
* 관련 규격:
https://github.com/cloud-barista/cb-spider/wiki/Provider-Managed-Kubernetes-and-Driver-API
3
* 관련 이슈:
https://github.com/cloud-barista/cb-spider/issues/716
4
※ CSP별 업그레이드 방식 현황 참고: #1130* AP 예시: https://1.2.3.4:6443
(Public IP 또는 DNS)
2024/09/10 현황
5
CSP기본 기능 개발/통합시험 현황
(CRUD)
NodeGroup 추가 방법
('NodeGroup 추가 방법 및 이슈 현황' sheet 참고)
Image 선택 가능 여부RootDisk 선택 가능 여부업그레이드 제약 사항Role 추가 필요시 추가 가이드CNI/CSI 현황기타 이슈PMKS AccessPoint 제공 방법
(API 가능 여부 중심 확인)
PMKS Kubeconfig 제공 방법
(API 가능 여부 중심 확인)
AdminWeb
활용 가능 여부
시험 Region
6
AWSO / O * 서로 다른 Zone의 2개 이상의 subnet 필요
* Cluster 먼저 생성 후 NodeGroup 추가
* 제공되는 이미지(pre-built optimized images)중 선택 가능

o EKS 최적화 Amazon Linux AMI목록

- https://docs.aws.amazon.com/eks/latest/userguide/eks-optimized-ami.html

o 26/02/11 GPU 지원 위한 임시 방안 참고
- https://github.com/cloud-barista/cb-spider/pull/1651#issuecomment-3882778756
* Type 설정 불가
* Size 설정 가능
* 사전에 Role이 생성되어 있어야 함.
o Cluster: cloud-barista-spider-eks-cluster-role
o NodeGroup: cloud-barista-spider-eks-nodegroup-role

* Role 관련 AWS 문서

o Amazon EKS 클러스터 IAM 역할
- https://docs.aws.amazon.com/eks/latest/userguide/service_IAM_role.html#create-service-role

o Amazon EKS 노드 IAM 역할 생성 - cloud-barista-spider-eks-nodegroup-role
- https://docs.aws.amazon.com/eks/latest/userguide/create-node-role.html
- EBS CSI 활용을 위해 cloud-barista-spider-eks-nodegroup-role 역할에 AmazonEBSCSIDriverPolicy 추가
- https://docs.aws.amazon.com/ko_kr/eks/latest/userguide/ebs-csi.html#csi-iam-role
- (참고) https://aws.amazon.com/ko/blogs/storage/simplifying-amazon-ebs-volume-migration-and-modification-using-the-ebs-csi-driver/
o CNI (add-ons 방식으로 지원)
- VPC CNI

o CSI (add-ons 방식으로 지원)
- EBS CSI
- EFS CSI

o 기타 (add-ons 방식으로 지원)
- 목록: Available Amazone EKS add-ons

o 관련
- #1326
- #1487 (EBS CSI, Pod Identity Agent 자동 설치)
* 23/08/31
- Cluster 생성 시 최소 2개의 서로다른 AZ의 Subnet을 요구함
- Spider: Zone까지 Connection 설정으로 현재 생성 불가
=> 24/04/03: Zone-Level Control 반영으로 해결
=> 24/05/30: OpenLens 연동 및 PoD 동작 시험 완료 (#1141)

* API에서 사용된 AMI ID 조회 안됨 (AMI Name만 조회됨)
- NodeGroupList.ImageIID.SystemId 값 리턴 불가

* RootDiskType 조회 안됨

* AutoScaling 설정 변경 후 장시간 이전 설정 값으로 조회됨.
API 정보 활용한 kubeconfig 생성* 26/03/09
- exec 플러그인으로 IAM 기반 단기 토큰 받아 쓰는 형태로 지원 (aws-sdk-go)
- CloudNative (aws-cli) 방식으로도 쓸수 있도록 개선 예정 (cb-spider O / cb-tumblebug X)


* kubeconfig 관련 직접 얻는 API 없음
=> 24/04/03: API로 얻은 정보 활용으로 생성은 가능
(
https://github.com/cloud-barista/cb-spider/commit/02d3dfb594cb24e1e2966335bf58472978921d05)

[대안]
"$ aws eks update-kubeconfig --region 리전 --name 클러스터" 실행
=> "/home/ec2-user/.kube/config" 파일 생성됨.
*
참고: https://docs.aws.amazon.com/eks/latest/userguide/create-kubeconfig.html

* 클러스터 접근방법: aws eks update-kubeconfig로 로컬에서 kubeconfig를 생성하고, exec 플러그인(aws eks get-token 또는 aws-iam-authenticator)으로 IAM 기반 단기 토큰을 받아 쓰는 형태
Ous-east-2
7
AzureO / O * Cluster 생성 시 NodeGroup 1개 이상 추가 필요 * 설정 불가 * Type 설정 불가
* Size 설정 가능
* az cli 이용한 Role 추가 가이드
1. az login (관리자 계정)
$ az login -u {username} -p {password}
2. Active Subscription Set
$ az account set --subscription {subscription_id}
3. Get service principal Id
$ az ad sp list --filter "appId eq '{client_id}'" --query [0].id
=> "here-serviceprincipal_Id" <= serviceprincipal_Id 출력
4. Create Role Assignment 
$ az role assignment create --role "Owner" --assignee {serviceprincipal_Id} --scope "/subscriptions/{subscription_id}"
* 25/04/21
- HTTPApplicationRouting add-on 사용 불가 이슈 (
#1497)
=> Azure가 해당 add-on을 deprecated 처리
- (수정완료) 공식 후속 방식 WepAppRouting add-on 으로 교체
- 26/03/19 현재: WepAppRouting add-on 생성/삭제 작업 제거 예정 (
#1673)
=> 불필요한 것으로 판단

* 23/12/11
- Cluster Name 길이 제약 (https://aka.ms/aks-naming-rules)
: 80 이하만 허용되며, Spider가 축약 20자의 Postfix를 붙이고, MC_ 이름도 자동 생성되므로 적절한 길이 제한 필요
- NodeGroup 관련 이름 제약
: 소문자만 가능, Linux는 12자 이하, Window는 8자 이하 가능
- Node Group 타입 관련
: System Mode용 Pool만 생성되고 있으며, User Mode Pool 생성도 고려 필요
- 현재 기본 K8S 버전은 1.27.7임. 1.25.11은 아직 적용 가능
- 24/04/04: Version 1.25.11 is not supported in this region
=> AdminWeb: 1.28.5 default 설정, but Cluster 생성 실패(Driver Timeout:약 20분)
. Console 생성시: 약15분 소요

* 23/08/31
- CSP가 내부 생성한 RS Group 내부에 SecurityGroup 자동 생성 및 관리
. 현재 자동 생성된 CSP ID를 NameID(형식:#+CSPID)로 반환
- 기존 버전 1.22.11 expired 됨: 1.25.11로 변경
* Cluster 생성시 별도의 Resource Group 생성
=> Resource Group 간 자원 검색 권한 필요

* 22(?)/11/18 현재: NodeGroup Name 제약
: 소문자, 12자 이하, '-' 사용 불가
: 조만간 개선 예정

* 22(?)/11/18 현재: 일부 자원 NameId 및 Node 정보 제공 안됨
: 조만간 개선 예정
API 제공API 제공O* 오류 (2024/07/18)
- westus (AvailabilityZoneNotSupported)
- northcentralus (AvailabilityZoneNotSupported)
- japanwest (PreconditionFailed)
- australiasoutheast (AvailabilityZoneNotSupported)
- westcentralus (AvailabilityZoneNotSupported)
- canadaeast (AvailabilityZoneNotSupported)
- australiacentral (AvailabilityZoneNotSupported)
- ukwest (AvailabilityZoneNotSupported)
- koreasouth (AvailabilityZoneNotSupported)
- southindia (AvailabilityZoneNotSupported)
- westindia (K8s 지원X)
8
GCPO / O* Cluster 생성 시 NodeGroup 1개 이상 추가 필요 (관련 논의)
* GKE에서 별도 정의한 이미지 설정가능 * Size 설정 가능
* Type 설정 가능
pd-standard (default)
pd-ssd
pd-balanced
- 별도의 Role 설정 없음.o CNI (자동설치)
- konnectivity-agent, konnectivity-agent-autoscaler

o CSI (자동설치)
- pdcsi-node

o 기타 (자동설치)
- fluentbit-gke, gke-metrics, kube-dns, kube-dns-autoscaler, kube-proxy-gke,
event-exporter, gmp-system/{gmp-operator, collector}, l7-default-backend, metrics-server
* AutoScaling 설정변경 (현재설정으로는 끄기만 가능)
- on -> off : SetNodeGroupAutoScaling 으로 설정가능
- off -> on : max, min 값 필요
- (24/09/11) 임시 대응으로 off->on시 ChangeNodeGroupAutoscaleSize API를 사용하도록 안내(#1329). 추후 SetNodeGroupAutoScaling()와 ChangeNodeGroupAutoscaleSize() 통합 등 검토
API 제공 ( Ref )* 26/03/09
- exec 플러그인으로 IAM 기반 단기 토큰 받아 쓰는 형태로 지원 (Google Cloud Client Libraries for Go)
- CloudNative 방식으로도 쓸수 있도록 개선 예정 (cb-spider O / cb-tumblebug X)

* kubeconfig 관련 직접 얻는 API 없음
=> 24/09/10: API로 얻은 정보 활용으로 생성은 가능
- 반영 코드 참고:
#1328
- 필수 바이너리 설치 방법 등:
install plugin

[대안]
"$ gcloud container clusters get-credentials "클러스터 이름" --region "해당 리전/존 이름" 실행
=> "$HOME/.kube/config" 파일 생성됨.
* 참고:
클러스터 정보 저장

* 클러스터 접근방법: GKE kubeconfig는 바로 쓸 토큰이 아니라 gcloud를 호출해 토큰을 받아오는 방식이라, gcloud 로그인과 권한 설정이 선행되어야 kubectl 클러스터에 정상 접속·인증(그리고 필요 시 인가) 가능
* 정상 동작
39개 리전

* 오류
africa-south1 (addnodegroup unavailable)
9
AlibabaO / O* Cluster 먼저 생성 후 NodeGroup 추가

o 24/03/14
- API상 Cluster 생성시 NodeGroup 설정을 지원하지만 비동기 호출 처리를 위해 Cluster 생성 완료 후 NodeGroup 추가만 지원
* Public Image가 존재 (but Image ID is out-dated)
- https://www.alibabacloud.com/help/en/ack/ack-managed-and-ack-dedicated/user-guide/overview-of-os-images
- 확인된 Public Image: aliyun_3_9_x64_20G_alibase_20231219.vhd

* 이미지 미지정(또는 default)시 Alibaba Cloud Linux 2.1903이 자동 선택되나 Expired 상태로 표기됨

* 이미지 변경시 Alicloud Image Builder 활용 필요할 것으로 파악
- https://www.alibabacloud.com/help/en/ack/ack-managed-and-ack-dedicated/user-guide/create-custom-images?spm=a2c63.p38356.0.0.4ddc847fkhOkTp
* 노드 그룹이 1개 이상 있어야 업그레이드 가능 (at beijing region)
- kube-system/metrics-server의 MissingEndpoints 에러로 인해 업그레이드 불가
- `kubectl -n kube-system get apiservices |grep -i False`
[2025/01/03]
- 다음 권한 이슈/설정 참고
o CNI (자동설치)
- Flannel, Terway 중 선택 가능하며, 현재 Flannel 지원

o CSI (자동설치)
- csi-plugin v1.28.5-7785921-aliyun 자동 설치 (by CSP)
- storageclass가 자동 생성되어 있으나 해당 리전에서 지원하는 타입으로 PVC를 생성해야 함
. 제공 storageclass: alicloud-disk-{efficiency,ssd,essd,topology-alltype}
* 25/04/21
- node pool instance 생성 오류 (
#1492)
=> 리전/존마다 다른 RootDiskType 지원 여부, ImageId / KeyPair 매핑 버그로 인해 발생
=> (수정완료) 사전 검증 로직 추가 및 버그 수정으로 해결


* 24/03/18
- 노드그룹 존재 유무와 상관없이 클러스터 삭제 가능

* 24/01/26
- 노드그룹 추가시 이미지 설정시 오류 발생 -> 사용자 설정값 적용 불가 안내로 처리 -> 적용 가능한 이미지가 별도로 존재함
- (수정완료) 클러스터의 해당 VPC에 NAT Gateway가 없는 경우 클러스터에서 인터넷 접근 불가 (#902)

* 23/08/31
- Cluster 생성 요청시 RootDiskType 확인 필요
. 베이징: cloud_essd 지원안함(cloud_ssd 가능)
->(24/02/23) beijing에서는 cloud-essd 사용 가능하며 qingdao에서 사용 불가
->(26/05/06) disktype은 spec에 의존적임(ecs.c9i.large:cloud-essd 가능, cloud-ssd는 불가능))
- (수정완료) App(Pod)의 외부 배포시 Pending 걸림 (#902 동일)
. Console: Application-Helm은 정상 배포
. docker.io 이미지를 못 당겨 오는 듯함
=> 추가 분석 필요 (#902 해결)

* Cluster 생성이 오래 걸림: 약 10 분
- Cluster Active 상태일때, NodeGroup 추가 가능

* DesiredSize 설정 불가 (설정해도, '-1'로 반환)
API 제공 ( Ref )
kubeconfig 조회 API 제공 ( Ref )
O* 정상 동작
ap-northeast-2
ap-northeast-1
ap-southeast-1
ap-southeast-3
ap-southeast-5
us-west-1
us-east-1
eu-central-1
eu-west-1
cn-beijing
cn-hongkong
cn-shanghai
cn-huhehaote
cn-heyuan
cn-wulanchabu
cn-guangzhou

* 오류
me-east-1(ServiceUnavailable)
cn-zhangjiakou(zone c SLB 미지원)
cn-hangzhou(zone k SLB 미지원)
cn-shenzhen(zone f SLB 미지원)
cn-chengdu(zone b SLB 미지원)
ap-south-1(ServiceUnavailable)
ap-southeast-2(ServiceUnavailable)
10
TencentO / O* Cluster 먼저 생성 후 NodeGroup 추가* SLA 등을 이유로 Public Image로 설정 권장
- https://www.tencentcloud.com/document/product/457/46750
* 설정 가능
* 가능 타입
CLOUD_BASIC
CLOUD_PREMIUM
CLOUD_BSSD
CLOUD_SSD
CLOUD_HSSD
CLOUD_TSSD
* 노드 그룹 없이 업그레이드 가능o 서비스 접근 허용 롤 생성 (2024/09/30)
- TKE_QCSRole 허용 (클러스터 접근 권한)
- AS_QCRole 허용 (노드 추가 권한)
- 콘솔 기반 가이드
* 24/03/18
- 노드그룹이 존재하는 경우 클러스터 삭제 에러. 클러스터 삭제를 위해서는 노드그룹 삭제 선행 필요

* 24/01/15
- (수정완료) 1.24.4, 1.26.1 버전 생성 요청시 "InternalError.UnexpectedInternal" 에러 발생 (#1011)
- (대응완료. 재현불가) RemoveNodeGroup() 호출시 index out of range [0] 에러 (#1012)
- 비동기 호출 에러 발생시 대응 불가 (#1013)
API 제공 ( Ref )
kubeconfig 조회 API 제공 ( Ref )O
11
IBMO / O* Cluster 생성 시 NodeGroup 1개 이상 추가 필요 * 설정 불가 * Type 설정 불가
* Size 설정 불가능(Flavor Size로 고정)
* Autoscaling: Addon/ConfigMap으로 Driver 지원
- PoC 시험 결과: Memo 참고
- DesiredSize 설정 불가(Driver: '-1'로 반환)
- Version에 따라 Addon 버전이 다름

* 생성 소요 시간: 약 1Hour => 약 40분 소요(2025.10) => 약 20여분 (2026.05.08)

----------- 이하 세부 내용 참고: PR #873
[특이사항]

IBM Kubernetes cluster는 Node Group의 오토스케일링을 위해 오토스케일러 addon을 설치하고 해당 addon의 ConfigMap을 수정하여 설정을 변경합니다. 따라서 Node Group의 오토스케일링 설정을 변경하는 기능들은 client-go 라이브러리를 사용하여 구현하였습니다.
오토스케일러 addon은 버전에 따라 지원할 수 있는 Kubernetes 버전이 상이합니다. 따라서 클러스터 업그레이드를 진행하는 경우, 오토스케일러 addon 버전이 변경될 수 있습니다.
필요에 의해 클러스터에 태그를 추가하였지만, IBM 태그 규칙에 부합하지 않아 태그 명명규칙을 적용하지 못하였습니다. IBM 태그 규칙에 따르면 '#' 사용 불가, ':'는 한개만 사용 가능하여 부득이하게 다른 방법으로 태그명을 결정하였습니다.
IBM Kubernetes cluster를 생성하면 생성이 완료될 때 까지 약 한시간 정도의 시간이 필요합니다. 대부분의 시간은 Worker node deploy에 소요됩니다.
[Async 관련 공유 사항]

CreateCluster
클러스터 생성 API 호출 이후, 1) Node Group 추가, 2) 보안 그룹 규칙 추가, 3) 오토스케일링 addon 설치를 비동기적으로 백그라운드에서 수행합니다. 각 백그라운드 작업 수행 중 에러가 발생하면, 클러스터를 삭제합니다.

UpgradeCluster: 약 25분 소요(2025.10)
클러스터 Master 업그레이드 API 호출 이후, 1) Worker 노드 업그레이드, 2) 오토스케일러 addon 업그레이드를 비동기적으로 백그라운드에서 수행합니다. 클러스터 다운그레이드는 지원되지 않아 해당 기능에는 롤백 기능이 구현되어있지 않습니다.
이외의 다른 기능들은 순차적으로 API를 호출하며, API 호출 결과를 통해 최종 결과를 생성하여 반환합니다.
API 제공 ( Ref )kubeconfig 조회 API 제공 ( Ref )
12
13
NHN- 기본기능: O
- LB 자동생성/자동삭제: O
- 통합시험: O
* Cluster 생성 시 NodeGroup 1개 필요
(첫번째 노드그룹이름은 default-worker로 고정)

* Cluster 생성 후에도 추가 가능
(최대 3개까지 허용)
o 24/10/07
* 콘솔에서 이미지 UUID 확인 불가에 따라 아래와 같이 처리
- 공백이나 default 입력시 Ubuntu Server 22를 가진 이미지로 자동 선택(hardcoding)
- Invalid UUID 입력시 가능한 UUID 목록 출력

o 24/04/20
* UUID 값 변경 (API 가이드 미반영 상태)
- 기존 UUID 활용시 Internal Server Error 리턴 -> 개선됨

o 24/01/30
* 이미지는 다음 중에서만 설정 가능
(리전별 UUID값이 상이하며, 설정은 UUID값으로)
- CentOS 7.9 - Container (2023.11.21)
- Debian 11.8 Bullseye - Container (2023.11.21)
- Rocky Linux 8.8 - Container (2023.11.21)
- Ubuntu Server 20.04.6 LTS - Container (2023.11.21)
- Ubuntu Server 22.04.3 LTS - Container (2023.11.21)
* 설정 가능
* 가능 타입
General HDD
General SSD

o 24/04
- (CSP 제약) 클러스터 업그레이드시 마스터/워커 노드그룹 단위 업그레이드만 가능하며 동시 업그레이드 미지원
=> 순차업그레이드로 적용(관련 #1129)
o CNI
- 1.25.4, 1.26.3: Flannel, Calico 중 선택
- 1.27.3, 1.28.3: Calico만 지원

o CSI
- cinder-csi-plugin v1.27.101 자동 설치 (by CSP)
: storageclass 생성은 관리자 역할
- https://docs.nhncloud.com/ko/Container/NKS/ko/user-guide/#_70
o 24/04
- (CSP 제약) 첫번째 노드그룹 이름은 default-worker로 고정 생성됨 (#867)
- (CSP 제약) 프로젝트당 클러스터 생성 개수 제한 존재 (기본 3개)
- (CSP 제약) 클러스터 업그레이드시 마스터/워커 노드그룹 단위 업그레이드만 가능하며 동시 업그레이드 미지원 (#1129)
- (CSP 제약) 현재 판교, 평촌만 NKS 지원
- (CSP 제약) 인터넷 게이트웨이가 연결된 VPC에서만 Public K8s 엔드포인트 지정 가능(인터넷 게이트웨어 제어 API 미제공하므로 생성 및 연결 절차 수행 필요)
- (수정완료) 신규 API 지원 (SDK #34, #35, #36)

o 24/02/14
- (수정완료) 클러스터 생성 실패. nhncloud-sdk-go 기반 재개발 필요 (#1030)
- (수정완료) VMSpecName 처리 수정 필요 (#1032)
- (임시조치) Security Group 자동 생성에 따른 드라이버 설계 재검토 (#1065): NameId를 #SystemId로 응답함.

o Unknown
- (수정완료) #866
- (처리완료) #867
- (수정완료) AccessPoint 추가 작업 필요
API 제공 ( Ref )

API 엔드포인트는 Public으로 생성 지원
(Private/Public 선택 가능)
kubeconfig 조회 API 제공 ( Ref )O정상 동작:
KR1(판교)
KR2(평촌)
14
NCP개발 마무리 중* 서로 다른 Zone의 subnet 선택 불가
* Cluster 생성 시 NodeGroup 1개 필요
* 제공되는 이미지 중 선택 가능o CNI
- cilium 만 지원
o 24/01/24
- Subnet for LB Private, Subnet for LB Public, Subnet for NAT G/W, NAT GW 임의 생성 및 관리 필요
(#1021)
o 25/09/04
- (CSP 제약) Cluster 생성 시 서로 다른 AZ의 Subnet 선택 불가
* kubeconfig 관련 직접 얻는 API 없음Okr-KR-1
15
KT
((D platform))
추후 지원
(Open API 지원 예정)
16
KT Classic
(G1/G2 platform)
지원 불가
(K8s 서비스 제공 X)
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100