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.)