brunch

테라폼-쿠버네티스 설치-2025-06

by Master Seo

<1> 명령서버 설치이후 설치 유틸

<2> NAT 생성





<1> 명령서버 설치이후 설치 유틸



8

#쿠버네티스 API에 명령을 내리는 kubectl 명령어 설치


curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"

sudo install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl

kubectl version



#테라폼 쿠버네티스 소스


cd

wget https://github.com/NaverCloudPlatform/terraform-provider-ncloud/archive/refs/heads/master.zip

unzip master.zip


cd /root/terraform-provider-ncloud-main/examples/nks

ls



10

# 네이버 쿠버네티스 서비스의 권한을 받기 위한 툴 설치

# ncp-iam-authenticator 설치


curl -o ncp-iam-authenticator -L https://github.com/NaverCloudPlatform/ncp-iam-authenticator/releases/latest/download/ncp-iam-authenticator_linux_amd64

chmod +x ./ncp-iam-authenticator

mkdir -p $HOME/bin && cp ./ncp-iam-authenticator $HOME/bin/ncp-iam-authenticator &&

export PATH=$PATH:$HOME/bin

echo 'export PATH=$PATH:$HOME/bin' >> ~/.bash_profile

ncp-iam-authenticator help



# 메뉴얼

# https://guide.ncloud-docs.com/docs/k8s-iam-auth-ncp-iam-authenticator



# 인증은 나중에 한다.

# cd

# ncp-iam-authenticator create-kubeconfig --region KR --clusterUuid a2452f --output kubeconfig.yaml




11

# 테라폼으로 쿠버네티스 생성해 보자

[root@command1 nks]# ls

main.tf variables.tf versions.tf


아래 3과정을 거친다. - 실행하지 마세요.

terraform init

terraform plan

terraform apply -auto-approve



# 변수 파일에 값을 넣어야 한다!!!!



vi variables.tf


[root@command1 nks]# more variables.tf

variable name {

default = "tf-nks"

}

variable nks_version {

default = "1.32"

}

variable client_ip {

default = "YOUR_CLIENT_IP“

}

variable access_key {

default = "YOUR_ACCESS_KEY"

}

variable secret_key {

default = "YOUR_SECRET_KEY"

}

# variable login_key {

# default = "YOUR_LOGIN_KEY"

# }




12

# Mian.tf 에서 로그인 키 생성은 삭제한다.


# 기존 존재하는 키로 사용한다.


# resource "ncloud_login_key" "loginkey" {

# key_name = var.login_key

# }



32번줄

# login_key_name = ncloud_login_key.loginkey.key_name

# login_key_name = “ncp-k8s”

-------




16

# vi main.tf

- taint 부분 삭제~ - vi dd



label {

key = "foo"

value = "bar"

}

taint {

key = "foo"

value = "bar"

effect = "NoExecute"

}



# https://kubernetes.io/docs/concepts/scheduling-eviction/taint-and-toleration/

----



terraform init

terraform apply -auto-approve

35분 후



17

# 생성된 쿠버네티스 권한 등록 = 콘솔에서 UUID 확인



cd

ncp-iam-authenticator create-kubeconfig --region KR --clusterUuid 3864ef36-e940-4d50-9391-55e65a15211b --output kubeconfig.yaml



18

vi ~/.bash_profile


# 맨 아래줄에 아래 내용 3줄 추가


alias k='kubectl --kubeconfig="/root/kubeconfig.yaml"'

alias kw='watch -d kubectl get deploy,svc,pods --kubeconfig="/root/kubeconfig.yaml"'

alias kwn='watch -d kubectl get no,deploy,svc,pods --kubeconfig="/root/kubeconfig.yaml"'


저장하고 나옴

:wq!


# 반영 , 아래 2줄 실행


source ~/.bash_profile

k get nodes




# 참고사이트

https://medium.com/naver-cloud-platform/cbe27e197a97

---------





19

터미널2에서 kw



20

# 게임 배포


cat <<EOF | k create -f -

apiVersion: apps/v1

kind: Deployment

metadata:

name: deployment-2048

spec:

replicas: 2

selector:

matchLabels:

app.kubernetes.io/name: app-2048

template:

metadata:

labels:

app.kubernetes.io/name: app-2048

spec:

containers:

- name: app-2048

image: alexwhen/docker-2048

ports:

- containerPort: 80

EOF

k expose deployment deployment-2048 --port=80 --type=LoadBalancer



----------

# 게임 서비스가 프라이빗에 설치되었다. NAT생성해 인터넷이 되도록 하자.


# 테라폼 네트워크에 NAT 추가

# 아래 네트워크를 구축해보자.

# NAT 추가!!!



cd /root/terraform-provider-ncloud-main/examples/nks


vi nat.tf


root@command2:~/terraform-provider-ncloud-main/examples/nks# ls

backup main.tf nat.tf pub1.tf terraform.tfstate terraform.tfstate.backup variables.tf versions.tf



참고 사이트

https://brunch.co.kr/@topasvga/3828


cd /root/terraform-provider-ncloud-main/examples/nks



<2> NAT 생성



1



2

vi variables.tf


variable name_scn02 {

default = "nat1"

}


3

# 콘솔에서


acg

80 허용



4

로드밸런서 접속 하기

게임 하기


테라폼 이미지.jfif



# 같이 볼만한 자료


https://brunch.co.kr/@topasvga/4758



# 테라폼 시작하기


https://brunch.co.kr/@topasvga/1949


감사합니다.

매거진의 이전글NCP 20탄-7. 테라폼2-2024