Skip to content

Instantly share code, notes, and snippets.

@ianychoi
Created October 17, 2020 14:02
Show Gist options
  • Save ianychoi/e385037f444f696672381a1ea470fb98 to your computer and use it in GitHub Desktop.
Save ianychoi/e385037f444f696672381a1ea470fb98 to your computer and use it in GitHub Desktop.
CNCG Seoul 2020 - 발표 데모 셋업하기

CNCG Seoul 2020 발표 데모 셋업하기

  • 발표 영상: [TBD]
  • 발표 자료 링크: [TBD]

Azure Kubernetes Service 만들기

환경 구성을 위해 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

Azure Container Registry 만들기

  • ACR을 생성한다 (역시 ACR_NAME 값을 별도로 잘 메모해두자)
ACR_NAME=acr$RANDOM

GitHub - 저장소 fork & 시크릿 설정

  • 데모용 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_PASSWORDREGISTRY_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 저장소에서 값 변경하기

  • .github/workflows/ci.yaml: 8-11번째 줄을 발표 데모를 위해 셋업한 값으로 변경하면 된다. 12번째 줄에 있는 네임스페이스 값을 바꿔도 된다.
  • manifests/deployment.yaml: 17번째 줄에 있는 ACR 이름을 데모를 위헤 셋업한 ACR 이름으로 변경한다.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment