Skedu 0423

You might also like

You are on page 1of 8

AKS(Azure Kubernetes Service) 교육 Cheat Paper

Azure 웹 튜토리얼의 운영자 위주로 수정 요약한 교육입니다.

튜토리얼: https://kubernetes.io/docs/tutorials/kubernetes-basics/deploy-app/deploy-intro/
소스: https://github.com/Azure-Samples/azure-voting-app-redis

1. 클라우드 쉘 사용하기

클라우드 쉘 용도와 접속하는 법, 관련 리소스 삭제하는 법을 알아봅니다.

클라우드 쉘 바로 접속하기 URL https://shell.azure.com/bash


클라우드 쉘 관련 리소스 그룹 cloud-shell-storage-southeastasia
(디폴트로 south east asia 사용함)

2. Azure 포탈에서 AKS Kubernetes 클러스터 만들기

포탈 웹 화면을 사용하여 기본적인 AKS Kubernetes 클러스터를 생성합니다.

포탈 메뉴 All Services (모든 서비스) -> Containers (컨테이너) -> Kubernetes services -
> Add new (추가)
사용할 옵션 Resource Group (리소스 그룹) rgNNNN

Kubernetes 클러스터 이름 aksNNNN

Region (지역) Korea Central (한국 중부)

노드 크기 2

기타 옵션은 디폴트로 나눕니다.


포탈 화면 둘러보기 Overview(개요), Node Pools(노드 풀), Scale(크기조정),
Networking(네트워킹) 등

3. kubectl 명령어 툴 설정하기

Kubernetes 관리 명령어 툴인 kubectl 의 기본적인 설정을 합니다. Azure 계정/구독이 여러 개인 경우를


고려하여 맞는 설정을 합니다. 인증 정보를 가져와서 Kubernetes 클러스터와 연결이 되도록 합니다.

az account list -o table # 계정과 구독 먼저 확인하기


az account set -s <subscription id>

# 로그인 정보 받아와서 Kubernetes 구성 파일에 저장을 합니다.


az aks get-credentials --resource-group rgNNNN --name aksNNNN
kubectl config get-contexts # Kubernetes 에서 현재 컨텍스트를 확인을 합니다.
kubectl cluster-info | head -1 # 클러스터와의 연결을 확인을 합니다.

4. kubectl 명령어

Kubernetes 클러스터를 관리하기 위한 기본적인 조회 명령어 위주로 살펴봅니다.

kubectl get nodes -o wide # node 상세 목록 확인 하기


kubectl get pods -o wide -l app=xxxx # pod 상세 목록 확인 하기
kubectl get ing,pv,pvc,all -A # 모든 네임 스페이스에 걸쳐 있는 여러가지 목록 확인 하기

5. 어플리케이션 디플로이

어플리케이션의 모습을 미리 살펴봅니다. 로컬 환경에서 docker-compose 명령어를 사용하여 시작할 수


있습니다. Python 과 Flask 로 개발된 어플리케이션입니다. 대략적인 소스를 살펴봅니다.

소스 리포지터리 https://github.com/Azure-Samples/azure-voting-app-redis.git
docker 데몬 프로세스가 docker-compose up
설치된 로컬 환경에서 (docker-compose.yaml 파일 위치에서)
어플리케이션 실행
명령어
클라우드 쉘에 클론하기 git clone https://github.com/Azure-Samples/azure-voting-app-redis.git
Kubernetes 클러스터에 kubectl apply -f azure-vote-all-in-one-redis.yaml
배포 하기

배포 후 생성된 Kubernetes 리소스들과 포탈 화면에서 Azure 리소스를 확인합니다.

Service 의 public ip 를 확인합니다


MC_rg0429_aks0429_koreacentral 리소스 그룹의 리소스를 확인 합니다.

6. pod scale up/down

Pod 를 수동으로 스케일 조정을 하면서 결과 상태도 확인합니다.


kubectl scale --replicas=5 deployment/azure-vote-front
kubectl get pods -o wide -l app=azure-vote-front

kubectl scale --replicas=3 deployment/azure-vote-front

7. pod auto scale up/down

Pod 를 자동으로 스케일 조정을 하면서 결과 상태도 확인합니다.

kubectl autoscale deployment azure-vote-front --cpu-percent=50 --min=3 --max=10

kubectl get hpa

kubectl describe hpa

kubectl delete hpa --all

8. node scale up/down

포탈 메뉴 Node Pools 에서 수동으로 클러스터의 노드 개수를 조정합니다. Pod 는 자동으로 re-balance


되지 않음을 확인합니다. Azure CLI 명령어를 사용하여 클러스터 노드 개수를 도로 줄입니다. 일부 pod
가 남아있는 장비에서 새로 생성됨을 확인합니다. uncordon 명령어를 확인합니다.

Kubernetes 서비스에서 aksNNNN 선택하고 -> 설정 -> 크기조정 (노드 풀로 이동됨)

kubectl get node -o wide

kubectl scale --replicas=5 deployment/azure-vote-front


kubectl get pod -l app=azure-vote-front -o wide
az aks scale --resource-group rgNNNN --name aksNNNN --node-count 2
kubectl get pod -l app=auzre-vote-front -o wide

9. pod upgrade

docker hub 에서 tag 를 살펴보고 업그레이드 버전이 있음을 확인합니다. 어플케이션의 작업 결과 버전


차이를 화면과 kubectl describe 명령어를 통해 확인합니다.
kubectl set image deployment azure-vote-front azure-vote-front=microsoft/azure-vote-front:v2
kubectl get pod -l app=azure-vote-front -o wide

kubecl describe pod … # 사용하는 이미지의 태그를 확인합니다.

10. 삭제 환경 정리 하기

포탈 메뉴 Resource Groups(리소스 그룹) => rgNNNN => Delete resource group => 확인

(선택적으로) 클라우드 쉘 : 같은 방식으로 cloud-shell-storage-southeastasia 리소스 그룹 삭제

You might also like