본문 바로가기

Cloud/AZURE

Azure Kubernets Service(AKS) : Network Part 2

Today Keys :  kubenet, address, space, subnet, ip, range, aks, azure, kubernetes, 네트워크, cluster, vnet, network


Azure AKS Cluster 생성 시, Azure Portal에서 Kubenet으로 구성하는 경우에는 AKS 네트워크에 대한 설정이 자동으로 이뤄지기 때문에 원하는 네트워크 대역을 설정할 수 없습니다. 이를 수동으로 설정하기 위해서는 Azure CLI로 AKS를 생성할 수 있습니다. 이번 포스팅에서는 Azure Portal에서와 Azure CLI에서 AKS Cluster를 생성해서 나오는 AKS 네트워크 설정을 간단히 알아봅니다. 


 참고로 본 포스팅에서는 kubenet으로 AKS Cluster 생성 시에 네트워크 지정에 대해서 알아보는 포스팅이기 때문에

대부분의 옵션은 기본 값으로 두고 생성합니다.


 Azure Portal에서 AKS 생성(Kubenet)


  Portal에서 AKS Cluster를 생성합니다.

  Kubernetes 버전과 주 노드 풀 설정을 합니다. 



       Cluster Primary Node Pool 이외에 추가적이 Node Pool을 구성 할 수 있습니다.

AKS 리전에 따라서 Node를 여러 가용영역에 배치 가능

ACI에서 실행되는 Pod와 AKS Cluster 간의 통신을 활성화를 위한 virtual node에 대한 활성화를 선택 할 수 있습니다.

가용성을 위해서 VMSS는 기본 활성화 되어 있고, 그대로 사용합니다.


    클러스터 인프라에 대한 인증 방식을 선택합니다. 

Azure API와 상호 작용하기 위해서

 AKS 클러스터에 AD Service principal 혹은 system-assigned managed identity가 필요합니다.    

Kubernetes 클러스터에 대한 사용자 액세스 및 사

용자 인증 이후 수행 작업 제어를 위한 인증 및 권한 부여 설정을 할 수 있습니다.

마찬가지로 기본 값으로 그대로 둡니다.

Node Pool OS 디스크 암호화도 기본 값으로 둡니다.


 

       이번 예제에서는 Kubenet으로 선택합니다.   

Azure Portal에서 Kubenet으로 AKS 생성 시에는 VNet을 선택하거나, 네트워크 대역 지정이 불가하고

기본적으로 생성되는 VNet과 네트워크 대역을 사용합니다.

AKS Cluster의 인바운드와 아웃바운드 연결을 제공하기 위한 Load Balancer가 Standrad 타입으로 연결됩니다.

그 밖에 HTTP Application Routing을 위한 설정(Ingress Controller 구성)과

Control Plane/API 서버 간을 Private Link로 통신할 것인지 등 기타 보안 관련 설정을 할 수 있습니다. 

모두 기본 설정을 그대로 사용합니다.


 Container 모니터링을 위한 설정과 Policy에 대한 Integrations을 설정합니다.

여기에서는 기본 값으로 둡니다.  


     Tag 값도 기본 값으로 둡니다.      

      설정한 값을 확인 후, AKS cluster를 생성합니다.      



 생성된 AKS Cluster(Kubenet을 사용한)의 네트워크는 다음과 같습니다.

생성 시에 별도의 설정을 하지 않았지만 Azure에서 기본 값으로 다음과 같이 네트워크를 지정하게 됩니다.            



         자동으로 생성된 VNet의 Address(10.0.0.0/8)와 Subnet(10.240.0.0/16) 정보를 확인 할 수 있습니다.   

 

 

앞서 본 것처럼 Azure Portal을 사용하여 AKS Cluster를 Kubenet으로 생성하면

Azure에서 자동으로 VNet을 생성하고, 지정된 대역을 사용하게 됩니다.  

 

이번에는 AKS에서 Kubenet을 사용하면서 네트워크 대역을 지정된 대역이 아니라

직접 지정하기 위해서 Azure CLI로 AKS를 생성합니다.


Service principal을 생성합니다.

출력결과로 service principal의 appID와 password가 나오며, 이 값을 이용해서 생성하게 됩니다.

      

    Azure CLI로 VNet과 Subnet을 만들 수도 있지만, 

여기에서는 VNet과 Subnet은 기존에 있는 VNet을 사용하는 것으로 가정합니다. 

이미 사용 중인 VNet에 AKS를 사용하고자 할 때 사용할 수도 있습니다.  


AKS Cluster 생성을 위해, Kubenet으로 생성될 VNET 범위에서 principal에 대한  Network Contributor Role을 할당합니다.

     AKS Cluster를 CLI로 생성하는 데, 

Kubenet을 사용하면서도 필요한 네트워크 대역을 직접 지정할 수 있습니다.

service cidr은 172.16.0.0/22

pod cidr은 192.168.0.0/16

docker bridge address는 172.17.0.0/16

으로 지정해서 Cluster를 생성합니다.  

    Azure Portal에서 생성된 Cluster의 네트워크를 보면 다음과 같이

CLI에서 직접 지정한 네트워크 대역으로 생성된 것을 볼 수 있습니다.

        CLI로 만든 것은 아니지만, VNet(10.0.0.0/22)과 Subnet(10.0.0.0/24)을 보면 다음과 같습니다.     

Node만 VNet 대역을 사용하고, 나머지 Pod, Service, Docker Bridge는

VNet 대역을 사용하는 것이 아니기 때문에 Address Space에서는 이들 대역을 포함하지 않아도 됩니다.