VPC 인프라에서 IBM Cloud Kubernetes Service 클러스터 작성
IBM® 제공 템플리트 중 하나를 사용하여 VPC(Virtual Private Cloud)에 IBM Cloud® Kubernetes Service 클러스터를 작성합니다. 그런 다음 클러스터를 IBM Cloud® Object Storage 서비스 인스턴스에 바인드합니다.
설명
이 튜토리얼에서는 제공된 IBM® 을 사용합니다. vpc-gen2-cluster
Terraform 템플릿은 VPC(가상 사설 클라우드)를 생성하고
IBM Cloud Kubernetes Service 에 Virtual Servers for VPC 클러스터를 프로비저닝합니다. 그런 다음 IBM Cloud Object Storage 서비스 인스턴스의 서비스 인증 정보를 Kubernetes 시크릿으로 클러스터에 추가합니다. 이 템플리트의 기본값을 변경하여 여러 서브넷 및 구역에 클러스터를 분산시킬 수 있습니다. 그러나 이 튜토리얼의 단계에서는 템플리트에 제공된 기본값을 사용합니다.
다음 이미지는 이 튜토리얼의 일부로 프로비저닝되는 클라우드 아키텍처 컴포넌트를 표시합니다.

컴포넌트 | 설명 |
---|---|
Region |
지역은 한 지역의 여러 구역에 걸쳐 복제하여 클러스터의 마스터 노드 및 해당 노드의 가용성을 높입니다. |
VPC |
VPC는 퍼블릭 클라우드의 동적 확장성과 함께 프라이빗 클라우드 환경의 보안을 제공합니다. |
zones |
클러스터의 구역마다 하나의 VPC 서브넷이 있어야 합니다. 사용 가능한 구역은 VPC에서 작성한 메트로 위치에 따라 다릅니다. |
subnet |
VPC 서브넷은 클러스터에서 작업자 노드 및 로드 밸런서 서비스에 대한 사설 IP 주소를 제공하는 데 사용됩니다. VPC 서브넷에 있는 IP 주소의 수는 변경할 수 없습니다. |
master node |
작업자 노드 세트(워크로드 런타임)를 제어 및 관리하며 Kubernetes의 클러스터와 유사합니다. |
cluster |
클러스터에는 제어 플레인과 하나 이상의 컴퓨팅 시스템 또는 노드가 포함됩니다. 노드는 애플리케이션 및 워크로드를 실행합니다. |
worker node |
작업자 풀에 구역을 추가하십시오. 작업자 풀에 구역을 추가하면 작업자 풀에서 정의된 작업자 노드가 구역에서 프로비저닝되며 향후 워크로드 스케줄링 대상으로 고려됩니다. |
ibm_container_vpc_worker_pool
제공자 리소스를 사용하여 VPC 클러스터에 작업자 노드 및 풀을 추가할 수 있습니다.
비용은 리소스 사용량에 따라 발생합니다. VPC 가격 책정에 대한 자세한 정보는 VPC 가격 책정을 참조하십시오.
목표
이 튜토리얼에서는 다음을 수행할 수 있습니다.
- IBM에서 제공하는 Terraform 템플리트를 사용하여 VPC(Virtual Private Cloud)를 작성하고 IBM Cloud Kubernetes Service에서 실행되는 Virtual Servers for VPC 클러스터를 프로비저닝하는 방법을 알아봅니다.
- IBM Cloud Object Storage 서비스 인스턴스를 작성하고 서비스를 IBM Cloud Kubernetes Service 클러스터에 바인드합니다.
- IBM Cloud Schematics 작업공간 작성 방법을 탐색합니다.
- Terraform 실행 플랜을 작성하고 IBM Cloud에 Terraform 템플리트를 적용합니다.
- 작성하는 IBM Cloud® 리소스를 검토합니다.
필요한 시간
1시간
대상
이 튜토리얼은 IBM Cloud Schematics를 사용하여 클라우드 인프라 서비스를 작성하고 관리하기 위해 Terraform 템플리트의 사용 방법을 학습하려는 개발자 및 시스템 관리자를 대상으로 합니다.
전제조건
시작하기 전에 다음 전제조건을 완료하십시오.
- IBM Cloud 의 Pay-As-You-Go 또는 구독 IBM Cloud 계정을 만듭니다.
- IBM Cloud CLI 및 Schematics CLI 플러그인을 설치하십시오.
IBMCLOUD_API_KEY
에 대한 환경 변수를 설정했는지 확인하십시오.- Schematics 작업공간을 작성하고 작업하기 위해 Schematics의 Cloud Identity and Access Management에 관리자 서비스 액세스 역할이 지정되었는지 확인하십시오.
- VPC 인프라 리소스를 작성하기 위한 필수 권한이 지정되었는지 확인하십시오.
- 단계에 따라 IBM Cloud Kubernetes Service 클러스터를 작성하고 클러스터 설정을 위해 계정을 준비하는 데 필요한 권한을 확보하십시오.
- IBM® Key Protect의 인스턴스 및 IBM Cloud Object Storage를 작성하는 데 필요한 권한이 있는지 확인하십시오.
Schematics 작업공간 작성
IBM 제공 Terraform 템플리트를 사용하여 Schematics 작업공간을 작성하고 구성하십시오.
- VPC 인프라에 IBM Cloud Kubernetes Service 클러스터를 생성하기 위해 IBM 제공한 템플릿을 검토하세요.
- main.tf: 이 파일에는 Schematics에서 실행되는 Terraform 코드가 포함되어 있습니다. Terraform 코드에는 두 개 다른 구역에 서브넷이 있는 VPC를 작성하고, IBM Cloud Kubernetes Service 클러스터를 작성하고, IBM Cloud Object Storage 서비스 인스턴스를 바인드하도록 클러스터를 구성하기 위한 데이터 소스 및 리소스가 포함되어 있습니다.
- output.tf: 이 파일에는 Schematics를 Terraform 템플리트에 적용한 후에 리턴하려는 컨텐츠가 포함되어 있습니다. 이 경우 클러스터 구성 및 인증서가 저장되는 로컬 시스템의 파일 경로를 가져옵니다. 이러한 파일을 사용하여 나중에 클러스터에 액세스할 수 있습니다.
- variables.tf: 이 파일에는 Terraform 템플리트를 실행하기 위해 지정해야 하는 모든 변수가 포함되어 있습니다. 제공되는 기본값을 사용하거나 Schematics 작업공간을 작성할 때 대체할 수 있습니다.
- versions.tf: 이 파일에는 이 템플리트에 필요한 Terraform 버전이 포함되어 있습니다.
- Schematics 작업공간의 구성을 저장하는 JSON 파일을 작성하십시오.
IBM Cloud Schematics 작업공간 작성
-
Schematics 의 작업 공간 설정을 지정하려면 다음 작업 공간 JSON 파일을 복사하여 로컬 컴퓨터에
cluster_payload.json
로 저장하십시오. 페이로드 매개변수에 대한 자세한 정보는 Schematics 작업공간 새 명령을 참조하십시오.cluster_payload.json 예제:
{ "name": "mytest1_cluster", "type": [ "terraform_v1.4" ], "description": "", "template_repo": { "url":"https://github.com/IBM-Cloud/terraform-provider-ibm/tree/master/examples/ibm-cluster/vpc-gen2-cluster" }, "template_data": [ { "folder": ".", "type": "terraform_v1.4", "variablestore": [ { "name": "worker_pool_name", "value": "workerpool", "type": "string" }, { "name": "service_instance_name", "value": "myservice", "type": "string" }, { "name": "flavor", "value": "cx2.2x4", "type": "string" }, { "name": "cluster_name", "value": "cluster", "type": "string" }, { "name": "region", "value": "us-south", "type": "string" }, { "name": "worker_count", "value": "1", "type": "string" }, { "name": "resource_group", "value": "Default", "type": "string" } ] } ], "githubtoken": "<provide your githubtoken>" }
표에 설명된 대로 변수의 페이로드 값을 편집할 수 있습니다.
페이로드 세부사항 가변 값 name
고유 이름을 지정하십시오. type
Terraform v1.0 githubtoken
GitHub 토큰을 지정하십시오. variablestore
리소스 그룹 및 해당 세부사항을 지정하십시오. Terraform 구성 파일에서 선언한 이름, 유형 및 값과 같은 입력 변수를 입력하십시오. 변수 저장소에 대한 자세한 정보는 변수 저장소 매개변수 를 참조하십시오. -
명령행 인터페이스에서 JSON 파일을 사용하여 작업공간을 작성하십시오.
ibmcloud schematics workspace new --file <fully qualified path of cluster_payload.JSON file>
작업공간 작성에 대한 자세한 정보는 명령행 명령 및 구문 을 참조하십시오.
샘플 예제 출력
Creation Time Mon Feb 15 19:18:55 Description Frozen false ID mytest1_cluster-62183a6b-fbed-43 Name mytest1_cluster Status DRAFT Template Variables for: examples-d3d10ae5-76ef-47 Name Value worker_pool_name workerpool service_instance_name myservice flavor cx2.2x4 cluster_name cluster region us-south worker_count 1 resource_group Default OK
IBM Cloud 대시보드에서 새 작업공간
mytest1_cluster
를 볼 수도 있습니다. -
list
명령을 사용하여 작업공간이 작성되었는지 확인하십시오.ibmcloud schematics workspace list
샘플 예제 출력
Name ID Description Status Frozen mytest1_cluster mytest1_cluster-62183a6b-fbed-43 ACTIVE False OK
Terraform 템플리트 계획 및 적용
Schematics 실행 플랜을 작성하십시오. 실행 계획은 Terraform 템플릿에 설명된 상태를 달성하기 위해 추가, 수정 또는 제거해야 하는 클라우드 리소스를 보여줍니다.
Schematics 플랜 조치를 수행하려면 작업공간이 Active
상태에 있어야 합니다. 작업공간 상태에 대한 자세한 정보는 작업공간 상태 를 참조하십시오.
Terraform 실행 플랜을 작성하는 중에는 작업공간을 변경할 수 없습니다.
-
Schematics 플랜 명령을 실행하십시오. 이 명령은
kube_version
에 대해 프롬프트를 표시하며ibmcloud ks versions
명령을 실행하여 프로비저닝할 지원되는 Kubernetes 버전을 나열합니다. 플랜 명령은 활동 ID를 반환합니다.ibmcloud schematics plan --id mytest1_cluster-62183a6b-fbed-43
샘플 예제 출력
Activity ID 3886e3752a0a83b04732b6666533b464 OK
활동 ID는 실행 플랜의 로그를 검색하는 데 사용됩니다.
-
실행 계획을 검토하여 클라우드 자원을 확인하십시오. 활동 ID로 로그를 검색하려면 1단계에서 생성된 활동 ID를 사용하십시오.
ibmcloud schematics logs --id mytest1_cluster-62183a6b-fbed-4
작업 디렉토리 또는 IBM Cloud 대시보드에서 출력을 보고 작업공간 상태를 볼 수 있습니다.
-
Terraform 템플리트를 IBM Cloud에 적용하십시오. Terraform 템플릿을 적용하면 템플릿에 지정된 모든 클라우드 리소스가 IBM Cloud 계정에 생성됩니다.
이 프로세스는 완료하는 데 1분이 걸립니다. 이 프로세스 중에는 작업공간을 변경할 수 없습니다.
ibmcloud schematics apply --id <workspace_ID>
샘플 예제 출력
Do you really want to perform this action? [y/N]> y Activity ID 5676e3752a0a84565667666533b4345 OK
-
작업공간의 로그를 검토하십시오. 작업공간 ID 또는 활동 ID를 사용하여 로그를 보려면 2단계를 참조하십시오.
-
IBM Cloud 에서 클라우드 자원이 성공적으로 생성되었는지 확인하십시오.
ibmcloud schematics workspace get --id <WORKSPACE_ID>
또는 IBM Cloud 대시보드를 통해 작업공간의 상태를 볼 수 있습니다. IBM Cloud에서 탐색 메뉴 -> Schematics -> 작업공간 -> 리소스를 선택하여 작업공간에 있는 리소스의 적용 상태를 관찰하십시오.
-
명령을 실행하여 로그를 보고 작업공간 및 리소스 작성의 상태를 분석하십시오.
ibmcloud schematics logs --id mytest1_cluster-62183a6b-fbed-43
작업 디렉토리 또는 IBM Cloud 대시보드 작업공간 작업 상태에서 출력을 볼 수 있습니다.
다음에 수행할 작업
수고하셨습니다! IBM Cloud Schematics를 사용하여 VPC 클러스터를 성공적으로 프로비저닝했습니다. 이제 키 관리 서비스 및 로드 밸런서를 첨부하도록 클러스터 매개변수를 구성하는 방법을 학습할 수 있습니다. 키 관리 서비스 및 IBM Cloud Kubernetes 작업자 풀에 대한 자세한 정보는 Key Management 서비스 및 IBM Cloud Kubernetes 작업자 풀 을 참조하십시오.