Kubernetes Cluster Management Guide(KR) - cloud-barista/cb-spider GitHub Wiki

Kubernetes Cluster Management Guide

Language: English | ํ•œ๊ตญ์–ด

1. CB-Spider Kubernetes Cluster ๊ฐœ์š”

  • CB-Spider๋Š” ์—ฐ๋™ ๋Œ€์ƒ ํด๋ผ์šฐ๋“œ(CSP)๊ฐ€ ์ œ๊ณตํ•˜๋Š” ๊ด€๋ฆฌํ˜• Kubernetes๋ฅผ
    • ๋™์ผํ•œ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ œ์–ดํ•  ์ˆ˜ ์žˆ๋Š” Cluster(Kubernetes Cluster) ์ œ์–ด ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
  • Kubernetes๊ฐ€ ํ•„์š”ํ•œ CB-Spider ์‚ฌ์šฉ์ž(์ธํ”„๋ผ ๊ด€๋ฆฌ์ž ๋˜๋Š” ์„œ๋น„์Šค ๊ฐœ๋ฐœ์ž)๋Š” ์•„๋ž˜ ๊ทธ๋ฆผ๊ณผ ๊ฐ™์ด,
    • โ‘  CB-Spider ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ํ™œ์šฉํ•˜์—ฌ ๋™์ผํ•œ ๋ฐฉ๋ฒ•์œผ๋กœ
      • ์›ํ•˜๋Š” ๋Œ€์ƒ ํด๋ผ์šฐ๋“œ์— Kubernetes ์ธ์Šคํ„ด์Šค ์ƒ์„ฑ์„ ์š”์ฒญํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    • โ‘ก ์‚ฌ์šฉ์ž์˜ ์š”์ฒญ์€ Spider์˜ ๋Œ€์ƒ ์—ฐ๋™ ๋“œ๋ผ์ด๋ฒ„๋ฅผ ํ†ตํ•ด์„œ
      • ๋Œ€์ƒ ํด๋ผ์šฐ๋“œ์˜ API๋ฅผ ํ˜ธ์ถœํ•˜์—ฌ ๋Œ€์ƒ ํด๋ผ์šฐ๋“œ์˜ ๊ด€๋ฆฌํ˜• Kubernetes ์ธ์Šคํ„ด์Šค๊ฐ€ ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค.
    • โ‘ข ์‚ฌ์šฉ์ž๋Š” ์ƒ์„ฑ๋œ Kubernetes์— ๋Œ€ํ•˜์—ฌ K8S CLI(kubectl) ๋˜๋Š” API ๋“ฑ์˜ ํ’๋ถ€ํ•œ Kubernetes ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ
      • ์‚ฌ์šฉ์ž์˜ ์›Œํฌ๋กœ๋“œ๋ฅผ ๋ฐฐํฌ ๋ฐ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
      • ๋˜ํ•œ, OpenLens, Headlamp, Kubesphere ๋“ฑ์˜ Kubernetes IDE์— ์—ฐ๋™ํ•˜์—ฌ ์ƒ์„ฑ๋œ Kubernetes์˜ ๊ธฐ๋Šฅ์„ ํŽธ๋ฆฌํ•˜๊ฒŒ ํ™œ์šฉํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.



[CB-Spider Kubernetes Cluster Overview]


2. CB-Spider Kubernetes Cluster ๊ตฌ์„ฑ ์š”์†Œ


  • ์‚ฌ์šฉ์ž์— ์˜ํ•ด ์ƒ์„ฑ๋œ ํ•˜๋‚˜์˜ Kubernetes ์ธ์Šคํ„ด์Šค๋Š” ์•„๋ž˜ ๊ทธ๋ฆผ์—์„œ ๋ณด๋Š” ๋ฐ”์™€ ๊ฐ™์ด Cluster๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค.
  • Cluster๋Š” ํฌ๊ฒŒ Control Plane, Node Group, Addons ๋ฐ Endpoint๋กœ ๊ตฌ์„ฑ๋ฉ๋‹ˆ๋‹ค.



[CB-Spider Kubernetes Cluster Components]


  • ์ปดํฌ๋„ŒํŠธ๋ณ„ ์„ธ๋ถ€ ๋‚ด์šฉ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

    (1) ์ปจํŠธ๋กค ํ”Œ๋ ˆ์ธ(Control Plane)

    - ์ปจํŠธ๋กค ํ”Œ๋ ˆ์ธ์€ Cluster์˜ ์ „์ฒด ๋™์ž‘ ๋ฐ ์‹คํ–‰์„ ๊ด€์žฅํ•˜๋Š” ๋งˆ์Šคํ„ฐ๋กœ์„œ์˜ ์—ญํ• ์„ ๋‹ด๋‹นํ•˜๋Š” ์ปดํฌ๋„ŒํŠธ๋“ค์˜ ๋ชจ์ž„์ด๋ฉฐ, 
    - ๊ด€๋ฆฌํ˜• Kubernetes์˜ ๊ฒฝ์šฐ์—๋Š” ์ปจํŠธ๋กค ํ”Œ๋ ˆ์ธ์˜ ๊ด€๋ฆฌ ์ฃผ์ฒด๋Š” CSP์˜ Cloud ํ”Œ๋žซํผ(CloudOS)์ด๋ฉฐ,
    - CSP ์‚ฌ์šฉ์ž(=CB-Spider ์‚ฌ์šฉ์ž)๋Š” ์ƒํƒœ ํ™•์ธ ๋ฐ ์ œ์–ด๋ฅผ ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.
    

    (2) ๋…ธ๋“œ ๊ทธ๋ฃน(Node Group)

    - ํ•˜๋‚˜์˜ ๋…ธ๋“œ ๊ทธ๋ฃน์€ ๋™์ผํ•œ ์ด๋ฏธ์ง€์™€ ๊ทœ๊ฒฉ์œผ๋กœ ์ƒ์„ฑ๋œ VM๋“ค๋กœ ๊ตฌ์„ฑ๋˜๋ฉฐ, 
    - ํ•˜๋‚˜์˜ Cluster๋Š” ์„œ๋กœ ๋‹ค๋ฅธ ์ข…๋ฅ˜์˜ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๋…ธ๋“œ ๊ทธ๋ฃน์„ ํฌํ•จํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. 
    - ์ด์™€ ๊ฐ™์€ ์ด์งˆ์ ์ธ ๋…ธ๋“œ ๊ทธ๋ฃน ๊ตฌ์„ฑ์„ ํ†ตํ•˜์—ฌ ํ•˜๋‚˜์˜ Cluster์—์„œ ๋‹ค์–‘ํ•œ ์ข…๋ฅ˜์˜ ์›Œํฌ๋กœ๋“œ์˜ ์‹คํ–‰ ์„ค์ •์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. 
    

    (3) ์—๋“œ์˜จ(Addons)

    - ์—๋“œ์˜จ์€ CNI, DNS ๋ฐ Container Resource Monitoring ๋“ฑ์œผ๋กœ 
    - Cluster ์ˆ˜์ค€์˜ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜๋Š” ์ปดํฌ๋„ŒํŠธ์ž…๋‹ˆ๋‹ค.
    - ๋‹ค์–‘ํ•œ ์—๋“œ์˜จ๋“ค์ด ์กด์žฌํ•˜๋ฉฐ, ์„ ํƒ์ ์œผ๋กœ ๊ตฌ์„ฑํ•˜์—ฌ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. 
    

    (4) ์—”๋“œํฌ์ธํŠธ(Endpoint)

    - ์™ธ๋ถ€์—์„œ Cluster์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋Š” URL์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
    

3. CB-Spider Kubernetes Cluster ํƒ€์ž…

  • Cluster ์ƒ์„ฑ๊ณผ NodeGroup ์ถ”๊ฐ€ ์ˆœ์„œ์— ๋”ฐ๋ผ ๋‹ค์Œ๊ณผ ๊ฐ™์ด 2๊ฐ€์ง€ ํƒ€์ž…์œผ๋กœ ๊ตฌ๋ถ„๋ฉ๋‹ˆ๋‹ค.
  • (1) Type-I: Cluster ์ƒ์„ฑ ํ›„ NodeGroup ๋ณ„๋„ ์ถ”๊ฐ€/์‚ญ์ œ

    • ๋Œ€์ƒ CSP: AWS, Alibaba, Tencent ๋“ฑ
  • (2) Type-II: ์ตœ์ดˆ Cluster ์ƒ์„ฑ์‹œ ์ตœ์†Œ 1๊ฐœ ์ด์ƒ์˜ NodeGroup์„ ํ•จ๊ป˜ ์ƒ์„ฑ, ์ดํ›„ NodeGroup ์ถ”๊ฐ€/์‚ญ์ œ ๊ฐ€๋Šฅ

    • ๋Œ€์ƒ CSP: Azure, GCP, IBM, NHN, NCP ๋“ฑ

  • ์ฐธ๊ณ : ๋…ธ๋“œ ๊ทธ๋ฃน OS๋กœ ์„ ํƒ ๊ฐ€๋Šฅํ•œ ์ด๋ฏธ์ง€ ๋ชฉ๋ก
    • AWS: NodeGroup ์ƒ์„ฑ์‹œ Image ์„ค์ • ์ž„์‹œ ๊ฐ€์ด๋“œ (์—…๋ฐ์ดํŠธ: PR 1728, ์ฐธ๊ณ : PR 1651)
      • (1) ์„ค์ •ํ•˜์ง€ ์•Š์Œ (๋นˆ ๋ฌธ์ž์—ด ๋˜๋Š” "default"):

        • Default AMI Type (AL2023_x86_64_STANDARD)์œผ๋กœ ์ž๋™ ์„ค์ • โ†’ ํ‘œ์ค€ x86_64 ์›Œํฌ๋กœ๋“œ์— ๊ถŒ์žฅ
      • (2) EKS AMI Type ์‹๋ณ„์ž (์˜ˆ: AL2023_x86_64_STANDARD, AL2023_ARM_64_STANDARD, BOTTLEROCKET_x86_64 ๋“ฑ):

        • ๋ณ€ํ™˜ ์—†์ด AWS EKS์— ๊ทธ๋Œ€๋กœ ์ „๋‹ฌ โ†’ GPU ๋ณ€ํ˜•์„ ํฌํ•จํ•˜์—ฌ AMI ํƒ€์ž…์„ ๋ช…์‹œ์ ์œผ๋กœ ์„ ํƒํ•  ๋•Œ ์‚ฌ์šฉ
        ์ง€์›๋˜๋Š” EKS AMI Type ๋ชฉ๋ก
        • AL2023_x86_64_STANDARD
        • AL2023_ARM_64_STANDARD
        • BOTTLEROCKET_ARM_64
        • BOTTLEROCKET_x86_64
        • BOTTLEROCKET_ARM_64_NVIDIA
        • BOTTLEROCKET_x86_64_NVIDIA
        • WINDOWS_CORE_2019_x86_64
        • WINDOWS_FULL_2019_x86_64
        • WINDOWS_CORE_2022_x86_64
        • WINDOWS_FULL_2022_x86_64
      • (3) EC2 Launch Template ID (ํ˜•์‹: lt-[17์ž๋ฆฌ hex], ์˜ˆ: lt-0123456789abcdef0):

        • Launch Template์„ ์ˆ˜์ • ์—†์ด ์ง์ ‘ ์ฐธ์กฐ โ†’ ๋ฏธ๋ฆฌ ๊ตฌ์„ฑ๋œ EC2 Launch Template์„ ํ†ตํ•ด ์ปค์Šคํ…€ AMI๋ฅผ ์ง€์ •ํ•  ๋•Œ ์‚ฌ์šฉ
        • Launch Template์—๋Š” EKS ์›Œ์ปค ๋…ธ๋“œ ์ดˆ๊ธฐํ™”๋ฅผ ์œ„ํ•œ bootstrap UserData๊ฐ€ ํฌํ•จ๋˜์–ด์•ผ ํ•จ
        • cb-spider๋Š” Launch Template์„ ์ƒ์„ฑํ•˜๊ฑฐ๋‚˜ ์ˆ˜์ •ํ•˜์ง€ ์•Š์Œ
        • EKS์šฉ Launch Template ์ƒ์„ฑ ๋ฐฉ๋ฒ•:
      • (4) ์›์‹œ EC2 AMI ID (์˜ˆ: ami-0abcdef1234567890) ๋˜๋Š” ์ธ์‹๋˜์ง€ ์•Š๋Š” ๊ฐ’:

        • ์˜ค๋ฅ˜ ๋ฐ˜ํ™˜ โ€” ์ž๋™ AMI ID โ†’ EKS AMI Type ๋งคํ•‘ ๊ธฐ๋Šฅ์ด ์ œ๊ฑฐ๋จ (์ด์ „ PR #1651)
        • ์ปค์Šคํ…€ AMI๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๋ฉด, AMI ID์™€ UserData๊ฐ€ ํฌํ•จ๋œ EC2 Launch Template์„ ์ƒ์„ฑํ•œ ํ›„ ํ•ด๋‹น Launch Template ID๋ฅผ ImageName ๊ฐ’์œผ๋กœ ์ „๋‹ฌ (์œ„ ์˜ต์…˜ (3) ์ฐธ์กฐ)
    • Tencent: ๋‹ค์Œ ๋ชฉ๋ก์—์„œ OS Name์„ ImageId๋กœ ์„ค์ •


4. CB-Spider Kubernetes Cluster ์ œ๊ณต ํ˜„ํ™ฉ

  • ์ œ๊ณต ๊ธฐ๋Šฅ: Cluster ์ƒ์„ฑ/์‚ญ์ œ, NodeGroup ์ถ”๊ฐ€/์‚ญ์ œ, Kubeconfig ์ œ๊ณต ๋“ฑ
  • ๊ฒ€์ฆ ํ•„์š” ๊ธฐ๋Šฅ: AutoScaling ์„ค์ • ๋ณ€๊ฒฝ, Upgrade (์ „์ฒด ๋˜๋Š” ์ผ๋ถ€ CSP ์ง€์›, ์ „์ฒด ๊ฒ€์ฆ ํ•„์š”ํ•œ ๊ธฐ๋Šฅ)
  • ์ถ”ํ›„ ์ œ๊ณต ๊ณ ๋ ค: Addons(ํ˜„์žฌ ๋ฏธ๊ตฌํ˜„)

[์ œ๊ณต CSP ๋ชฉ๋ก ๋ฐ ํŠน์ด์‚ฌํ•ญ]

CSP ํŠน์ด์‚ฌํ•ญ
AWS โ€ข Type-I Cluster (NodeGroup ๋ณ„๋„ ์ถ”๊ฐ€)
โ€ข ์„œ๋กœ ๋‹ค๋ฅธ Zone์˜ 2๊ฐœ ์ด์ƒ Subnet ํ•„์š”
โ€ข Cluster Role, NodeGroup Role ์ž๋™ ์ƒ์„ฑ
Azure โ€ข Type-II Cluster (์ตœ์†Œ 1๊ฐœ NodeGroup ํ•„์ˆ˜)
โ€ข Subnet CIDR 333 Address ์ด์ƒ (์˜ˆ: /23 ์ด์ƒ ๊ถŒ์žฅ)
โ€ข ๊ด€๋ จ Role ์„ค์ • ํ•„์š”
GCP โ€ข Type-II Cluster (์ตœ์†Œ 1๊ฐœ NodeGroup ํ•„์ˆ˜)
โ€ข Region๋ณ„ ์ œ๊ณต ๋ฒ„์ „์ด ๋‹ค๋ฆ„
Alibaba โ€ข Type-I Cluster (NodeGroup ๋ณ„๋„ ์ถ”๊ฐ€)
Tencent โ€ข Type-I Cluster (NodeGroup ๋ณ„๋„ ์ถ”๊ฐ€)
โ€ข ๊ด€๋ จ Role ์„ค์ • ํ•„์š”
โ€ข ์ง€์ •๋œ OS Name ๋ชฉ๋ก์—์„œ ์ด๋ฏธ์ง€ ์„ ํƒ
NHN โ€ข Type-II Cluster (์ตœ์†Œ 1๊ฐœ NodeGroup ํ•„์ˆ˜)
NCP โ€ข Type-II Cluster (์ตœ์†Œ 1๊ฐœ NodeGroup ํ•„์ˆ˜)
IBM โ€ข Type-II Cluster (์ตœ์†Œ 1๊ฐœ NodeGroup ํ•„์ˆ˜)

5. CB-Spider Kubernetes Cluster API ๋ฐ ์ œ๊ณต ์ •๋ณด ๊ทœ๊ฒฉ

  • ์‚ฌ์šฉ์ž๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ CB-Spider REST API๋ฅผ ์ด์šฉํ•˜์—ฌ Cluster ์ •๋ณด๋ฅผ JSON ๊ทœ๊ฒฉ์œผ๋กœ ์ œ๊ณต๋ฐ›์Šต๋‹ˆ๋‹ค.

5.1 Kubernetes Cluster ๊ด€๋ฆฌ API

# Cluster ์ƒ์„ฑ ๋ฐ ์กฐํšŒ
POST   /spider/cluster                      - Create Cluster
GET    /spider/cluster                      - List Clusters
GET    /spider/cluster/{Name}               - Get Cluster
DELETE /spider/cluster/{Name}               - Delete Cluster

# Cluster ๋“ฑ๋ก/ํ•ด์ œ (๊ธฐ์กด CSP Cluster ์—ฐ๋™)
POST   /spider/regcluster                   - Register Cluster
DELETE /spider/regcluster/{Name}            - Unregister Cluster
POST   /spider/getclusterowner              - Get Cluster Owner VPC

# NodeGroup ๊ด€๋ฆฌ
POST   /spider/cluster/{Name}/nodegroup     - Add NodeGroup
DELETE /spider/cluster/{Name}/nodegroup/{NodeGroupName} - Remove NodeGroup

# NodeGroup AutoScaling ๊ด€๋ฆฌ
PUT    /spider/cluster/{Name}/nodegroup/{NodeGroupName}/onautoscaling   - Set NodeGroup AutoScaling
PUT    /spider/cluster/{Name}/nodegroup/{NodeGroupName}/autoscalesize   - Change NodeGroup Scaling

# Cluster Upgrade
PUT    /spider/cluster/{Name}/upgrade       - Upgrade Cluster

# Cluster ๋ชฉ๋ก ์กฐํšŒ (์ „์ฒด)
GET    /spider/allcluster                   - List All Clusters (CB-Spider + CSP)
GET    /spider/allclusterinfo               - List All Cluster Info

# Cluster ํ†ต๊ณ„
GET    /spider/countcluster                 - Count All Clusters
GET    /spider/countcluster/{ConnectionName} - Count Clusters by Connection

# Cluster Token (for kubectl authentication)
GET    /spider/cluster/{Name}/token         - Get Cluster Token

# CSP Cluster ์ง์ ‘ ์‚ญ์ œ
DELETE /spider/cspcluster/{Id}              - Delete CSP Cluster

5.2 ์ œ๊ณต ์ •๋ณด ๊ทœ๊ฒฉ

  • Cluster ์ •๋ณด (ClusterInfo)
ํ•„๋“œ ์„ค๋ช… ์˜ˆ์‹œ
IId Cluster์˜ ์‹๋ณ„์ž ์ •๋ณด (NameId, SystemId) โ— {Name: "cluster-01", SystemId: "cluster-1234abcd"}
Version Kubernetes ๋ฒ„์ „ โ— "1.30", "1.29", "1.28"
Network ๋„คํŠธ์›Œํฌ ์ •๋ณด โ— ์•„๋ž˜ NetworkInfo ์ฐธ์กฐ
NodeGroupList NodeGroup ๋ชฉ๋ก โ— ์•„๋ž˜ NodeGroupInfo ๋ฐฐ์—ด ์ฐธ์กฐ
AccessInfo Cluster ์ ‘์† ์ •๋ณด โ— ์•„๋ž˜ AccessInfo ์ฐธ์กฐ
Addons ์• ๋“œ์˜จ ์ •๋ณด โ— ์•„๋ž˜ AddonsInfo ์ฐธ์กฐ
Status Cluster ์ƒํƒœ โ— "Creating", "Active", "Inactive", "Updating", "Deleting"
CreatedTime Cluster ์ƒ์„ฑ ์‹œ๊ฐ„ โ— "2024-03-03T12:34:56Z"
KeyValueList CSP๊ฐ€ ์ œ๊ณตํ•˜๋Š” ์ถ”๊ฐ€ ์ •๋ณด โ— [{Key: "Platform", Value: "eks"}]
  • Network ์ •๋ณด (NetworkInfo)
ํ•„๋“œ ์„ค๋ช… ์˜ˆ์‹œ
VpcIID Cluster๊ฐ€ ์†ํ•œ VPC ์‹๋ณ„์ž โ— {Name: "vpc-01", SystemId: "vpc-5678efgh"}
SubnetIIDs Subnet ์‹๋ณ„์ž ๋ชฉ๋ก โ— [{Name: "subnet-01", SystemId: "subnet-1234"}]
SecurityGroupIIDs Security Group ์‹๋ณ„์ž ๋ชฉ๋ก โ— [{Name: "sg-01", SystemId: "sg-5678"}]
KeyValueList CSP๊ฐ€ ์ œ๊ณตํ•˜๋Š” ์ถ”๊ฐ€ ๋„คํŠธ์›Œํฌ ์ •๋ณด โ— [{Key: "NetworkType", Value: "VPC-Native"}]
  • NodeGroup ์ •๋ณด (NodeGroupInfo)
ํ•„๋“œ ์„ค๋ช… ์˜ˆ์‹œ
IId NodeGroup์˜ ์‹๋ณ„์ž ์ •๋ณด โ— {Name: "ng-01", SystemId: "ng-1234abcd"}
ImageIID Node VM์˜ ์ด๋ฏธ์ง€ ์‹๋ณ„์ž โ— {Name: "ubuntu-22.04", SystemId: "ami-1234"}
VMSpecName Node VM์˜ ์‚ฌ์–‘ โ— "t3.medium", "Standard_D2s_v3"
RootDiskType Root Disk ํƒ€์ž… โ— "SSD(gp2)", "Premium SSD"
RootDiskSize Root Disk ํฌ๊ธฐ (GB) โ— "50", "100"
KeyPairIID SSH KeyPair ์‹๋ณ„์ž โ— {Name: "keypair-01", SystemId: "key-1234"}
OnAutoScaling AutoScaling ํ™œ์„ฑํ™” ์—ฌ๋ถ€ โ— true, false
DesiredNodeSize ์›ํ•˜๋Š” ๋…ธ๋“œ ๊ฐœ์ˆ˜ โ— 2, 3, 5
MinNodeSize ์ตœ์†Œ ๋…ธ๋“œ ๊ฐœ์ˆ˜ โ— 1, 2
MaxNodeSize ์ตœ๋Œ€ ๋…ธ๋“œ ๊ฐœ์ˆ˜ โ— 3, 5, 10
Status NodeGroup ์ƒํƒœ โ— "Creating", "Active", "Inactive", "Updating", "Deleting"
Nodes Node(VM) ์‹๋ณ„์ž ๋ชฉ๋ก โ— [{SystemId: "i-1234"}, {SystemId: "i-5678"}]
KeyValueList CSP๊ฐ€ ์ œ๊ณตํ•˜๋Š” ์ถ”๊ฐ€ ์ •๋ณด โ— [{Key: "ScalingConfig", Value: "Enabled"}]
  • AccessInfo ์ •๋ณด
ํ•„๋“œ ์„ค๋ช… ์˜ˆ์‹œ
Endpoint Cluster API Server Endpoint URL โ— "https://1234.gr7.us-east-1.eks.amazonaws.com"
Kubeconfig kubectl ์ ‘์†์„ ์œ„ํ•œ kubeconfig ๋‚ด์šฉ โ— "apiVersion: v1\nclusters:\n..."
  • AddonsInfo ์ •๋ณด
ํ•„๋“œ ์„ค๋ช… ์˜ˆ์‹œ
KeyValueList Addon ์ •๋ณด ๋ชฉ๋ก โ— [{Key: "CNI", Value: "aws-vpc-cni"}]

6. CB-Spider Kubernetes Cluster API ๋ฐ ์ œ๊ณต ์ •๋ณด ์˜ˆ์‹œ

6.1 Cluster ์ƒ์„ฑ ์˜ˆ์‹œ - Type-I (NodeGroup ์ œ์™ธ)

  • AWS, Alibaba, Tencent ๋“ฑ Type-I CSP์—์„œ NodeGroup์„ ์ œ์™ธํ•˜๊ณ  Cluster๋งŒ ์ƒ์„ฑํ•˜๋Š” API ํ˜ธ์ถœ ์˜ˆ์‹œ:
curl -sX POST http://localhost:1024/spider/cluster \
  -H 'Content-Type: application/json' \
  -d '{
    "ConnectionName": "aws-config01",
    "IDTransformMode": "ON",
    "ReqInfo": {
      "Name": "cluster-01",
      "Version": "1.30",
      "VPCName": "vpc-01",
      "SubnetNames": ["subnet-01", "subnet-02"],
      "SecurityGroupNames": ["sg-01"]
    }
  }' | jq

์‘๋‹ต ์˜ˆ์‹œ:

{
  "IId": {
    "NameId": "cluster-01",
    "SystemId": "arn:aws:eks:us-east-1:123456789012:cluster/cluster-01"
  },
  "Version": "1.30",
  "Network": {
    "VpcIID": {
      "NameId": "vpc-01",
      "SystemId": "vpc-0a1b2c3d4e5f67890"
    },
    "SubnetIIDs": [
      {
        "NameId": "subnet-01",
        "SystemId": "subnet-1234567890abcdef0"
      },
      {
        "NameId": "subnet-02",
        "SystemId": "subnet-0fedcba9876543210"
      }
    ],
    "SecurityGroupIIDs": [
      {
        "NameId": "sg-01",
        "SystemId": "sg-0a1b2c3d4e5f67890"
      }
    ],
    "KeyValueList": []
  },
  "NodeGroupList": [],
  "AccessInfo": {
    "Endpoint": "https://1234ABCD5678EFGH.gr7.us-east-1.eks.amazonaws.com",
    "Kubeconfig": "apiVersion: v1\nclusters:\n- cluster:\n    certificate-authority-data: LS0tLS1CRU...\n    server: https://1234ABCD5678EFGH.gr7.us-east-1.eks.amazonaws.com\n  name: cluster-01\ncontexts:\n- context:\n    cluster: cluster-01\n    user: cluster-01-user\n  name: cluster-01-context\ncurrent-context: cluster-01-context\nkind: Config\npreferences: {}\nusers:\n- name: cluster-01-user\n  user:\n    exec:\n      apiVersion: client.authentication.k8s.io/v1\n      command: /spider/cluster/cluster-01/token\n      args:\n      - --ConnectionName=aws-config01\n"
  },
  "Addons": {
    "KeyValueList": []
  },
  "Status": "Creating",
  "CreatedTime": "2024-03-03T12:34:56Z",
  "KeyValueList": []
}

6.2 Cluster ์ƒ์„ฑ ์˜ˆ์‹œ - Type-II (NodeGroup ํฌํ•จ)

  • Azure, GCP, IBM, NHN ๋“ฑ Type-II CSP์—์„œ NodeGroup์„ ํฌํ•จํ•˜์—ฌ Cluster๋ฅผ ์ƒ์„ฑํ•˜๋Š” API ํ˜ธ์ถœ ์˜ˆ์‹œ:
curl -sX POST http://localhost:1024/spider/cluster \
  -H 'Content-Type: application/json' \
  -d '{
    "ConnectionName": "azure-config01",
    "IDTransformMode": "ON",
    "ReqInfo": {
      "Name": "cluster-01",
      "Version": "1.29",
      "VPCName": "vpc-01",
      "SubnetNames": ["subnet-01"],
      "SecurityGroupNames": ["sg-01"],
      "NodeGroupList": [
        {
          "Name": "nodegroup-01",
          "ImageName": "ubuntu-22.04",
          "VMSpecName": "Standard_D2s_v3",
          "RootDiskType": "Premium_LRS",
          "RootDiskSize": "50",
          "KeyPairName": "keypair-01",
          "OnAutoScaling": "true",
          "DesiredNodeSize": "2",
          "MinNodeSize": "1",
          "MaxNodeSize": "3"
        }
      ]
    }
  }' | jq

์‘๋‹ต ์˜ˆ์‹œ:

{
  "IId": {
    "NameId": "cluster-01",
    "SystemId": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/rg-01/providers/Microsoft.ContainerService/managedClusters/cluster-01"
  },
  "Version": "1.29",
  "Network": {
    "VpcIID": {
      "NameId": "vpc-01",
      "SystemId": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/rg-01/providers/Microsoft.Network/virtualNetworks/vpc-01"
    },
    "SubnetIIDs": [
      {
        "NameId": "subnet-01",
        "SystemId": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/rg-01/providers/Microsoft.Network/virtualNetworks/vpc-01/subnets/subnet-01"
      }
    ],
    "SecurityGroupIIDs": [
      {
        "NameId": "sg-01",
        "SystemId": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/rg-01/providers/Microsoft.Network/networkSecurityGroups/sg-01"
      }
    ],
    "KeyValueList": []
  },
  "NodeGroupList": [
    {
      "IId": {
        "NameId": "nodegroup-01",
        "SystemId": "nodegroup-01"
      },
      "ImageIID": {
        "NameId": "ubuntu-22.04",
        "SystemId": "Canonical:0001-com-ubuntu-server-jammy:22_04-lts:latest"
      },
      "VMSpecName": "Standard_D2s_v3",
      "RootDiskType": "Premium_LRS",
      "RootDiskSize": "50",
      "KeyPairIID": {
        "NameId": "keypair-01",
        "SystemId": "keypair-01"
      },
      "OnAutoScaling": true,
      "DesiredNodeSize": 2,
      "MinNodeSize": 1,
      "MaxNodeSize": 3,
      "Status": "Creating",
      "Nodes": [],
      "KeyValueList": []
    }
  ],
  "AccessInfo": {
    "Endpoint": "https://cluster-01-rg-01-12345-abcdef12.hcp.koreacentral.azmk8s.io:443",
    "Kubeconfig": "apiVersion: v1\nclusters:\n- cluster:\n    certificate-authority-data: LS0tLS1CRU...\n    server: https://cluster-01-rg-01-12345-abcdef12.hcp.koreacentral.azmk8s.io:443\n  name: cluster-01\n..."
  },
  "Addons": {
    "KeyValueList": []
  },
  "Status": "Creating",
  "CreatedTime": "2024-03-03T12:34:56Z",
  "KeyValueList": []
}

6.3 Cluster ๋ชฉ๋ก ์กฐํšŒ ์˜ˆ์‹œ

  • ๋“ฑ๋ก๋œ Cluster ๋ชฉ๋ก์„ ์กฐํšŒํ•˜๋Š” API ํ˜ธ์ถœ ์˜ˆ์‹œ:
curl -sX GET 'http://localhost:1024/spider/cluster?ConnectionName=aws-config01' | jq

์‘๋‹ต ์˜ˆ์‹œ:

{
  "cluster": [
    {
      "IId": {
        "NameId": "cluster-01",
        "SystemId": "arn:aws:eks:us-east-1:123456789012:cluster/cluster-01"
      },
      "Version": "1.30",
      "Network": {
        "VpcIID": {
          "NameId": "vpc-01",
          "SystemId": "vpc-0a1b2c3d4e5f67890"
        },
        "SubnetIIDs": [
          {
            "NameId": "subnet-01",
            "SystemId": "subnet-1234567890abcdef0"
          },
          {
            "NameId": "subnet-02",
            "SystemId": "subnet-0fedcba9876543210"
          }
        ],
        "SecurityGroupIIDs": [
          {
            "NameId": "sg-01",
            "SystemId": "sg-0a1b2c3d4e5f67890"
          }
        ],
        "KeyValueList": []
      },
      "NodeGroupList": [
        {
          "IId": {
            "NameId": "nodegroup-01",
            "SystemId": "arn:aws:eks:us-east-1:123456789012:nodegroup/cluster-01/nodegroup-01/abc12345-6789-0123-4567-89abcdef0123"
          },
          "ImageIID": {
            "NameId": "",
            "SystemId": "AL2023_x86_64_STANDARD"
          },
          "VMSpecName": "t3.medium",
          "RootDiskType": "gp3",
          "RootDiskSize": "50",
          "KeyPairIID": {
            "NameId": "keypair-01",
            "SystemId": "keypair-01"
          },
          "OnAutoScaling": true,
          "DesiredNodeSize": 2,
          "MinNodeSize": 1,
          "MaxNodeSize": 3,
          "Status": "Active",
          "Nodes": [
            {
              "NameId": "",
              "SystemId": "i-0a1b2c3d4e5f67890"
            },
            {
              "NameId": "",
              "SystemId": "i-1b2c3d4e5f6789012"
            }
          ],
          "KeyValueList": []
        }
      ],
      "AccessInfo": {
        "Endpoint": "https://1234ABCD5678EFGH.gr7.us-east-1.eks.amazonaws.com",
        "Kubeconfig": "apiVersion: v1\nclusters:\n..."
      },
      "Addons": {
        "KeyValueList": []
      },
      "Status": "Active",
      "CreatedTime": "2024-03-03T12:34:56Z",
      "KeyValueList": []
    }
  ]
}

6.4 Cluster ์ƒ์„ธ ์กฐํšŒ ์˜ˆ์‹œ

  • ํŠน์ • Cluster์˜ ์ƒ์„ธ ์ •๋ณด๋ฅผ ์กฐํšŒํ•˜๋Š” API ํ˜ธ์ถœ ์˜ˆ์‹œ:
curl -sX GET 'http://localhost:1024/spider/cluster/cluster-01?ConnectionName=aws-config01' | jq

์‘๋‹ต ๊ฒฐ๊ณผ๋Š” 6.3์˜ ๊ฐœ๋ณ„ Cluster ์ •๋ณด์™€ ๋™์ผ

6.5 Kubeconfig๋ฅผ ํ™œ์šฉํ•œ kubectl ์—ฐ๋™

  • Cluster ์ƒ์„ฑ ํ›„ Kubeconfig๋ฅผ ํ™œ์šฉํ•˜์—ฌ kubectl๋กœ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • CB-Spider๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ CB-Spider credential-based Kubeconfig๋ฅผ ์ œ๊ณตํ•˜๋ฉฐ, CSP native plugin์„ ์‚ฌ์šฉํ•˜๋Š” Native Kubeconfig๋„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.
  • Kubeconfig ํ™œ์šฉ ๋ฐฉ๋ฒ• ๋ฐ ์ƒ์„ธ ๋‚ด์šฉ์€ CB-Spider Kubeconfig ํ™œ์šฉ ๊ฐ€์ด๋“œ๋ฅผ ์ฐธ๊ณ ํ•˜์„ธ์š”.

6.6 NodeGroup ์ถ”๊ฐ€ ์˜ˆ์‹œ

  • ๊ธฐ์กด Cluster์— ์ƒˆ๋กœ์šด NodeGroup์„ ์ถ”๊ฐ€ํ•˜๋Š” API ํ˜ธ์ถœ ์˜ˆ์‹œ:
curl -sX POST http://localhost:1024/spider/cluster/cluster-01/nodegroup \
  -H 'Content-Type: application/json' \
  -d '{
    "ConnectionName": "aws-config01",
    "IDTransformMode": "ON",
    "ReqInfo": {
      "Name": "nodegroup-02",
      "ImageName": "",
      "VMSpecName": "t3.large",
      "RootDiskType": "gp3",
      "RootDiskSize": "100",
      "KeyPairName": "keypair-01",
      "OnAutoScaling": "true",
      "DesiredNodeSize": "3",
      "MinNodeSize": "2",
      "MaxNodeSize": "5"
    }
  }' | jq

์‘๋‹ต ์˜ˆ์‹œ:

{
  "IId": {
    "NameId": "cluster-01",
    "SystemId": "arn:aws:eks:us-east-1:123456789012:cluster/cluster-01"
  },
  "Version": "1.30",
  "NodeGroupList": [
    {
      "IId": {
        "NameId": "nodegroup-01",
        "SystemId": "arn:aws:eks:us-east-1:123456789012:nodegroup/cluster-01/nodegroup-01/abc12345-6789-0123-4567-89abcdef0123"
      },
      "VMSpecName": "t3.medium",
      "OnAutoScaling": true,
      "DesiredNodeSize": 2,
      "MinNodeSize": 1,
      "MaxNodeSize": 3,
      "Status": "Active",
      "Nodes": [
        {
          "NameId": "",
          "SystemId": "i-0a1b2c3d4e5f67890"
        },
        {
          "NameId": "",
          "SystemId": "i-1b2c3d4e5f6789012"
        }
      ],
      "KeyValueList": []
    },
    {
      "IId": {
        "NameId": "nodegroup-02",
        "SystemId": "arn:aws:eks:us-east-1:123456789012:nodegroup/cluster-01/nodegroup-02/def45678-9012-3456-7890-12345678abcd"
      },
      "VMSpecName": "t3.large",
      "RootDiskType": "gp3",
      "RootDiskSize": "100",
      "OnAutoScaling": true,
      "DesiredNodeSize": 3,
      "MinNodeSize": 2,
      "MaxNodeSize": 5,
      "Status": "Creating",
      "Nodes": [],
      "KeyValueList": []
    }
  ],
  ...
}

6.7 NodeGroup AutoScaling ์„ค์ • ๋ณ€๊ฒฝ ์˜ˆ์‹œ

  • NodeGroup์˜ AutoScaling์„ ํ™œ์„ฑํ™”/๋น„ํ™œ์„ฑํ™”ํ•˜๋Š” API ํ˜ธ์ถœ ์˜ˆ์‹œ:
curl -sX PUT http://localhost:1024/spider/cluster/cluster-01/nodegroup/nodegroup-01/onautoscaling \
  -H 'Content-Type: application/json' \
  -d '{
    "ConnectionName": "aws-config01",
    "ReqInfo": {
      "OnAutoScaling": "false"
    }
  }' | jq

์‘๋‹ต ์˜ˆ์‹œ:

{
  "Result": "true"
}

6.8 NodeGroup Scaling ๋ณ€๊ฒฝ ์˜ˆ์‹œ

  • NodeGroup์˜ ๋…ธ๋“œ ํฌ๊ธฐ๋ฅผ ๋ณ€๊ฒฝํ•˜๋Š” API ํ˜ธ์ถœ ์˜ˆ์‹œ:
curl -sX PUT http://localhost:1024/spider/cluster/cluster-01/nodegroup/nodegroup-01/autoscalesize \
  -H 'Content-Type: application/json' \
  -d '{
    "ConnectionName": "aws-config01",
    "ReqInfo": {
      "DesiredNodeSize": "4",
      "MinNodeSize": "2",
      "MaxNodeSize": "6"
    }
  }' | jq

์‘๋‹ต ์˜ˆ์‹œ:

{
  "IId": {
    "NameId": "nodegroup-01",
    "SystemId": "arn:aws:eks:us-east-1:123456789012:nodegroup/cluster-01/nodegroup-01/abc12345-6789-0123-4567-89abcdef0123"
  },
  "VMSpecName": "t3.medium",
  "OnAutoScaling": true,
  "DesiredNodeSize": 4,
  "MinNodeSize": 2,
  "MaxNodeSize": 6,
  "Status": "Updating",
  "Nodes": [
    {
      "NameId": "",
      "SystemId": "i-0a1b2c3d4e5f67890"
    },
    {
      "NameId": "",
      "SystemId": "i-1b2c3d4e5f6789012"
    }
  ],
  "KeyValueList": []
}

6.9 NodeGroup ์ œ๊ฑฐ ์˜ˆ์‹œ

  • Cluster์—์„œ NodeGroup์„ ์ œ๊ฑฐํ•˜๋Š” API ํ˜ธ์ถœ ์˜ˆ์‹œ:
curl -sX DELETE 'http://localhost:1024/spider/cluster/cluster-01/nodegroup/nodegroup-02' \
  -H 'Content-Type: application/json' \
  -d '{
    "ConnectionName": "aws-config01"
  }' | jq

์‘๋‹ต ์˜ˆ์‹œ:

{
  "Result": "true"
}

6.10 Cluster ๋ฒ„์ „ ์—…๊ทธ๋ ˆ์ด๋“œ ์˜ˆ์‹œ

  • Cluster์˜ Kubernetes ๋ฒ„์ „์„ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๋Š” API ํ˜ธ์ถœ ์˜ˆ์‹œ:
curl -sX PUT http://localhost:1024/spider/cluster/cluster-01/upgrade \
  -H 'Content-Type: application/json' \
  -d '{
    "ConnectionName": "aws-config01",
    "ReqInfo": {
      "Version": "1.31"
    }
  }' | jq

์‘๋‹ต ์˜ˆ์‹œ:

{
  "IId": {
    "NameId": "cluster-01",
    "SystemId": "arn:aws:eks:us-east-1:123456789012:cluster/cluster-01"
  },
  "Version": "1.31",
  "Status": "Updating",
  ...
}

6.11 Cluster ์‚ญ์ œ ์˜ˆ์‹œ

  • Cluster๋ฅผ ์‚ญ์ œํ•˜๋Š” API ํ˜ธ์ถœ ์˜ˆ์‹œ:
curl -sX DELETE 'http://localhost:1024/spider/cluster/cluster-01' \
  -H 'Content-Type: application/json' \
  -d '{
    "ConnectionName": "aws-config01"
  }' | jq

์‘๋‹ต ์˜ˆ์‹œ:

{
  "Result": "true"
}

6.12 ๊ฐ•์ œ ์‚ญ์ œ ์˜ˆ์‹œ

  • Cluster๋ฅผ ๊ฐ•์ œ๋กœ ์‚ญ์ œํ•˜๋Š” API ํ˜ธ์ถœ ์˜ˆ์‹œ (NodeGroup์ด ์žˆ์–ด๋„ ์‚ญ์ œ):
curl -sX DELETE 'http://localhost:1024/spider/cluster/cluster-01?force=true' \
  -H 'Content-Type: application/json' \
  -d '{
    "ConnectionName": "aws-config01"
  }' | jq

7. ์ฃผ์˜์‚ฌํ•ญ ๋ฐ ์ œ์•ฝ์‚ฌํ•ญ

7.1 Cluster ์ƒ์„ฑ ์‹œ ์ฃผ์˜์‚ฌํ•ญ

  • ์‚ฌ์ „ ์ค€๋น„ ๋ฆฌ์†Œ์Šค: VPC, Subnet, Security Group์ด ๋ฏธ๋ฆฌ ์ƒ์„ฑ๋˜์–ด ์žˆ์–ด์•ผ ํ•จ
  • Cluster Type ๊ตฌ๋ถ„:
    • Type-I (AWS, Alibaba, Tencent): Cluster ์ƒ์„ฑ ํ›„ NodeGroup ๋ณ„๋„ ์ถ”๊ฐ€
    • Type-II (Azure, GCP, IBM, NHN, NCP): Cluster ์ƒ์„ฑ ์‹œ ์ตœ์†Œ 1๊ฐœ ์ด์ƒ์˜ NodeGroup ํ•„์ˆ˜
  • Subnet ์š”๊ตฌ์‚ฌํ•ญ:
    • AWS: ์„œ๋กœ ๋‹ค๋ฅธ Zone์˜ 2๊ฐœ ์ด์ƒ Subnet ํ•„์š”
    • Azure: Subnet CIDR์ด 333 Address ์ด์ƒ ํ•„์š” (์˜ˆ: /24=256๊ฐœ, /23=510๊ฐœ)
  • Role ์„ค์ •:
    • AWS: Cluster Role, NodeGroup Role ์ž๋™ ์ƒ์„ฑ๋จ
    • Azure, Tencent: ๊ด€๋ จ Role ์„ค์ • ํ•„์š”

7.2 NodeGroup ๊ด€๋ฆฌ ์‹œ ์ฃผ์˜์‚ฌํ•ญ

  • ์ด๋ฏธ์ง€ ์„ ํƒ:
    • ์ผ๋ถ€ CSP๋Š” ์ด๋ฏธ์ง€ ์„ ํƒ์ด ์ œํ•œ๋˜๊ฑฐ๋‚˜ ์ง€์›ํ•˜์ง€ ์•Š์Œ
    • AWS: ImageName ๋ฏธ์„ค์ • ์‹œ Default AMI Type(AL2023_x86_64_STANDARD) ์ž๋™ ์„ค์ •
    • Tencent: ์ง€์ •๋œ OS Name ๋ชฉ๋ก์—์„œ ์„ ํƒ ํ•„์š”
  • VMSpec ์„ ํƒ: CSP๋ณ„๋กœ ์ง€์›ํ•˜๋Š” VMSpec์ด ๋‹ค๋ฆ„
  • Disk ์„ค์ •: CSP๋ณ„๋กœ ์ง€์›ํ•˜๋Š” Disk Type ๋ฐ Size๊ฐ€ ๋‹ค๋ฆ„

7.3 Cluster ์‚ญ์ œ ์‹œ ์ฃผ์˜์‚ฌํ•ญ

  • NodeGroup ํ™•์ธ: Cluster ์‚ญ์ œ ์ „์— ๋ชจ๋“  NodeGroup์ด ์‚ญ์ œ๋˜์–ด์•ผ ํ•จ (force=false์ธ ๊ฒฝ์šฐ)
  • ๊ฐ•์ œ ์‚ญ์ œ: force=true ์˜ต์…˜ ์‚ฌ์šฉ ์‹œ NodeGroup์ด ์žˆ์–ด๋„ ๊ฐ•์ œ ์‚ญ์ œ๋จ (์ฃผ์˜!)
  • ์›Œํฌ๋กœ๋“œ ํ™•์ธ: Cluster ์‚ญ์ œ ์ „์— ์‹คํ–‰ ์ค‘์ธ Pod ๋ฐ ์›Œํฌ๋กœ๋“œ๋ฅผ ํ™•์ธํ•˜๊ณ  ๋ฐฑ์—… ํ•„์š”

7.4 Kubeconfig ์‚ฌ์šฉ ์‹œ ์ฃผ์˜์‚ฌํ•ญ

  • CB-Spider๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ CB-Spider credential-based Kubeconfig๋ฅผ ์ œ๊ณตํ•˜๋ฉฐ, CSP native plugin์„ ์‚ฌ์šฉํ•˜๋Š” Native Kubeconfig๋„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.
  • Kubeconfig ํ™œ์šฉ ๋ฐฉ๋ฒ• ๋ฐ ์ƒ์„ธ ์ฃผ์˜์‚ฌํ•ญ์€ CB-Spider Kubeconfig ํ™œ์šฉ ๊ฐ€์ด๋“œ๋ฅผ ์ฐธ๊ณ ํ•˜์„ธ์š”.
  • ์ฃผ์š” ์ฃผ์˜์‚ฌํ•ญ:
    • CB-Spider credential-based Kubeconfig ์‚ฌ์šฉ ์‹œ CB-Spider ์„œ๋ฒ„๊ฐ€ ์‹คํ–‰ ์ค‘์ด์–ด์•ผ ํ•จ
    • Native Kubeconfig ์‚ฌ์šฉ ์‹œ CSP๋ณ„ ์ธ์ฆ Plugin(aws-iam-authenticator, gke-gcloud-auth-plugin ๋“ฑ) ์„ค์น˜ ๋ฐ ์ธ์ฆ ์„ค์ • ํ•„์š”

7.5 ๋ฒ„์ „ ๊ด€๋ฆฌ ์‹œ ์ฃผ์˜์‚ฌํ•ญ

  • Version ํ˜•์‹: CSP๋ณ„๋กœ ๋ฒ„์ „ ํ˜•์‹์ด ๋‹ค๋ฆ„
    • AWS: "1.30", "1.29" ๋“ฑ
    • GCP: "1.29.1-gke.1234567" ๋“ฑ
    • NHN: "v1.29.3" ๋“ฑ
  • Version Upgrade:
    • ์ผ๋ถ€ CSP๋งŒ Upgrade API ์ง€์› (์ „์ฒด ๊ฒ€์ฆ ํ•„์š”)
    • Major ๋ฒ„์ „ ์—…๊ทธ๋ ˆ์ด๋“œ๋Š” ์ง€์›ํ•˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ์Œ
    • NodeGroup๋ณ„๋กœ ๋ณ„๋„ ์—…๊ทธ๋ ˆ์ด๋“œ๊ฐ€ ํ•„์š”ํ•  ์ˆ˜ ์žˆ์Œ

7.6 AutoScaling ์ฃผ์˜์‚ฌํ•ญ

  • AutoScaling ์„ค์ •:
    • OnAutoScaling=true: ์ž๋™์œผ๋กœ ๋…ธ๋“œ ๊ฐœ์ˆ˜ ์กฐ์ •
    • OnAutoScaling=false: ์ˆ˜๋™์œผ๋กœ ๋…ธ๋“œ ๊ฐœ์ˆ˜ ์กฐ์ •
  • ๋…ธ๋“œ ๊ฐœ์ˆ˜ ์กฐ๊ฑด: DesiredNodeSize๋Š” MinNodeSize์™€ MaxNodeSize ์‚ฌ์ด์—ฌ์•ผ ํ•จ

7.7 ๋™์  ๋ณผ๋ฅจ ํ”„๋กœ๋น„์ €๋‹

Kubernetes์—์„œ PersistentVolumeClaim(PVC)๋ฅผ ์ƒ์„ฑํ•˜์—ฌ ๋™์ ์œผ๋กœ ๋ณผ๋ฅจ์„ ํ”„๋กœ๋น„์ €๋‹ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. CSP๋ณ„๋กœ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์„ค์ •์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค:

  • GCP, Azure: ๊ธฐ๋ณธ StorageClass๋ฅผ ์ œ๊ณตํ•˜๋ฏ€๋กœ ๋ฐ”๋กœ PVC ์ƒ์„ฑ ๊ฐ€๋Šฅ
  • AWS: ์ ์ ˆํ•œ StorageClass๋ฅผ ์ œ๊ณตํ•˜์ง€ ์•Š์œผ๋ฏ€๋กœ, ๊ธฐ๋ณธ StorageClass๋ฅผ ๋“ฑ๋ก(ebs-sc.yaml)ํ•˜๋ฉด ๊ฐ€๋Šฅ
  • NHN: ์ ์ ˆํ•œ StorageClass๋ฅผ ์ œ๊ณตํ•˜์ง€ ์•Š์œผ๋ฏ€๋กœ, ๊ธฐ๋ณธ StorageClass๋ฅผ ๋“ฑ๋ก(cinder-sc.yaml)ํ•˜๋ฉด ๊ฐ€๋Šฅ
  • Alibaba: StorageClass๋ฅผ ์ œ๊ณตํ•˜๋ฏ€๋กœ PVC ์ƒ์„ฑ์‹œ ๋ช…์‹œํ•˜๊ณ  20GB ์ด์ƒ ์ง€์ • ํ•„์š”
  • Tencent: ๊ธฐ๋ณธ StorageClass๋ฅผ ์ œ๊ณตํ•˜๋ฏ€๋กœ ๋ฐ”๋กœ PVC ์ƒ์„ฑ ๊ฐ€๋Šฅํ•˜๋‚˜ 10GB ์ด์ƒ ์ง€์ • ํ•„์š”

8. ์ฐธ๊ณ  ์ž๋ฃŒ

โš ๏ธ **GitHub.com Fallback** โš ๏ธ