Kubernetes란 무엇인가요?

Kubernetes는 컨테이너를 배포, 관리 및 크기 조정하기 위한 오픈 소스 오케스트레이션 소프트웨어입니다.

Kubernetes 설명

최신 애플리케이션은 컨테이너를 사용하여 빌드되는 경우가 증가하고 있습니다. 이는 종속성과 구성을 통해 패키징된 마이크로서비스입니다. Kubernetes(줄여서 k8s)는 해당 컨테이너를 대규모로 배포 및 관리하기 위한 오픈 소스 소프트웨어입니다. Kubernetes를 사용하여 컨테이너화된 앱을 더 빠르게 빌드, 제공 및 확장할 수 있습니다.

간단한 학습 경로를 통해 Kubernetes 살펴보기

Kubernetes 작동 방법

애플리케이션이 여러 서버에 걸쳐 배포된 여러 컨테이너를 포괄하도록 성장함에 따라 운영이 더 복잡해지게 됩니다. 이러한 복잡성을 관리하기 위해 Kubernetes는 해당 컨테이너가 실행할 방법과 위치를 제어하는 오픈 소스 API를 제공합니다.

또한 Kubernetes는 가상 머신 클러스터를 오케스트레이션하고 사용 가능한 컴퓨팅 리소스와 각 컨테이너의 리소스 요구 사항을 기반으로 해당 가상 머신에서 실행할 컨테이너를 예약하는 기능을 제공합니다. 컨테이너는 원하는 상태로 확장될 수 있는 Kubernetes의 기본 작업 단위인 Pod로 그룹화됩니다.

Kubernetes는 서비스 검색 관리, 부하 분산 통합, 리소스 할당 추적, 컴퓨팅 사용률에 따른 크기 조정, 개별 리소스의 상태 확인을 수행하도록 도와주며 및 앱이 컨테이너를 자동으로 다시 시작하거나 복제하여 자동 복구할 수 있게 해줍니다.

Kubernetes 기본 사항 자세한 정보

Kubernetes 작동 방법

Kubernetes를 사용하는 이유

컨테이너 기반 환경을 이식 가능하고 확장성 있고 확장 가능한 방법으로 구현합니다.

이식성

컨테이너화 워크로드를 로컬 개발 머신에서 프로덕션으로 원활하게 이동합니다. 온-프레미스 인프라와 공용 및 하이브리드 클라우드 간에 서로 다른 환경에서 컨테이너를 일관되게 오케스트레이션합니다.

확장성

Kubernetes가 리소스를 원하는 상태에 따라 최적화하므로, 복잡한 컨테이너화 애플리케이션을 정의하고 서버 클러스터 간에, 또는 여러 클러스터 간에 이들을 전역적으로 배포합니다. 기본 제공 자동 크기 조정기를 통해 Kubernetes는 자동으로 컨테이너 상태를 모니터링 및 유지 관리하면서 손쉽게 애플리케이션을 수평으로 확장할 수 있습니다.

확장성

Kubernetes 커뮤니티의 구성원인 개발자와 회사가 만든 광범위하고 끊임없이 증가하는 확장 및 플러그인의 컬렉션에 액세스합니다. 규정을 준수하는 Kubernetes 서비스를 사용하여 이러한 커뮤니티의 제품을 완전히 이용하고 보안, 모니터링, 관리 등과 같은 기능을 추가할 수 있습니다.

Kubernetes 및 DevOps를 사용하여 대규모로 민첩성 달성

컨테이너, 환경 및 이들을 다루는 팀이 증가함에 따라 릴리스 빈도가 증가할 수 있으며 개발 및 운영의 복잡성도 함께 증가할 수 있습니다. Kubernetes 환경에 DevOps를 채택하여 향상된 보안으로 대규모로 빠르게 이전할 수 있습니다.

CI/CD(연속 통합 및 연속 배포)로 더 빠르게 코드 제공

컨테이너가 개발 팀과 운영 팀 간의 협업을 쉽게 해주는 일관된 애플리케이션 패키징 형식을 제공하지만 CI/CD는 해당 작업을 자동화하여 코드에서 컨테이너 및 Kubernetes 클러스터로 이동을 몇 분 단위로 가속화할 수 있습니다.

Kubernetes에 대한 CI/CD 설정

코드 인프라를 사용하여 효과적으로 리소스 관리

코드 인프라는 팀 간에 컴퓨팅 리소스의 일관성과 가시성을 촉진하여 인적 오류의 가능성을 줄일 수 있습니다. 이 방식은 Helm 기반 Kubernetes 애플리케이션의 선언적 특성과 잘 어울립니다. 둘을 결합하면 앱, 리소스 및 구성을 신뢰성 있고 추적 가능하고 반복 가능한 방법으로 정의할 수 있습니다.

Terraform을 사용하여 Kubernetes 클러스터 배포

지속적 모니터링으로 피드백 루프 가속화

변경이 불가능한 컨테이너, 빈번한 릴리스 및 추상화 오케스트레이션 레이어 때문에 가시성이 더욱 악화되고 훨씬 더 심각해집니다. 버그 발생 후 수정할 때까지의 시간을 단축하려면 컨테이너 상태 모니터링에서 리소스, 클러스터, Kubernetes API, 컨테이너 및 코드에 대한 전체 보기가 필요합니다. 해당 보기는 리소스 병목 상태를 방지하고 악성 요청을 추적하고 Kubernetes 애플리케이션을 정상으로 유지하는 데 도움이 됩니다.

실시간 컨테이너 인사이트 작동 방법 살펴보기

DevOps를 사용하여 속도와 보안의 균형 유지

DevOps 워크플로의 일부로 기본 제공 실시간 가시성을 이용합니다. 규정 준수 확인 및 재구성을 자동으로 적용하여 빌드 및 파이프라인을 보호하고 그 결과로 Kubernetes 애플리케이션을 보호합니다.

작동 중인 지속적 보안 살펴보기

Kubernetes를 사용한 DevOps 워크플로의 예

  1. 1동일한 Kubernetes 클러스터에서 애플리케이션의 서로 다른 부분을 함께 빠르게 반복, 테스트 및 디버그합니다.
  2. 2지속적인 통합을 위해 코드를 GitHub 리포지토리에 통합하고 확인합니다. 그런 다음, 지속적인 업데이트의 일부로 자동화된 빌드 및 테스트를 실행합니다.
  3. 3컨테이너 이미지의 원본 공급자 및 무결성을 확인합니다. 이미지를 검사에 합격할 때까지 격리된 상태로 유지합니다.
  4. 4Terraform과 같은 도구를 사용하여 Kubernetes 클러스터를 프로비저닝합니다. Terraform이 설치한 Helm 차트에서 앱 리소스와 구성을 원하는 상태로 정의합니다.
  5. 5배포를 관리하는 정책을 Kubernetes 클러스터에 적용합니다.
  6. 6릴리스 파이프라인은 각 코드에 대해 미리 정의된 배포 전략을 자동으로 실행합니다.
  7. 7정책 감사 및 자동 업데이트 관리를 CI/CD 파이프라인에 추가합니다. 예를 들어 릴리스 파이프라인만이 사용자의 Kubernetes 환경에서 새 Pod를 만들 권한이 있습니다.
  8. 8앱 원격 분석, 컨테이너 상태 모니터링 및 실시간 로그 분석을 사용하도록 설정합니다.
  9. 9인사이트를 사용하여 문제를 해결하고 다음 스프린트에 대한 계획을 알립니다.

Azure를 통해 Kubernetes의 장점 활용

완전 관리형 Microsoft AKS(Azure Kubernetes Service)를 사용하여 프로비저닝, 업그레이드, 모니터링 및 크기 조정을 자동화합니다. 서버리스 Kubernetes, 더 간단한 개발과 프로덕션 간 환경 및 엔터프라이즈급 보안과 거버넌스를 이용합니다.

AKS 자세한 정보

Kubernetes는 다음 커뮤니티가 소유합니다.

Kubernetes는 수천 명의 개인과 수백 개의 기업이 자신의 지혜, 코드 및 노력을 프로젝트에 쏟아부어서 만들어졌습니다(그래서 널리 사용됩니다). 그들의 열정적이고 지속적인 기여를 바탕으로 성공적인 소프트웨어를 만들어 보세요.

30,000
참가자
150,000
Commits
최고 프로젝트
GitHub에서 수행

기업의 약속으로 지원되는 오픈 소스 소프트웨어

조직에서 더 쉽게 Kubernetes를 채택하고 개발자가 더 쉽게 Kubernetes를 사용할 수 있도록 Microsoft는 단 3년 만에 오픈 소스 프로젝트에 참여하는 직원 수를 3배로 늘렸습니다. 이제 세 번째로 많은 기여를 하는 기업인 Microsoft는 다양한 고객과 협력하며 얻은 최신 정보 및 모범 사례를 Kubernetes 커뮤니티에 도입하여 좀 더 접근성이 좋고 엔터프라이즈에 적합한 Kubernetes를 만들기 위해 최선을 다하고 있습니다.

Azure에서 Kubernetes 시작

CI/CD 파이프라인 만들기

애플리케이션 준비

Kubernetes에 배포

애플리케이션 보기

1/1단계

Azure DevOps 프로젝트를 만들어 CI/CD 모범 사례로 시작합니다.

1/1단계

기본 제공 애플리케이션 템플릿을 선택하거나 자신의 고유한 코드를 가져옵니다.

그런 다음, Kubernetes를 배포 대상으로 선택합니다.

1/1단계

새 AKS 클러스터를 만들거나 기존 클러스터를 선택합니다.

1/1단계

클러스터가 준비되면 Azure DevOps가 컨테이너를 AKS 클러스터에 배포합니다. 외부 엔드포인트를 클릭하여 애플리케이션을 봅니다.

애플리케이션이 실행된 후 링크를 따라 수정할 수 있는 방법을 확인합니다.

FAQ – Kubernetes

  • Kubernetes와 Docker는 함께 작동합니다.

    Docker는 컨테이너화 애플리케이션을 패키징 및 배포하기 위한 개방형 표준을 제공합니다. Docker를 사용하면 컨테이너를 빌드 및 실행하고 컨테이너 이미지를 저장 및 공유할 수 있습니다.

    Kubernetes는 Docker가 생성하는 분산형 컨테이너화 애플리케이션을 오케스트레이션 및 관리합니다. 또한 머신 클러스터에서 해당 애플리케이션을 배포하고 실행하는 데 필요한 인프라를 제공합니다.

  • Kubernetes 배포를 사용하면 원하는 애플리케이션 배포 상태를 설명할 수 있습니다. Kubernetes 스케줄러는 실제 상태가 원하는 상태와 일치하는지 확인하고 하나 이상의 Pod 충돌이 발생할 경우 해당 상태를 유지 관리합니다. 또한 Kubernetes 배포를 사용하면 가동 중단 시간 없이 애플리케이션을 일관되게 업그레이드할 수 있습니다.

    이 토픽에 대한 전체 토론 시청
  • 일반적으로 DevOps를 사용하여 Kubernetes에 배포하려면 버전 관리를 위해 Git와 같은 리포지토리가 필요합니다. 리포지토리는 CI/CD 라인의 시작 역할을 합니다. 사용하는 방식에 따라 리포지토리에 변화가 있으면 통합, 빌드, 제공 및 배포 작업이 시작됩니다.

    AKS가 Azure DevOps로 작업하는 방법 자세히 보기
  • Kubernetes는 클라우드로 애플리케이션 이동에서 기계 학습과 AI의 어려운 과제 단순화에 이르기까지 다양한 시나리오에서 유용합니다.

    주요 사용 사례는 다음과 같습니다.

  • Azure를 사용하는 수천 명의 기술 전문가와 파트너가 만든 모범 사례아키텍처 패턴을 참조하세요.

  • 이 큐레이팅 여정을 따라 Kubernetes 학습을 시작해 보세요.

리소스

준비가 되셨나요?—Azure에서 Kubernetes를 체험해 보세요.