Terraform에서 GKE (GoogleContainerCluster) 용 컨테이너 클러스터 만들기
전제
사전 작업
GoogleDevelopersConsole에서 다음 작업을 수행합니다.
절차
tf 파일과 같은 위치에 미리 얻은 서비스 계정 키의 JSON을 넣습니다.
■tf 파일 만들기
variable "project" {}
variable "region" {
  default = "asia-east1"
}
variable "cluster_name" {}
variable "zone" {}
variable "network" {}
variable "initial_node_count" {}
variable "machine_type" {}
variable "disk_size" {}
variable "master_auth_username" {}
variable "master_auth_password" {}
provider "google" {
  credentials = "${file("account.json")}"
  project     = "${var.project}"
  region      = "${var.region}"
}
resource "google_container_cluster" "default" {
  name = "${var.cluster_name}"
  zone = "${var.zone}"
  network = "${var.network}"
  initial_node_count = "${var.initial_node_count}"
  node_config {
    machine_type = "${var.machine_type}"
    disk_size_gb = "${var.disk_size}"
  }
  master_auth {
    username = "${var.master_auth_username}"
    password = "${var.master_auth_password}"
  }
}
■terraform.tfvars의 내용
project = "************"
cluster_name = "cluster-1"
zone = "asia-east1-b"
network = "default"
initial_node_count = "3"
machine_type = "f1-micro"
disk_size = "10"
master_auth_username = "***********"
master_auth_password = "***********"
※f1-micro의 경우, initial_node_count의 값은 3 이상을 지정
terraform apply 실행하면 컨테이너 클러스터가 생성됨
 Kubernetes 웹 UI에 로그인
만든 컨테이너 클러스터의 MASTER IP 확인
$ gcloud container clusters list
NAME       ZONE          MASTER_VERSION  MASTER_IP        MACHINE_TYPE  NUM_NODES  STATUS
cluster-1  asia-east1-b  1.1.3           ***.***.***.***  f1-micro      3          RUNNING
https://{위 MASTER_IP에 표시된 IP 주소}/ui/방문
※Basic 인증의 ID・패스워드는 terraform 의 .tfvars 로 설정한 master_auth_username/master_auth_password 가 됩니다
 
kubectl 자격 증명 얻기
$ gcloud container clusters get-credentials cluster-1
노드 확인
$ kubectl get node
NAME                               LABELS                                                    STATUS    AGE
gke-cluster-1-e6ff40f6-node-oxvo   kubernetes.io/hostname=gke-cluster-1-e6ff40f6-node-oxvo   Ready     1m
gke-cluster-1-e6ff40f6-node-v2rg   kubernetes.io/hostname=gke-cluster-1-e6ff40f6-node-v2rg   Ready     1m
gke-cluster-1-e6ff40f6-node-v8mt   kubernetes.io/hostname=gke-cluster-1-e6ff40f6-node-v8mt   Ready     1m
 ※치 PS
cluster 내의 노드 추가·삭제에 관해서는, terraform에서는 변경할 수 없다
initial_node_count = "4"(으)로 변경해 terraform plan 실행하면 cluster 가 재작성되는 것을 알 수 있다
-/+ google_container_cluster.default
    cluster_ipv4_cidr:                    "10.52.0.0/14" => "<computed>"
    endpoint:                             "***.***.***.***" => "<computed>"
    initial_node_count:                   "3" => "4" (forces new resource)
 노드를 추가하는 방법
먼저 인스턴스 그룹 확인
$ gcloud compute instance-groups managed list
NAME                         ZONE         BASE_INSTANCE_NAME          SIZE TARGET_SIZE INSTANCE_TEMPLATE            AUTOSCALED
gke-cluster-1-e6ff40f6-group asia-east1-b gke-cluster-1-e6ff40f6-node 3    3           gke-cluster-1-e6ff40f6-1-1-3 no
gcloud 명령으로 확인한 인스턴스 그룹의 크기 조정 (노드 수를 3 → 4로 변경)
$ gcloud compute instance-groups managed resize gke-cluster-1-e6ff40f6-group --size 4
...snip...
currentActions:
  abandoning: 0
  creating: 1
  deleting: 0
  none: 3
  recreating: 0
  refreshing: 0
  restarting: 0
...snip...
targetSize: 4
zone: asia-east1-b
노드 확인
$ kubectl get node
NAME                               LABELS                                                    STATUS    AGE
gke-cluster-1-e6ff40f6-node-c723   kubernetes.io/hostname=gke-cluster-1-e6ff40f6-node-c723   Ready     1m
gke-cluster-1-e6ff40f6-node-oxvo   kubernetes.io/hostname=gke-cluster-1-e6ff40f6-node-oxvo   Ready     23m
gke-cluster-1-e6ff40f6-node-v2rg   kubernetes.io/hostname=gke-cluster-1-e6ff40f6-node-v2rg   Ready     23m
gke-cluster-1-e6ff40f6-node-v8mt   kubernetes.io/hostname=gke-cluster-1-e6ff40f6-node-v8mt   Ready     23m
 노드 삭제
노드 수를 4→3으로 변경
$ gcloud compute instance-groups managed resize gke-cluster-1-e6ff40f6-group --size 3
노드 확인
$ kubectl get node
NAME                               LABELS                                                    STATUS    AGE
gke-cluster-1-e6ff40f6-node-oxvo   kubernetes.io/hostname=gke-cluster-1-e6ff40f6-node-oxvo   Ready     34m
gke-cluster-1-e6ff40f6-node-v2rg   kubernetes.io/hostname=gke-cluster-1-e6ff40f6-node-v2rg   Ready     34m
gke-cluster-1-e6ff40f6-node-v8mt   kubernetes.io/hostname=gke-cluster-1-e6ff40f6-node-v8mt   Ready     34m
                
                    
        
    
    
    
    
    
                
                
                
                
                    
                        
                            
                            
                            Reference
                            
                            이 문제에 관하여(Terraform에서 GKE (GoogleContainerCluster) 용 컨테이너 클러스터 만들기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
                                
                                https://qiita.com/quickguard/items/9fdf263b2f822474305c
                            
                            
                            
                                텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
                            
                            
                                
                                
                                
                                
                                
                                우수한 개발자 콘텐츠 발견에 전념
                                (Collection and Share based on the CC Protocol.)
                            
                            
                        
                    
                
                
                
            
variable "project" {}
variable "region" {
  default = "asia-east1"
}
variable "cluster_name" {}
variable "zone" {}
variable "network" {}
variable "initial_node_count" {}
variable "machine_type" {}
variable "disk_size" {}
variable "master_auth_username" {}
variable "master_auth_password" {}
provider "google" {
  credentials = "${file("account.json")}"
  project     = "${var.project}"
  region      = "${var.region}"
}
resource "google_container_cluster" "default" {
  name = "${var.cluster_name}"
  zone = "${var.zone}"
  network = "${var.network}"
  initial_node_count = "${var.initial_node_count}"
  node_config {
    machine_type = "${var.machine_type}"
    disk_size_gb = "${var.disk_size}"
  }
  master_auth {
    username = "${var.master_auth_username}"
    password = "${var.master_auth_password}"
  }
}
project = "************"
cluster_name = "cluster-1"
zone = "asia-east1-b"
network = "default"
initial_node_count = "3"
machine_type = "f1-micro"
disk_size = "10"
master_auth_username = "***********"
master_auth_password = "***********"
만든 컨테이너 클러스터의 MASTER IP 확인
$ gcloud container clusters list
NAME       ZONE          MASTER_VERSION  MASTER_IP        MACHINE_TYPE  NUM_NODES  STATUS
cluster-1  asia-east1-b  1.1.3           ***.***.***.***  f1-micro      3          RUNNING
https://{위 MASTER_IP에 표시된 IP 주소}/ui/방문
※Basic 인증의 ID・패스워드는 terraform 의 .tfvars 로 설정한 master_auth_username/master_auth_password 가 됩니다

kubectl 자격 증명 얻기
$ gcloud container clusters get-credentials cluster-1
노드 확인
$ kubectl get node
NAME                               LABELS                                                    STATUS    AGE
gke-cluster-1-e6ff40f6-node-oxvo   kubernetes.io/hostname=gke-cluster-1-e6ff40f6-node-oxvo   Ready     1m
gke-cluster-1-e6ff40f6-node-v2rg   kubernetes.io/hostname=gke-cluster-1-e6ff40f6-node-v2rg   Ready     1m
gke-cluster-1-e6ff40f6-node-v8mt   kubernetes.io/hostname=gke-cluster-1-e6ff40f6-node-v8mt   Ready     1m
※치 PS
cluster 내의 노드 추가·삭제에 관해서는, terraform에서는 변경할 수 없다
initial_node_count = "4"(으)로 변경해 terraform plan 실행하면 cluster 가 재작성되는 것을 알 수 있다
-/+ google_container_cluster.default
    cluster_ipv4_cidr:                    "10.52.0.0/14" => "<computed>"
    endpoint:                             "***.***.***.***" => "<computed>"
    initial_node_count:                   "3" => "4" (forces new resource)
 노드를 추가하는 방법
먼저 인스턴스 그룹 확인
$ gcloud compute instance-groups managed list
NAME                         ZONE         BASE_INSTANCE_NAME          SIZE TARGET_SIZE INSTANCE_TEMPLATE            AUTOSCALED
gke-cluster-1-e6ff40f6-group asia-east1-b gke-cluster-1-e6ff40f6-node 3    3           gke-cluster-1-e6ff40f6-1-1-3 no
gcloud 명령으로 확인한 인스턴스 그룹의 크기 조정 (노드 수를 3 → 4로 변경)
$ gcloud compute instance-groups managed resize gke-cluster-1-e6ff40f6-group --size 4
...snip...
currentActions:
  abandoning: 0
  creating: 1
  deleting: 0
  none: 3
  recreating: 0
  refreshing: 0
  restarting: 0
...snip...
targetSize: 4
zone: asia-east1-b
노드 확인
$ kubectl get node
NAME                               LABELS                                                    STATUS    AGE
gke-cluster-1-e6ff40f6-node-c723   kubernetes.io/hostname=gke-cluster-1-e6ff40f6-node-c723   Ready     1m
gke-cluster-1-e6ff40f6-node-oxvo   kubernetes.io/hostname=gke-cluster-1-e6ff40f6-node-oxvo   Ready     23m
gke-cluster-1-e6ff40f6-node-v2rg   kubernetes.io/hostname=gke-cluster-1-e6ff40f6-node-v2rg   Ready     23m
gke-cluster-1-e6ff40f6-node-v8mt   kubernetes.io/hostname=gke-cluster-1-e6ff40f6-node-v8mt   Ready     23m
 노드 삭제
노드 수를 4→3으로 변경
$ gcloud compute instance-groups managed resize gke-cluster-1-e6ff40f6-group --size 3
노드 확인
$ kubectl get node
NAME                               LABELS                                                    STATUS    AGE
gke-cluster-1-e6ff40f6-node-oxvo   kubernetes.io/hostname=gke-cluster-1-e6ff40f6-node-oxvo   Ready     34m
gke-cluster-1-e6ff40f6-node-v2rg   kubernetes.io/hostname=gke-cluster-1-e6ff40f6-node-v2rg   Ready     34m
gke-cluster-1-e6ff40f6-node-v8mt   kubernetes.io/hostname=gke-cluster-1-e6ff40f6-node-v8mt   Ready     34m
                
                    
        
    
    
    
    
    
                
                
                
                
                    
                        
                            
                            
                            Reference
                            
                            이 문제에 관하여(Terraform에서 GKE (GoogleContainerCluster) 용 컨테이너 클러스터 만들기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
                                
                                https://qiita.com/quickguard/items/9fdf263b2f822474305c
                            
                            
                            
                                텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
                            
                            
                                
                                
                                
                                
                                
                                우수한 개발자 콘텐츠 발견에 전념
                                (Collection and Share based on the CC Protocol.)
                            
                            
                        
                    
                
                
                
            
-/+ google_container_cluster.default
    cluster_ipv4_cidr:                    "10.52.0.0/14" => "<computed>"
    endpoint:                             "***.***.***.***" => "<computed>"
    initial_node_count:                   "3" => "4" (forces new resource)
먼저 인스턴스 그룹 확인
$ gcloud compute instance-groups managed list
NAME                         ZONE         BASE_INSTANCE_NAME          SIZE TARGET_SIZE INSTANCE_TEMPLATE            AUTOSCALED
gke-cluster-1-e6ff40f6-group asia-east1-b gke-cluster-1-e6ff40f6-node 3    3           gke-cluster-1-e6ff40f6-1-1-3 no
gcloud 명령으로 확인한 인스턴스 그룹의 크기 조정 (노드 수를 3 → 4로 변경)
$ gcloud compute instance-groups managed resize gke-cluster-1-e6ff40f6-group --size 4
...snip...
currentActions:
  abandoning: 0
  creating: 1
  deleting: 0
  none: 3
  recreating: 0
  refreshing: 0
  restarting: 0
...snip...
targetSize: 4
zone: asia-east1-b
노드 확인
$ kubectl get node
NAME                               LABELS                                                    STATUS    AGE
gke-cluster-1-e6ff40f6-node-c723   kubernetes.io/hostname=gke-cluster-1-e6ff40f6-node-c723   Ready     1m
gke-cluster-1-e6ff40f6-node-oxvo   kubernetes.io/hostname=gke-cluster-1-e6ff40f6-node-oxvo   Ready     23m
gke-cluster-1-e6ff40f6-node-v2rg   kubernetes.io/hostname=gke-cluster-1-e6ff40f6-node-v2rg   Ready     23m
gke-cluster-1-e6ff40f6-node-v8mt   kubernetes.io/hostname=gke-cluster-1-e6ff40f6-node-v8mt   Ready     23m
노드 삭제
노드 수를 4→3으로 변경
$ gcloud compute instance-groups managed resize gke-cluster-1-e6ff40f6-group --size 3
노드 확인
$ kubectl get node
NAME                               LABELS                                                    STATUS    AGE
gke-cluster-1-e6ff40f6-node-oxvo   kubernetes.io/hostname=gke-cluster-1-e6ff40f6-node-oxvo   Ready     34m
gke-cluster-1-e6ff40f6-node-v2rg   kubernetes.io/hostname=gke-cluster-1-e6ff40f6-node-v2rg   Ready     34m
gke-cluster-1-e6ff40f6-node-v8mt   kubernetes.io/hostname=gke-cluster-1-e6ff40f6-node-v8mt   Ready     34m
                
                    
        
    
    
    
    
    
                
                
                
                
                    
                        
                            
                            
                            Reference
                            
                            이 문제에 관하여(Terraform에서 GKE (GoogleContainerCluster) 용 컨테이너 클러스터 만들기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
                                
                                https://qiita.com/quickguard/items/9fdf263b2f822474305c
                            
                            
                            
                                텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
                            
                            
                                
                                
                                
                                
                                
                                우수한 개발자 콘텐츠 발견에 전념
                                (Collection and Share based on the CC Protocol.)
                            
                            
                        
                    
                
                
                
            
$ gcloud compute instance-groups managed resize gke-cluster-1-e6ff40f6-group --size 3
$ kubectl get node
NAME                               LABELS                                                    STATUS    AGE
gke-cluster-1-e6ff40f6-node-oxvo   kubernetes.io/hostname=gke-cluster-1-e6ff40f6-node-oxvo   Ready     34m
gke-cluster-1-e6ff40f6-node-v2rg   kubernetes.io/hostname=gke-cluster-1-e6ff40f6-node-v2rg   Ready     34m
gke-cluster-1-e6ff40f6-node-v8mt   kubernetes.io/hostname=gke-cluster-1-e6ff40f6-node-v8mt   Ready     34m
Reference
이 문제에 관하여(Terraform에서 GKE (GoogleContainerCluster) 용 컨테이너 클러스터 만들기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/quickguard/items/9fdf263b2f822474305c텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
                                
                                
                                
                                
                                
                                우수한 개발자 콘텐츠 발견에 전념
                                (Collection and Share based on the CC Protocol.)