> For the complete documentation index, see [llms.txt](https://psedu.gitbook.io/k8s-aiops-aks/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://psedu.gitbook.io/k8s-aiops-aks/lab-1.md).

# Lab 1 - 클러스터 배포

1. Azure Portal 에 제공받은 계정으로 로그인

<https://portal.azure.com>

2. CloudShell 버튼 클릭

<figure><img src="https://4255173442-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbMUwbA0pt4YtvWDlbjAg%2Fuploads%2F8yNUWKMCytsPtf12ASPD%2Fimage.png?alt=media&amp;token=8d24d2b1-3071-4c0e-b70f-f3b91067f361" alt=""><figcaption></figcaption></figure>

3. Bash 선택

<figure><img src="https://4255173442-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbMUwbA0pt4YtvWDlbjAg%2Fuploads%2FkGwkumAnzo6WiydHRu2q%2Fimage.png?alt=media&amp;token=82db39a3-aad4-4251-8668-930ad9e603c1" alt=""><figcaption></figcaption></figure>

4. 스토리지 계정 탑재 선택 후 구독은 안내에 따라서 선택한 뒤 적용 클릭

<figure><img src="https://4255173442-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbMUwbA0pt4YtvWDlbjAg%2Fuploads%2FRUVOapGXZIfcoz7Bjc5m%2Fimage.png?alt=media&amp;token=2c00d7ec-45c4-4203-be30-1a574deb9f6f" alt=""><figcaption></figcaption></figure>

5. 스토리지 계정을 만들고 싶습니다. 클릭

<figure><img src="https://4255173442-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbMUwbA0pt4YtvWDlbjAg%2Fuploads%2FlJS80WAoGRjz1RPBpQtS%2Fimage.png?alt=media&amp;token=b4e7009f-f631-4558-969f-bbe9e7dc185f" alt=""><figcaption></figcaption></figure>

6. 리소스 그룹 만들기 클릭후 user##-rg 입력한 뒤 OK 클릭

<figure><img src="https://4255173442-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbMUwbA0pt4YtvWDlbjAg%2Fuploads%2FGUigEXWqoC4fYMgxFWgO%2Fimage.png?alt=media&amp;token=d0f9e3d2-bdc6-4a7a-98da-ed5db98481be" alt=""><figcaption></figcaption></figure>

7. 아래 항목을 입력한 뒤 만들기 클릭

* 지역 : 한국 중부
* 스토리지 계정 이름 : user##storageaccount
* 파일 공유 : use##fileshare

<figure><img src="https://4255173442-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbMUwbA0pt4YtvWDlbjAg%2Fuploads%2FJtsqwWGyx7izJ1uxtOqq%2Fimage.png?alt=media&amp;token=2422b335-6871-4814-8ddc-aacb21bd1c4e" alt=""><figcaption></figcaption></figure>

8. 서비스 검색창 우측 Copilot 버튼 클릭

<figure><img src="https://4255173442-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbMUwbA0pt4YtvWDlbjAg%2Fuploads%2FLHz6sGKcle7cD1Zw3O1G%2Fimage.png?alt=media&amp;token=c9c00558-7a60-4c62-b375-52f0da1d3e9a" alt=""><figcaption></figcaption></figure>

9. 확장버튼 클릭

<figure><img src="https://4255173442-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbMUwbA0pt4YtvWDlbjAg%2Fuploads%2FQ7Hd0BMFz0hJwMiM4ikO%2Fimage.png?alt=media&amp;token=4908545c-85a9-4bab-80b4-3797f6819558" alt=""><figcaption></figcaption></figure>

10. 대화를 통해 AKS 클러스터를 배포 명령 생성

{% code overflow="wrap" %}

```
Azure AKS 클러스터를 프로덕션에 가까운 실습 환경으로 배포하기 위한 Azure CLI 명령어를 만들어줘.

조건은 다음과 같아.
--- 

리전: koreacentral
리소스 그룹: user##-rg
AKS 이름: user##-aks
Kubernetes 버전은 명시하지 말고 현재 지원되는 기본 버전 사용
노드풀 이름: user##-aks-pool
노드 수: 2개
노드 VM 크기: Standard_D2s_v3
Managed Identity 사용
Azure CNI 사용
Network Policy는 Azure Network Policy 사용
Cluster Autoscaler는 최소 2개, 최대 4개로 설정
Azure Monitor / Container Insights 연동 가능 여부를 고려해서 명령어 작성
```

{% endcode %}

<figure><img src="https://4255173442-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbMUwbA0pt4YtvWDlbjAg%2Fuploads%2FcpmJ46hvJjsP1JFfmnYn%2Fimage.png?alt=media&amp;token=f1bb04bd-3023-42c7-a767-40cf2536cf9f" alt=""><figcaption></figcaption></figure>

11. 해당 명령을 복사하여 Cloudshell 에서 실행&#x20;

{% hint style="warning" %}
이때 user## 에는 본인의 번호를 입력합니다.
{% endhint %}

12. 에러가 발생한다면 해당 에러를 Copilot 에게 물어본 뒤 해결

<figure><img src="https://4255173442-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbMUwbA0pt4YtvWDlbjAg%2Fuploads%2FzuNZnXzks4WpVw01kdsy%2Fimage.png?alt=media&amp;token=3878eac8-946a-49ff-ae73-a7a3a41ee2c8" alt=""><figcaption></figcaption></figure>

13. 모범 배포 명령

{% code overflow="wrap" %}

```
az aks create \
  --resource-group user##-rg \
  --name user##-aks \
  --node-count 2 \
  --node-vm-size Standard_D2s_v3 \
  --enable-managed-identity \
  --network-plugin azure \
  --network-policy azure \
  --enable-cluster-autoscaler \
  --min-count 2 \
  --max-count 4 \
  --enable-addons monitoring \
  --generate-ssh-keys \
  --location koreacentral \
  --nodepool-name user##pool
```

{% endcode %}

14. 배포 완료 후 kubectl 인증 명령을 Copilot 에게 문의, 명령을 복사

{% code overflow="wrap" %}

```
kubectl 인증은 어떻게 해?
```

{% endcode %}

<figure><img src="https://4255173442-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbMUwbA0pt4YtvWDlbjAg%2Fuploads%2F2Dh5JkJXf6POV9Ljm2l0%2Fimage.png?alt=media&amp;token=7d9ef2b0-a128-4ffe-8ece-abfcd684ad81" alt=""><figcaption></figcaption></figure>

15. 명령을 적절히 수정후 Cloudshell 에서 실행

{% code overflow="wrap" %}

```
az aks get-credentials --resource-group user##-rg --name user##-aks --admin
```

{% endcode %}

{% code overflow="wrap" %}

```
kubectl get node
```

{% endcode %}

<figure><img src="https://4255173442-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbMUwbA0pt4YtvWDlbjAg%2Fuploads%2F9CLyeSIcuXcJk0vNFdFQ%2Fimage.png?alt=media&amp;token=3bcd7d6d-4e7d-4ddc-b61e-e90cf74a3eb3" alt=""><figcaption></figcaption></figure>
