본문 바로가기
K8S

Azure를 사용한 쿠버네티스 클러스터 작성

by Rainbound-IT 2021. 7. 20.
반응형

AKS를 통한 클러스터 구축

ACR 이미지는 AKS에서 작성한 쿠버네티스 클러스터 상에서 pull 하여 움직인다.

그러기 위해서는 ACR 과 AKS 사이에 인증을 해야 하기 떄문에  azure active Directory 의 서비스 프린서플(principal)[azure리소스를 조작하는 애플리케이션을 위한 id]을 사용한다.

 

ACR_ID=$(az acr show --name $ACR_NAME --query id --output tsv)

az acr show 를 통해 ACR 리소스 ID 취득, ACR_ID에 저장

 

 

 

SP_PASSWD=$(az ad sp create-for-rbac --name $SP_NAME --role Reader --scopes $ACR_ID --query password --output tsv)

지정한 ACR_ID에 읽기 전용 권한을 부여하고 SP_PASSWD에 비밀번호 저장

SP_NAME은 서비스 프린서플 이름(고유해야할듯)

 - 경고문구가 뜨는데 암호를 직접적으로 바로 쓰지말라고하는것이므로 괜찮다.

 

 

--output설명

json JSON 문자열 이 설정은 기본값
jsonc 색으로 구분된 JSON
yaml 사람이 읽을 수 있는 JSON의 대안인 YAML
table 열 제목인 키가 포함된 ASCII 테이블
tsv 키가 포함되지 않은 탭으로 구분된 값
none 오류와 경고 이외의 출력은 없음

 

 

 

 

 

다음은 서비스 프린서플 ID 를 APP_ID라는 환경변수에 저장하는 것

APP_ID=$(az ad sp show --id aa07e51b-eeb0-44fc-a4b2-d0525d2a2841 --query appId --output tsv)

원래는 --id 값에 http://$SP_NAME이 들어갔었는데 안되서 포탈들어가서 id값을 직접 입력해주었다.

show 말고 list로도 가능하다. 여기서 엄청 헤맷다... 

생성은 됐는데 안나오게 된다면 포탈에 들어가서 확인하여 비교하면서 수행해야 할것 같다.

 

 

Active Directory 서비스 에서 앱등록에 가보면 만든게 있다. 거기서 만든거 들어가면 나옴

 

 

 

클러스터 만들기 

 

우선 리소스 그룹을 만들자.

az group create --resource-group $AKS_RES_GROUP --location koreacentral

 

 

 

 

이 리소스 그룹에  AKS에서 쿠버네티스 클러스터를 작성한다.

 

az aks create \
> --name $AKS_CLUSTER_NAME \
> --resource-group $AKS_RES_GROUP \
> --node-count 2 \
> --kubernetes-version 1.19.11 \
> --node-vm-size Standard_B2S \
> --generate-ssh-keys \
> --service-principal $APP_ID \
> --client-secret $SP_PASSWD

 

 

 

옵션 설명은 아래 참조

https://docs.microsoft.com/ko-kr/cli/azure/aks?view=azure-cli-latest#az_aks_create 

 

az aks

--> az aks Azure Kubernetes 서비스를 관리 합니다. 이 문서의 내용 명령 az aks app AKS 앱을 관리 하는 명령입니다. az aks app up GitHub 작업을 통해 AKS에 배포 합니다. az aks browse 웹 브라우저에서 Kubernetes 클

docs.microsoft.com

 

 

 

 

쿠버네티스 버전이 리전마다 지원이 안될 수도 있어서 portal에서 직접 확인하여 기본인 1.19.11 로 설정항렸다.

그리고 최소 2core, 4gb memory 의 VM을 요구한다.(그래서 싼 B2S로 했다. portal에서는 기본으로 DS2_v2를 추천한다)

또한 무료버전에서는 코어 max수가 4로 제한되어 있어서 노드는 2개를 선택할 수 밖에 없다.

여기서 비용을 비교하기위해 azure 계산기를 통해 VM을 비교 해보았다.
근데 최신화가 안되어있는 모양인지 spec이 실제 portal과 많이 다른 모습을 보였다.
그래서 실제 portal에서 spec을 확인하여 비용을 고려 해야할 것같다.

 

 

 

 

클러스터 연결을 위한 인증 정보 설정하기

az aks get-credentials --admin --resource-group $AKS_RES_GROUP --name $AKS_CLUSTER_NAME

이 명령어는 AKS의 API를 통해 인증 정보를 취득한다. 그리고 config 파일에 merge 하는 명령어이다.

 

 

클러스터 시작 / 중지

 

시작

az aks start --name myAKSCluster --resource-group myResourceGroup

 

중지

az aks stop --name myAKSCluster --resource-group myResourceGroup

 

클러스터 작업 DOC

https://docs.microsoft.com/ko-kr/azure/aks/start-stop-cluster

 

AKS(Azure Kubernetes Service) 클러스터 배포 시작 및 중지 - Azure Kubernetes Service

AKS(Azure Kubernetes Service) 클러스터를 시작하고 중지하는 방법에 대해 알아봅니다.

docs.microsoft.com

 

반응형

'K8S' 카테고리의 다른 글

쿠버네티스 디플로이  (0) 2021.07.21
kubectl 명령어 기본조작  (0) 2021.07.21
docker 이미지를 ACR에 올리기  (0) 2021.07.20
docker 명령어  (0) 2021.07.20
Azure Cointainer registry  (0) 2021.07.19

댓글