데보션앱 소개페이지 바로가기
로그인 선택

신고하기

CLOSE
신고사유 (대표 사유 1개)
상세내용 (선택)
0/200
  • 신고한 게시글은 더 이상 보이지 않습니다.
  • 이용약관과 운영정책에 따라 신고사유에 해당하는지 검토 후 조치됩니다.
  • 허위 신고인 경우, 신고자의 서비스 이용이 제한될 수 있으니 유의하시어 신중하게 신고해 주세요.
(이 회원이 작성한 모든 댓글과 커뮤니티 게시물이 보이지 않고, 알림도 오지 않습니다.)

미리보기

커뮤니티

      1,234

      badge 23.06.15

      글 등록

      카테고리를 선택해주세요.

      DEVOTEE를 활성화 시키면
      지금 작성한 커뮤니티 글에 대해 1개의 댓글을 달아줍니다.

      버튼을 누르면 글 수정 시 ChatGPT가 작성한 댓글이 수정됩니다.

      임시저장함에 저장되었습니다. 저장일시 : 2022.5.17 14:29:08

      임시저장함

      제목을 선택하시면 이어서 작성이 가능하며,
      최대 20건까지 저장합니다.
      컨텐츠 유형, 제목, 저장일시, 삭제로 이뤄진 임시저장 목록
      컨텐츠 유형 제목 저장일 삭제

      데보션 블로그 게재 요청

      CLOSE
      • *
      • *

      본인인증

      효율적인 데보션 서비스 이용 및
      고객님의 소중한 개인정보보호를 위해
      본인인증을 진행해주세요. 본인인증 미 진행 시 로그인이 제한됩니다.
      본인인증 실패

      본인인증 로그인에 실패하였습니다.
      회원이 아니시거나 본인인증 등록이
      완료되지 않은 사용자입니다.

      회원정보 연결

      AKS로 쿠버네티스 시작하기 - Azure Kubernetes Service 부터

      broccoli 23.04.03
      6,070 20 0

      IT 분야에서의 트리거 요인

      IT 분야에서 일하다 보면 새로운 기술을 접하게 됩니다.

      새로운 기술을 접하는 관점을 저는 실용적으로 활용할 수 있느냐에 관심을 가지고 있습니다.


      쿠버네티스 시작하기

      작년말에 쿠버네티스를 시작하고자 하는 마음을 먹었습니다.

      일단 개념을 학습하고, IT 분야에서의 필자의 트리거 요인인 실용적으로 활용할 수 있는지에 대한 점검리스트를 만들고 확인해 보았습니다.

      일상의 업무가 있지만 새로운 것을 접하고 배우며 깨닫는 과정은 흥미로웠습니다.

      쿠버네티스를 접하게 된 것에 대한 감사를 느끼게 되었고, 실무 적용이라는 목표를 세우게 되었습니다.


      쿠버네티스의 필요성

      컨테이너는 물류 운송에 경제성, 신속성, 안전성을 최대로 충족시키는 표준화된 효율적인 운송도구로 알려져 있습니다.

      애플리케이션도 컨테이너로 표준화를 하면 물류 수송처럼 쿠버네티스를 통해 큰 변수 없이 손쉽게 배포할 수 있는 시대가 되었습니다.

      쿠버네티스는 컨테이너화된 애플리케이션을 배포, 관리, 확장할 때 요구되는 다수의 수동 프로세스를 자동화하는 오픈소스 컨테이너 오케스트레이션 플랫폼입니다.

      요즘은 쿠버네티스에서 동작하는 솔루션들이 많이 양산되는 상황으로 클라우드 환경에서 솔루션/애플리케이션을 가동시키기 위한 표준 환경 또는 기반 환경으로 인식되고 있습니다.

      애플리케이션에 대한 배포, 관리, 확장을 자동화해 주기 때문에 개발 역할에서의 배포와 운영 역할에서의 관리/확장 측면에서 많은 이점을 제공하는 DevOps 툴입니다.


      블로그 방향성

      실무 프로젝트에 적용하는 관점으로 실제 동작하는 내용의 실용적인 과정을 중심으로 단계별로 지속적으로 작성을 진행하고자 합니다.

      create 단계의 상세 매뉴얼 형식보다는 생성 결과를 기준으로 설명하고, 활용을 위한 이해 중심으로 기술합니다.

      (참고로 리소스 create 단계에 대한 상세 절차는 Azure 링크로 제공하겠습니다.)


      CSP 서비스로 시작하기

      쿠버네티스를 조금 듣기 시작하던 몇 년 전부터 설치 과정에 많은 노력과 어려움이 있었습니다.

      클라우드 환경에서 쿠버네티스 서비스로 구성하는 CSP서비스를 활용하는 것이 훨씬 수월하고 편리한 시대가 되어 활용이 권장되고 있습니다.


      AKS(Azure Kubernetes Service) 클러스터 만들기

      쿠버네티스는 여러 대의 서버로 구성한 클러스터라는 환경에 동작시키고자 하는 애플리케이션(솔루션)을 배포해 주는 도구입니다.

      이 글에서는 Azure Kubernetes Service를 이용해서 쿠버네티스 클러스터를 생성합니다.


      AKS 클러스터 구성

      Azure에서는 AKS리소스를 생성하면 아래와 같이 Worker Node를 생성해 주며, 사용자가 관리할 수 있습니다.

      AKS리소스 생성을 하면 MC로 시작하는 이름의 리소스 그룹내에 Azure가 관리해 주는 별도의 리소스가 자동으로 생성됩니다.

      k8s에서 master node로 알려진 영역으로 Azure에서는 Control Plane 이라고 부르고 있습니다.

      참고로 Azure에서는 Control Plane은 사용자로부터 추상화된 관리형 Azure 리소스로 무료로 제공됩니다.

      AKS 클러스터에 연결된 노드에 대해서만 비용을 지불합니다.

      image.png

      <출처 : AKS의 Kubernetes 핵심 개념>

      고객관리의 리소스 그룹과 Azure 관리의 리소스 그룹 예시

      AKS 클러스터를 RG-AOP-MGMT 리소스 그룹에 생성했더니 RG-AOP-MC-MGMT 리소스 그룹이 자동 생성되고, Control plane의 구성요소가 구축되었습니다.

      telegram-cloud-document-5-6118579408807659999.jpg

      Customer-managed Worker node

      우선 aks 클러스터 생성 결과를 중심으로 구성요소를 확인할 수 있습니다.

      aks 클러스터의 리소스 구성을 통해 k8s의 구성요소에 대한 전체적인 윤곽은 보이실 것 같습니다.

      아래의 예시는 'AKS-AOP-MGMT' 라는 AKS를 생성한 결과 내용입니다.

      image.png

      • Essentials

        subscription/location/resource group 등 관리적인 내용을 제외하면 관심을 가져야 할 핵심적인 항목은 version, api server address, network type, node pools 정도가 되겠습니다.

      • Kubernetes resources

        k8s 리소스 측면에서는 Azure는 namespaces, workloads, services and ingresses, configuration 등의 정보를 제공합니다.

      • Properties

        속성 정보에서는 Essentials 내용 이외로 보면 Configuration>Auto Upgrade Type과 Networking 구성의 상세 내용을 제공합니다.

      aks 리소스 생성 결과를 통해서 k8s에서 중요한 정보들은 확인이 되었습니다.

      - 자세한 aks 클러스터 생성 방법 링크 : AKS 클러스터 만들기 절차

      Kubernetes resources 상세
      Namespaces
      • 필요성 : 여러 개의 팀이나, 프로젝트에 걸쳐서 많은 사용자가 있는 환경에서 구분할 수 있도록 사용

      • 정의 : AKS 클러스터를 분할하고 리소스에 대한 액세스의 만들기, 보기 및 관리를 제한하기 위해 논리적으로 구분하여 그룹핑하는 방법

        • 네임스페이스 내에서 리소스 이름은 유일하지만, 네임스페이스간에는 유일할 필요 없음

        • 네임스페이스는 서로 중첩 불가

        • 쿠버네티스 리소스는 하나의 네임스페이스에만 속함

        • 동일한 네임스페이스에서 리소스를 구별하기 위해서는 '레이블' 사용 가능

      • 예시 : kube-system 네임스페이스 - 엔지니어링 네임스페이스

      Namespace

      설명

      default

      기본으로 만들어지는 네임스페이스. 소규모 환경에서 애플리케이션의 논리적 구분 불필요 시 사용

      kube-system

      핵심 리소스와 네트워크 기능이 있는 네임스페이스. 사용자 애플리케이션은 이 네임스페이스에 포함하지 않음

      kube-public

      클러스터 전체에서 리소스를 표시하는 데 사용(일반적으로는 사용하지 않음). 모든 사용자가 볼 수 있음

      telegram-cloud-photo-size-5-6118579409263900259-y.jpg

      Workloads

      telegram-cloud-photo-size-5-6118579409263900260-y.jpg

      Services and Ingresses

      Service들과 Ingress들의 내용을 볼 수 있습니다.

      서비스들 중에는 외부IP가 있는 것이 있고, Cluster IP만 있는 것이 있습니다.

      telegram-cloud-photo-size-5-6118579409263900261-y.jpg

      Configuration

      Config maps와 Secrets의 내용을 볼 수 있습니다.

      telegram-cloud-photo-size-5-6118579409263900261-y.jpg

      Azure-managed Control plane

      RG-AOP-MGMT 리소스 그룹에 Worker node를 생성했기 때문에 Control plane은 RG-AOP-MC-MGMT 리소스 그룹으로 자동 생성됩니다.

      자동으로 생성된 Control Plane 내용은 아래와 같습니다.

      image.png

      Public IP address, Load balancer, Virtual machine scale set, Network security group 등이 눈에 띕니다.

      Public IP address

      outbound용 IP 주소입니다.

      AKS의 Worker Node는 Cluster의 생성, 업그레이드, 패치, 모니터링 등을 위한 kube-apiserver와의 통신, Node 생성을 위한 OS Image, Cluster 구성을 위한 Container Image 등이 필요하므로

      Azure Global Service 및 클러스터 생성에 필요한 Service로의 Outbound가 필요합니다.

      image.png

      Load balancer

      kubernetes 라는 명칭으로 생성이 되어 있습니다.

      Service를 Load Balancer 타입으로 구성하면 생성 건별로 Public IP 하나씩 생기는 것을 볼 수 있게 됩니다.

      telegram-cloud-photo-size-5-6118579409263900291-y.jpg

      Virtual machine scale set

      Worker node 의 컴퓨팅 사양과 함께 Available zone이 1,2,3 에 걸쳐 있는 구성과 Scaling에 대한 정보를 볼 수 있습니다.

      telegram-cloud-photo-size-5-6118579409263900290-y.jpg


      정리

      AKS라는 CSP서비스로 k8s클러스터를 만드는 과정은 단순하고 쉽게 가능합니다.

      만들고 나서 보니 k8s를 구성하는 많은 요소들을 CSP가 다 알아서 생성해 주니 편리한 세상이 된 것 같습니다.

      처음부터 k8s에 대한 세부 구성요소를 언급하기 보다는 k8s를 활용한다는 관점에서 AKS클러스터를 만드는 것부터 시작하였습니다.

      기억할 내용으로 구성요소는 크게 Control Plane과 Node로 나누어져 있다는 것과 Control Plane을 통해서는 관리자가 수행하고자 하는 기능이 동작되고,

      Node에서는 사용자가 만든 애플리케이션이 동작되는 것으로 이해해 보면 좋겠습니다.

      상세한 내용을 보고 싶으면 Azure Portal을 통해서 GUI로 클릭해가면서 세부 구성요소까지 쉽게 파악할 수 있습니다.

      파악해 볼만한 세부 구성요소는 k8s version, api server url, node pool, node의 availability zone, VM(vCPU, Memory), namespace, load balancer public IP, backend pool, service, ingress, scale set, Upgrade policy 정도 되겠습니다.


      다음은

      AKS클러스터를 생성하였으니 소스코드로 애플리케이션 컨테이너를 만들고 ACR(Azure Container Registry)에 컨테이너를 업로드합니다.

      ACR에 컨테이너의 업로드를 성공시키고 나면 드디어 AKS클러스터에 컨테이너화된 애플리케이션을 배포해 보도록 하겠습니다.

      댓글 0

      DEVOTEE를 활성화 시키면
      지금 작성한 댓글에 AI가 댓글을 달아줍니다.

      broccoli 님의 최신 블로그

      더보기
      동영상 기고하기