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
1
2
vi variables.tf
variable name_scn02 {
default = "nat1"
}
3
# 콘솔에서
acg
80 허용
4
로드밸런서 접속 하기
게임 하기
https://brunch.co.kr/@topasvga/4758
https://brunch.co.kr/@topasvga/1949
감사합니다.