이번 포스트는 Azure 클라우드 상에서 Kubernetes 클러스터를 구축하고 관리하는 서비스인 AKS 에 대해서 다루어보겠습니다. 이전 포스트에서도 다루었던 것처럼 AWS에서는 유사한 서비스로 EKS가 존재합니다.
먼저 간단하게 Cloud 상에서 클러스터를 구축하는 이유에 대해서 다루어 보겠습니다.
1. Master Node를 Azure 가 관리
2. Node의 Scaling 자동화 가능
먼저 AKS 클러스터는 개발/테스트 용으로 구현하였습니다.
그리고 클러스터는 1.22(기본값)을 사용하였는데, 해당 버전은 본인에 맞는 것을 사용하시면 될 것 같습니다.
크기 조절 방법은 수동으로 하였고 테스트를 위해 노드는 1개만 생성하였습니다.
잠시 기다리시면 AKS 생성이 완료되는 것을 확인할 수 있습니다.
단순히 AKS만을 생성했는데 위와 같이 많은 것 들이 생성된 것을 확인할 수 있습니다.
중요한 것 위주로 간단히 살펴보겠습니다.
이제 생성된 AKS를 Cloud Shell을 통해 조작해보겠습니다.
이를 위해서는 Cloud Shell에 AKS의 연결이 필요합니다.
개요 -> 연결 에 들어가서 위의 사진에 형광펜 부분의 두 줄의 코드를 Cloud Shell에 입력합니다.
kubectl get node
위의 명령어를 입력했을 때, Node에 관한 정보가 문제 없이 나온다면 연결이 잘 되었음을 확인할 수 있습니다.
다음으로는 아래의 코드 대로 test.yaml 파일을 생성해보겠습니다.
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deployment
labels:
app: nginx
spec:
replicas: 3
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:1.14.2
ports:
- containerPort: 80
---
apiVersion: v1
kind: Service
metadata:
name: my-nginx
labels:
run: my-nginx
spec:
type: LoadBalancer
ports:
- port: 80
protocol: TCP
selector:
app: nginx
생성 후에는 아래의 명령어로 apply를 실행시켜 봅시다!
kubectl apply -f test.yaml
만약, 클러스터 구성이 문제가 없었고, yaml 파일에 문제가 없다면 아래와 같이 Service와 Deployment가 잘 생성되었음을 확인할 수 있습니다.