Azure์ฉ GKE์ ์ ํ๋ฆฌ์ผ์ด์ ๋ฐฐํฌ
์ด ํ์ด์ง์์๋ ํด๋ฌ์คํฐ ๋ฐ ๋ ธ๋ ํ์ ๋ง๋ค๊ณ Azure์ฉ GKE๋ฅผ ์ฌ์ฉํด์ ์ํ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ฐฐํฌํ๋ ๋ฐฉ๋ฒ์ ์ค๋ช ํฉ๋๋ค.
Terraform ์ง์
Terraform์ ์ต์ํ๋ค๋ฉด GitHub์์ ์ ๊ณต๋๋ Terraform ์คํฌ๋ฆฝํธ๋ฅผ ์ฌ์ฉํ์ฌ ๊ธฐ๋ณธ ์๊ฑด์ ์๋ํํ๊ณ ํด๋ฌ์คํฐ๋ฅผ ๋ง๋ค ์ ์์ต๋๋ค.
์์ํ๊ธฐ ์ ์
ํด๋ฌ์คํฐ๋ฅผ ๋ง๋ค๊ธฐ ์ ๊ธฐ๋ณธ ์๊ฑด์ ๋ง๋ค์ด์ผ ํฉ๋๋ค. ํนํ ๋ค์ ๋ฆฌ์์ค๋ฅผ ์ ๊ณตํด์ผ ํฉ๋๋ค.
- ํด๋ฌ์คํฐ๊ฐ ์คํ๋๋ Azure ๊ฐ์ ๋คํธ์ํฌ
- Kubernetes ์ปจํธ๋กค ํ๋ ์ธ ๋ณต์ ๋ณธ์ ์๋ธ๋ท
- ์๋น์ค ์ฃผ ๊ตฌ์ฑ์์ ์ฌ์ฉํ์ฌ Azure ํ๊ฒฝ์ ๋ํด Azure์ฉ GKE์ ์ก์ธ์ค ๊ถํ์ ๋ถ์ฌํ๋ Azure ์ญํ ํ ๋น
- Azure ์๋น์ค์ ์ธ์ฆ์ ์ํํ๊ณ Azure ๊ณ์ ์์ ๋ฆฌ์์ค๋ฅผ ๊ด๋ฆฌํ๊ธฐ ์ํด Azure์ฉ GKE์ ์ฌ์ฉ๋๋ AzureClient ๋ฆฌ์์ค
- ํด๋ฌ์คํฐ์์ Azure ๊ฐ์ ๋จธ์ ์ ์ก์ธ์คํ๊ธฐ ์ํ SSH ํค ์
์ด๋ฌํ ๋ฆฌ์์ค๋ ๋ชจ๋ Anthos ํด๋ฌ์คํฐ ๊ฐ์ ๊ณต์ ๋ ์ ์๋ ๊ฒ์ด๋ฉฐ ํด๋น ๋ฆฌ์์ค๋ฅผ ๋ง๋ค๊ณ ๊ด๋ฆฌํ๋ ์ฑ ์์ ์ฌ์ฉ์๊ฐ ์ง๊ฒ ๋ฉ๋๋ค. ์ด ์ธ์ ํด๋ฌ์คํฐ์ ๋ชจ๋ ๊ธฐ๋ณธ Azure ๋ฆฌ์์ค๋ Azure์ฉ GKE์์ ๊ด๋ฆฌ๋ฉ๋๋ค.
gcloud CLI์ ๊ธฐ๋ณธ ์ค์ ๊ตฌ์ฑ
gcloud CLI๋ฅผ ์ฌ์ฉํ์ฌ ๊ธฐ๋ณธ ํ๋ก์ ํธ ๋ฐ Google Cloud ๋ฆฌ์ ์ ๊ธฐ๋ณธ ์ค์ ์ ๊ตฌ์ฑํฉ๋๋ค.
ํ๋ก์ ํธ์๋ ๊ณ ์ ์๋ณ์์ธ ํ๋ก์ ํธ ID๊ฐ ์์ต๋๋ค. ํ๋ก์ ํธ๋ฅผ ๋ง๋ค ๋ ์๋ ์์ฑ๋๋ ํ๋ก์ ํธ ID๋ฅผ ์ฌ์ฉํ๊ฑฐ๋ ์ฌ์ฉ์ ๊ณ ์ ์ ID๋ฅผ ๋ง๋ค ์ ์์ต๋๋ค.
Google Cloud ๋ฆฌ์ ์ ํด๋ฌ์คํฐ๋ฅผ ๊ด๋ฆฌํ๋ ์์น์
๋๋ค. ์๋ฅผ ๋ค๋ฉด us-west1์
๋๋ค. ์์ธํ ๋ด์ฉ์
๊ด๋ฆฌ ๋ฆฌ์ ์ ์ฐธ์กฐํ์ธ์.
์ด๋ฌํ ๊ธฐ๋ณธ ์ค์ ์ ๊ตฌ์ฑํ๋ฉด Google Cloud CLI๋ฅผ ์คํํ ๋ ์ด๋ฅผ ํฌํจํ ํ์๊ฐ ์์ต๋๋ค. --project ๋ฐ --location ํ๋๊ทธ๋ฅผ Google Cloud CLI์ ์ ๋ฌํ์ฌ ์ค์ ์ ์ง์ ํ๊ฑฐ๋ ๊ธฐ๋ณธ ์ค์ ์ ์ฌ์ ์ํ ์ ์์ต๋๋ค.
๊ธฐ๋ณธ ํ๋ก์ ํธ ๋ฐ ์์น๋ฅผ ๊ตฌ์ฑํ ํ Azure์ฉ GKE ๋ฆฌ์์ค๋ฅผ ๋ง๋ค๋ฉด ๋ฆฌ์์ค๊ฐ ํด๋น ํ๋ก์ ํธ์ ์์น์ ์๋์ผ๋ก ์์ฑ๋ฉ๋๋ค.
๊ธฐ๋ณธ๊ฐ์ ์ค์ ํ๋ ค๋ฉด ๋ค์ ๋จ๊ณ๋ฅผ ๋ฐ๋ฅด์ธ์.
๊ธฐ๋ณธ ํ๋ก์ ํธ๋ฅผ ์ค์ ํฉ๋๋ค.
gcloud config set project PROJECT_IDPROJECT_ID๋ฅผ ํ๋ก์ ํธ ID๋ก ๋ฐ๊ฟ๋๋ค.๊ธฐ๋ณธ ๊ด๋ฆฌ ์์น๋ฅผ ์ค์ ํฉ๋๋ค.
gcloud config set container_azure/location GOOGLE_CLOUD_LOCATIONGOOGLE_CLOUD_LOCATION์ ์ฌ์ฉ์ ์์น(์:us-west1)๋ก ๋ฐ๊ฟ๋๋ค.
ํด๋ฌ์คํฐ์ Azure ๋ฆฌ์์ค ID ์ ํ
๋ฆฌ์์ค ๊ทธ๋ฃน ID ์ ํ
ํด๋ฌ์คํฐ์ ๋ฆฌ์์ค ๊ทธ๋ฃน์ ๋ค์ ๋ช ๋ น์ด๋ฅผ ์คํํ๋ ํ๊ฒฝ ๋ณ์์ ์ ์ฅํฉ๋๋ค.
CLUSTER_RESOURCE_GROUP_ID=$(az group show --query id --output tsv \
--resource-group=CLUSTER_RESOURCE_GROUP_NAME)
CLUSTER_RESOURCE_GROUP_NAME์ Azure ๋ฆฌ์์ค ๊ทธ๋ฃน ๋ง๋ค๊ธฐ ๊ธฐ๋ณธ ์๊ฑด ๋จ๊ณ์์ ์ค์ ํ ํด๋ฌ์คํฐ ๋ฆฌ์์ค๋ฅผ ํ๋ก๋น์ ๋ํ ๋ฆฌ์์ค ๊ทธ๋ฃน์ ์ด๋ฆ์ผ๋ก ๋ฐ๊ฟ๋๋ค.
๊ฐ์ ๋คํธ์ํฌ ID ์ ํ
๋ค์ ๋ช ๋ น์ด๋ฅผ ์คํํ์ฌ ํด๋ฌ์คํฐ์ VNet ID๋ฅผ ํ๊ฒฝ ๋ณ์์ ์ ์ฅํฉ๋๋ค.
VNET_ID=$(az network vnet show --query id --output tsv \
--resource-group=VNET_RESOURCE_GROUP_NAME \
--name=VNET_NAME)
๋ค์์ ๋ฐ๊ฟ๋๋ค.
VNET_RESOURCE_GROUP_NAME์ Azure ๊ฐ์ ๋คํธ์ํฌ ๋ง๋ค๊ธฐ ๊ธฐ๋ณธ ์๊ฑด ๋จ๊ณ์์ ์ค์ ํ ๊ฐ์ ๋คํธ์ํฌ๋ฅผ ํฌํจํ๋ ๋ฆฌ์์ค ๊ทธ๋ฃน์ ์ด๋ฆ์ผ๋ก ๋ฐ๊ฟ๋๋ค.VNET_NAME์ Azure ๊ฐ์ ๋คํธ์ํฌ ๋ง๋ค๊ธฐ ๊ธฐ๋ณธ ๋จ๊ณ์์ ์ค์ ํ ๊ฐ์ ๋คํธ์ํฌ์ ์ด๋ฆ์ผ๋ก ๋ฐ๊ฟ๋๋ค.
์๋ธ๋ท ID ์ ํ
๋ค์ ๋ช ๋ น์ด๋ฅผ ์คํํ์ฌ ํด๋ฌ์คํฐ์ ์๋ธ๋ท ID๋ฅผ ํ๊ฒฝ ๋ณ์์ ์ ์ฅํฉ๋๋ค.
SUBNET_ID=$(az network vnet subnet show --query id --output tsv \
--resource-group VNET_RESOURCE_GROUP_NAME \
--vnet-name VNET_NAME \
--name SUBNET_NAME)
๋ค์๊ณผ ๊ฐ์ด ๋ฐ๊ฟ๋๋ค.
VNET_RESOURCE_GROUP_NAME์ ๊ฐ์ ๋คํธ์ํฌ๊ฐ ํฌํจ๋ ๊ธฐ์กด ๋ฆฌ์์ค ๊ทธ๋ฃน ์ด๋ฆ์ผ๋ก ๋ฐ๊ฟ๋๋ค. ์ด ์ด๋ฆ์ Azure ๊ฐ์ ๋คํธ์ํฌ ๋ง๋ค๊ธฐ์์ ์ค์ ํ ๋ฆฌ์์ค ๊ทธ๋ฃน ์ด๋ฆ์ผ ์ ์์ต๋๋ค.VNET_NAME์ ๊ฐ์ ๋คํธ์ํฌ ์ด๋ฆ์ผ๋ก ๋ฐ๊ฟ๋๋ค. Azure ๊ฐ์ ๋คํธ์ํฌ ๋ง๋ค๊ธฐ์์ ์ค์ ํ ๊ฐ์ ๋คํธ์ํฌ์ ์ด๋ฆ์ผ ์ ์์ต๋๋ค.SUBNET_NAME์ ์๋ธ๋ท ์ด๋ฆ์ผ๋ก ๋ฐ๊ฟ๋๋ค(์:default).
ํด๋ฌ์คํฐ์ CIDR ๋ฒ์ ์ ํ
Kubernetes์์๋ ํด๋ฌ์คํฐ์ 2๊ฐ์ CIDR ๋ฒ์๋ฅผ ์ ๊ณตํด์ผ ํฉ๋๋ค. ์ด๋ฌํ CIDR ๋ฒ์๋ VPC ์๋ธ๋ท์ ์ฌ์ฉ๋๋ CIDR ๋ฒ์์ ๊ฒน์น์ง ์๋๋ก ์ ํํด์ผ ํฉ๋๋ค. ํด๋ฌ์คํฐ์ ์์ ์ต๋ ํฌ๊ธฐ์ ๋ง๊ฒ ์ถฉ๋ถํ ์ปค์ผ ํฉ๋๋ค.
ํฌ๋ ์ฃผ์ CIDR ๋ฒ์: ์
Pod๊ฐ ์์ฑ๋๋ฉด ์ด ๋ฒ์์ IP ์ฃผ์๊ฐ ํ ๋น๋ฉ๋๋ค. ๋ฒ์ ์์: 192.168.208.0/20์๋น์ค ์ฃผ์ CIDR ๋ฒ์: ์ ์๋น์ค๊ฐ ์์ฑ๋๋ฉด ์ด ๋ฒ์์ IP ์ฃผ์๊ฐ ํ ๋น๋ฉ๋๋ค. ๋ฒ์ ์์: 192.168.224.0/20
ํด๋ฌ์คํฐ ๋ง๋ค๊ธฐ
๋ค์ ๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํ์ฌ Azure์ฉ GKE์์ ํด๋ฌ์คํฐ๋ฅผ ๋ง๋ญ๋๋ค.
gcloud container azure clusters create azure-cluster-0 \
--cluster-version 1.35.3-gke.300 \
--azure-region AZURE_REGION \
--fleet-project FLEET_PROJECT_ID \
--client CLIENT_NAME \
--resource-group-id $CLUSTER_RESOURCE_GROUP_ID \
--vnet-id $VNET_ID \
--subnet-id $SUBNET_ID \
--pod-address-cidr-blocks POD_CIDR_BLOCK \
--service-address-cidr-blocks SERVICE_CIDR_BLOCK \
--ssh-public-key "SSH_PUBLIC_KEY" \
--tags "google:gkemulticloud:cluster=azure-cluster-0"
๋ค์๊ณผ ๊ฐ์ด ๋ฐ๊ฟ๋๋ค.
AZURE_REGION: Google Cloud ๋ฆฌ์ ๊ณผ ์ฐ๊ฒฐ๋ ์ง์๋๋ Azure ๋ฆฌ์ ์ ๋๋ค.FLEET_PROJECT_ID๋ฅผ ํด๋ฌ์คํฐ๋ฅผ ๋ฑ๋กํ Fleet ํธ์คํธ ํ๋ก์ ํธ ID๋ก ๋ฐ๊ฟ๋๋ค.CLIENT_NAME: AzureClient ์ด๋ฆ์ ๋๋ค.POD_CIDR_BLOCK: ํด๋ฌ์คํฐ์ Pod ์ฃผ์ ๋ฒ์์ ๋๋ค.SERVICE_CIDR_BLOCK: ํด๋ฌ์คํฐ์ ์๋น์ค ์ฃผ์ ๋ฒ์์ ๋๋ค.SSH_PUBLIC_KEY๋ฅผ SSH ํค ์ ๋ง๋ค๊ธฐ ๊ธฐ๋ณธ ์๊ฑด ๋จ๊ณ์์ ๋ง๋ ๋๋ก SSH ๊ณต๊ฐ ํค์ ํ ์คํธ๋ก ๋ฐ๊ฟ๋๋ค. ํด๋น ๋จ๊ณ์์ ๊ณต๊ฐ ํค๋ฅผ ํ๊ฒฝ ๋ณ์์ ์ ์ฅํ๋ฉด${SSH_PUBLIC_KEY}๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค.
์์ธํ ๋ด์ฉ ๋ฐ ์ ํ์ ์ธ ๋งค๊ฐ๋ณ์๋ gcloud container azure clusters create ์ฐธ์กฐ ํ์ด์ง๋ฅผ ์ฐธ์กฐํ์ธ์.
๋ ธ๋ ํ ๋ง๋ค๊ธฐ
Google Cloud CLI๋ฅผ ์ฌ์ฉํ์ฌ ๋ ธ๋ ํ์ ๋ง๋ญ๋๋ค.
gcloud container azure node-pools create pool-0 \
--cluster azure-cluster-0 \
--node-version 1.35.3-gke.300 \
--vm-size Standard_B2s \
--max-pods-per-node 110 \
--min-nodes 1 \
--max-nodes 5 \
--ssh-public-key "SSH_PUBLIC_KEY" \
--subnet-id $SUBNET_ID \
--tags "google:gkemulticloud:cluster=azure-cluster-0"
SSH_PUBLIC_KEY๋ฅผ SSH ํค ์ ๋ง๋ค๊ธฐ ๊ธฐ๋ณธ ์๊ฑด ๋จ๊ณ์์ ๋ง๋ ๋๋ก SSH ๊ณต๊ฐ ํค์ ํ
์คํธ๋ก ๋ฐ๊ฟ๋๋ค. ๊ณต๊ฐ ํค๋ฅผ ํ๊ฒฝ ๋ณ์์ ์ ์ฅํ๋ฉด ${SSH_PUBLIC_KEY}๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค.
ํด๋ฌ์คํฐ ์ํ ๋ณด๊ธฐ
ํด๋ฌ์คํฐ์ ๋ ธ๋ ํ์ ๋ง๋ ํ์๋ Google Cloud CLI ๋๋ Google Cloud ์ฝ์์ ์ฌ์ฉํ์ฌ ํด๋ฌ์คํฐ ์ํ๋ฅผ ๋ณผ ์ ์์ต๋๋ค. ํด๋ฌ์คํฐ ์ํ๋ฅผ ๋ณด๋ ค๋ฉด Google Cloud CLI ๋๋ Google Cloud ์ฝ์ ์ฌ์ฉ ์ฌ๋ถ๋ฅผ ์ ํํ๊ณ ๋ค์ ๋จ๊ณ๋ฅผ ์ํํฉ๋๋ค.
gcloud
gcloud container azure clusters describe ๋ช
๋ น์ด๋ฅผ ์ฌ์ฉํ์ฌ ํด๋ฌ์คํฐ์ ๋ํ ์ธ๋ถ์ ๋ณด๋ฅผ ๊ฐ์ ธ์ต๋๋ค.
gcloud container azure clusters describe CLUSTER_NAME \
--location GOOGLE_CLOUD_LOCATION
๋ค์์ ๋ฐ๊ฟ๋๋ค.
CLUSTER_NAME: ํด๋ฌ์คํฐ ์ด๋ฆGOOGLE_CLOUD_LOCATION: ํด๋ฌ์คํฐ๋ฅผ ๊ด๋ฆฌํ๋ Google Cloud์์น์ ์ด๋ฆ
Google Cloud ์ฝ์
Google Cloud ์ฝ์์์ Google Kubernetes Engine ํด๋ฌ์คํฐ ๊ฐ์ ํ์ด์ง๋ก ์ด๋ํฉ๋๋ค.
ํด๋ฌ์คํฐ๊ฐ ์ด๋ฆ ๋ฐ ์์น๋ก ๋์ด๋ฉ๋๋ค.
ํด๋ฌ์คํฐ ์ด๋ฆ์ ํด๋ฆญํฉ๋๋ค. ์ํ ๋ฐ ์ฌ์ฉ ์ค์ ๋ ๊ธฐ๋ฅ์ ํฌํจํ์ฌ ํด๋ฌ์คํฐ์ ๋ํ ์ ๋ณด๊ฐ ์๋ ํจ๋์ด ํ์๋ฉ๋๋ค.
ํด๋ฌ์คํฐ์ ์ฌ์ฉ์ ์ธ์ฆ ์ ๋ณด ์ป๊ธฐ
ํด๋ฌ์คํฐ๋ฅผ ๋ง๋ ํ ํด๋ฌ์คํฐ์ ์ํธ์์ฉํ๋ ค๋ฉด ์ฌ์ฉ์ ์ธ์ฆ ์ ๋ณด๋ฅผ ๊ฐ์ ธ์์ผ ํฉ๋๋ค.
gcloud container azure clusters get-credentials azure-cluster-0
์ด ๋ช
๋ น์ด๋ Connect ๊ฒ์ดํธ์จ์ด๋ฅผ ์ฌ์ฉํด ๋ง๋ ํด๋ฌ์คํฐ์ ์ก์ธ์คํ๋๋ก kubectl์ ๊ตฌ์ฑํฉ๋๋ค. Connect ๊ฒ์ดํธ์จ์ด๊ฐ ํด๋ฌ์คํฐ์ ๋ฐฐํฌ๋ก ์คํ๋๋ Connect ์์ด์ ํธ์ ๊ธฐ๋ฐํ๋ฏ๋ก Connect ๊ฒ์ดํธ์จ์ด๋ฅผ ์ฌ์ฉํ๋ ค๋ฉด ํ๋ ์ด์์ ๋
ธ๋ ํ์ด ํ์ํฉ๋๋ค.
ํด๋ฌ์คํฐ์ ์ ํ๋ฆฌ์ผ์ด์ ๋ฐฐํฌ
ํด๋ฌ์คํฐ๊ฐ ์์ฑ๋์์ผ๋ฏ๋ก ์ด์ ์ปจํ
์ด๋ํ๋ ์ ํ๋ฆฌ์ผ์ด์
์ ๋ฐฐํฌํ ์ ์์ต๋๋ค. ์ด ๋น ๋ฅธ ์์์์๋ ์์ ์น ์ ํ๋ฆฌ์ผ์ด์
(hello-app)์ ๋ฐฐํฌ ํ ์ ์์ต๋๋ค.
Kubernetes ๊ฐ์ฒด๋ฅผ ์ฌ์ฉํ์ฌ ํด๋ฌ์คํฐ์ ๋ฆฌ์์ค๋ฅผ ๋ง๋ค๊ณ ๊ด๋ฆฌํฉ๋๋ค. ์น ์๋ฒ์ ๊ฐ์ ์คํ ์ดํธ๋ฆฌ์ค(Stateless) ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ฐฐํฌํ๊ธฐ ์ํด ๋ฐฐํฌ ๊ฐ์ฒด๋ฅผ ์ฌ์ฉํฉ๋๋ค. ์๋น์ค ๊ฐ์ฒด๋ ์ธํฐ๋ท์์ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ก์ธ์คํ๊ธฐ ์ํ ๊ท์น๊ณผ ๋ถํ ๋ถ์ฐ๊ธฐ๋ฅผ ์ ์ํฉ๋๋ค.
๋ฐฐํฌ ๋ง๋ค๊ธฐ
ํด๋ฌ์คํฐ์์ hello-app์ ์คํํ๋ ค๋ฉด ๋ค์ ๋ช
๋ น์ด๋ฅผ ์คํํ์ฌ ์ ํ๋ฆฌ์ผ์ด์
์ ๋ฐฐํฌํด์ผ ํฉ๋๋ค.
kubectl create deployment hello-server --image=us-docker.pkg.dev/google-samples/containers/gke/hello-app:1.0
์ด Kubernetes ๋ช
๋ น์ด kubectl create deployment๋ hello-server๋ผ๋ ๋ฐฐํฌ๋ฅผ ๋ง๋ญ๋๋ค. ๋ฐฐํฌ์ ํฌ๋๋ hello-app ์ปจํ
์ด๋ ์ด๋ฏธ์ง๋ฅผ ์คํํฉ๋๋ค.
์ด ๋ช ๋ น์ด์์
--image๋ ๋ฐฐํฌํ ์ปจํ ์ด๋ ์ด๋ฏธ์ง๋ฅผ ์ง์ ํฉ๋๋ค. ์ฌ๊ธฐ์์ ์ด ๋ช ๋ น์ด๋ Artifact Registry ์ ์ฅ์us-docker.pkg.dev/google-samples/containers/gke/hello-app์์ ์์ ์ด๋ฏธ์ง๋ฅผ ๊ฐ์ ธ์ต๋๋ค.:1.0์ ๊ฐ์ ธ์ฌ ํน์ ์ด๋ฏธ์ง ๋ฒ์ ์ ๋ํ๋ ๋๋ค. ๋ฒ์ ์ ์ง์ ํ์ง ์์ผ๋ฉดlatestํ๊ทธ๊ฐ ์ง์ ๋ ์ด๋ฏธ์ง๊ฐ ์ฌ์ฉ๋ฉ๋๋ค.
๋ฐฐํฌ ๋ ธ์ถ
์ ํ๋ฆฌ์ผ์ด์ ์ ๋ฐฐํฌํ ํ์๋ ์ฌ์ฉ์๊ฐ ์ก์ธ์คํ ์ ์๋๋ก ์ด๋ฅผ ์ธํฐ๋ท์ ๋ ธ์ถํด์ผ ํฉ๋๋ค. ์ ํ๋ฆฌ์ผ์ด์ ์ ์ธ๋ถ ํธ๋ํฝ์ ๋ ธ์ถํ๋ Kubernetes ๋ฆฌ์์ค์ธ ์๋น์ค๋ฅผ ๋ง๋ค์ด ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ ธ์ถํ ์ ์์ต๋๋ค.
์ ํ๋ฆฌ์ผ์ด์
์ ๋
ธ์ถํ๋ ค๋ฉด ๋ค์ kubectl expose ๋ช
๋ น์ด๋ฅผ ์คํํฉ๋๋ค.
kubectl expose deployment hello-server --type LoadBalancer --port 80 --target-port 8080
--type LoadBalancer ํ๋๊ทธ๋ฅผ ์ ๋ฌํ๋ฉด ์ปจํ
์ด๋์ Azure ๋ถํ ๋ถ์ฐ๊ธฐ๊ฐ ์์ฑ๋ฉ๋๋ค. --port ํ๋๊ทธ๋ ์ธํฐ๋ท์ ๊ณต๊ฐ ํฌํธ 80์ ์ด๊ธฐํํ๊ณ --target-port ํ๋๊ทธ๋ ํธ๋ํฝ์ ์ ํ๋ฆฌ์ผ์ด์
์ ํฌํธ 8080์ผ๋ก ๋ผ์ฐํ
ํฉ๋๋ค.
๋ถํ ๋ถ์ฐ๊ธฐ๋ Azure ๋ถํ ๋ถ์ฐ๊ธฐ ๊ฐ๊ฒฉ ์ฑ ์ ์ ๋ฐ๋ผ ์๊ธ์ด ์ฒญ๊ตฌ๋ฉ๋๋ค.
์ ํ๋ฆฌ์ผ์ด์ ๊ฒ์ฌ ๋ฐ ๋ณด๊ธฐ
kubectl get pods๋ฅผ ์ฌ์ฉํ์ฌ ์คํ ์ค์ธ ํฌ๋๋ฅผ ๊ฒ์ฌํฉ๋๋ค.kubectl get pods
ํด๋ฌ์คํฐ์์ ํ๋์
hello-serverํฌ๋๊ฐ ์คํ ์ค์์ ๋ณผ ์ ์์ ๊ฒ์ ๋๋ค.kubectl get service๋ฅผ ์ฌ์ฉํ์ฌhello-server์๋น์ค๋ฅผ ๊ฒ์ฌํฉ๋๋ค.kubectl get service hello-server
์ด ๋ช ๋ น์ด์ ์ถ๋ ฅ์์
EXTERNAL-IP์ด์ ์๋ ์๋น์ค์ ์ธ๋ถ IP ์ฃผ์๋ฅผ ๋ณต์ฌํฉ๋๋ค.์ธ๋ถ IP์ ๋ ธ์ถ๋ ํฌํธ๋ฅผ ์ฌ์ฉํ์ฌ ์น๋ธ๋ผ์ฐ์ ์์ ์ ํ๋ฆฌ์ผ์ด์ ์ ํ์ธํฉ๋๋ค.
http://EXTERNAL-IP
Azure์ฉ GKE์ ์ปจํ ์ด๋ํ๋ ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ฐฐํฌํ์ต๋๋ค.
์ญ์
์ ํ๋ฆฌ์ผ์ด์ ์ ์๋น์ค ๋ฐ ๋ฐฐํฌ๋ฅผ ์ญ์ ํฉ๋๋ค.
kubectl delete service hello-server kubectl delete deployment hello-server
gcloud container azure node-pools delete๋ฅผ ์คํํ์ฌ ๋ ธ๋ ํ์ ์ญ์ ํฉ๋๋ค.gcloud container azure node-pools delete pool-0 --cluster azure-cluster-0
gcloud container azure clusters delete๋ฅผ ์คํํ์ฌ ํด๋ฌ์คํฐ๋ฅผ ์ญ์ ํฉ๋๋ค.gcloud container azure clusters delete azure-cluster-0