- 발표 영상: [TBD]
- 발표 자료 링크: [TBD]
환경 구성을 위해 Azure CLI (bash)를 사용하였다.
- 필요한 환경 변수값을 설정
REGION_NAME=koreacentral
RESOURCE_GROUP=cncg2020seoul
SUBNET_NAME=aks-subnet
VNET_NAME=aks-vnet
- 리소스 그룹 생성
az group create \
--name $RESOURCE_GROUP \
--location $REGION_NAME
- 네트워킹 구성 후 서브넷 ID를 환경 변수로 저장
az network vnet create \
--resource-group $RESOURCE_GROUP \
--location $REGION_NAME \
--name $VNET_NAME \
--address-prefixes 10.0.0.0/8 \
--subnet-name $SUBNET_NAME \
--subnet-prefixes 10.240.0.0/16
SUBNET_ID=$(az network vnet subnet show \
--resource-group $RESOURCE_GROUP \
--vnet-name $VNET_NAME \
--name $SUBNET_NAME \
--query id -o tsv)
- AKS 클러스터 생성: 특히 AKS_CLUSTER_NAME와 같은 환경 변수 값을 메모해 두자.
VERSION=$(az aks get-versions \
--location $REGION_NAME \
--query 'orchestrators[?!isPreview] | [-1].orchestratorVersion' \
--output tsv)
AKS_CLUSTER_NAME=aksworkshop-$RANDOM
az aks create \
--resource-group $RESOURCE_GROUP \
--name $AKS_CLUSTER_NAME \
--vm-set-type VirtualMachineScaleSets \
--node-count 2 \
--load-balancer-sku standard \
--location $REGION_NAME \
--kubernetes-version $VERSION \
--network-plugin azure \
--vnet-subnet-id $SUBNET_ID \
--service-cidr 10.2.0.0/24 \
--dns-service-ip 10.2.0.10 \
--docker-bridge-address 172.17.0.1/16 \
--generate-ssh-keys
- 잘 실행되는지 확인
az aks get-credentials \
--resource-group $RESOURCE_GROUP \
--name $AKS_CLUSTER_NAME
kubectl get nodes
- 네임스페이스 만들기 (본 데모에서는
demo
값을 사용하였다)
kubectl create namespace demo
- ACR을 생성한다 (역시 ACR_NAME 값을 별도로 잘 메모해두자)
ACR_NAME=acr$RANDOM
- 데모용 GitHub 저장소을 Fork 한다 (스타를 클릭해 주시면 감사하겠습니다!).
- Fork한 저장소로 이동 후, Settings -> Secrets 로 이동
AZURE_CREDENTIALS
값을 추가한다. 해당 값은 Azure CLI에서 아래 명령어로 가져올 수 있으며, JSON 결과 전체를 값으로 쓰면 된다 ({}포함 모두).
# 쉬운 방법 - 현재 구독에 대한 모든 권한
$ az ad sp create-for-rbac --sdk-auth
# 명확하게 리소스 그룹과 함께 구독, 권한을 명시 (SERVICE_PRINCIPAL_NAME는 임의로 정하면 되며, SUBSCRIPTION_ID는 애저 구독 ID, RESOURCE_GROUP는 AKS 클러스터가 생성된 리소스 그룹 이름)
$ az ad sp create-for-rbac --name $SERVICE_PRINCIPAL_NAME \
--role contributor \
--scopes /subscriptions/$SUBSCRIPTION_ID/resourceGroups/$RESOURCE_GROUP \
--sdk-auth
REGISTRY_PASSWORD
와REGISTRY_USERNAME
값을 추가한다. 해당 값은 Azure CLI에서 아래 명령어로 가져올 수 있다 (ACR_NAME은 ACR이름으로 azurecr.io 주소 앞에 있는 부분에 해당한다. RESOURCE_GROUP은 AKS 클러스터가 리소스 그룹 이름).
$ az acr update -n $ACR_NAME --admin-enabled true
$ az acr credential show --name $ACR_NAME --resource-group $RESOURCE_GROUP
.github/workflows/ci.yaml
: 8-11번째 줄을 발표 데모를 위해 셋업한 값으로 변경하면 된다. 12번째 줄에 있는 네임스페이스 값을 바꿔도 된다.manifests/deployment.yaml
: 17번째 줄에 있는 ACR 이름을 데모를 위헤 셋업한 ACR 이름으로 변경한다.