본문 바로가기

Infrastructure/Kubernetes

(43)
[Basic] 쿠버네티스와 컨테이너 쿠버네티스와 컨테이너컨테이너와 도커가상화와 컨테이너도커 컨테이너도커는 BSD와 솔라리스(Solaris)와 같은 유닉스(Unix) 운영체제에서 수십년간 사용되었던 개념이 현대적으로 재탄생된 최신 개념이다.각 애플리케이션과 종속물이 운영체제 리소스의 분리된 세그먼트를 사용하는 방식이다.컨테이너 런타임은 호스트 운영체제가 제공하는 저수준 컨테이너 서비스를 사용하여 컨테이너를 셋업하거나 없앤다.도커 컨테이너 분리 및 조절 기능을 제공도커 컨테이너는 앱을 서로 분리하거나 기반이 되는 시스템으로부터 계속 분리한다.동시에 더 쉽게 분리된 특정 애플리케이션의 CPU, GPU, 메모리, I/O, 네트워킹 등 시스템 리소스 사용 방식을 규정한다.이식성을 제공하는 도커 컨테이너도커 컨테이너는 컨테이너 런타임 환경을 지원하는..
[Basic] 쿠버네티스와 마이크로서비스 쿠버네티스와 마이크로서비스마이크로서비스와 데브옵스데브옵스의 실현과 마이크로서비스데브옵스(DevOps)는 실리콘밸로를 중심으로 유행하여 전세계에 퍼지고 있는 현재 IT 분야에서 가장 진보된 소프트웨어 개발 문화 또는 방법론이다.데브옵스는 개발 조직과 운영 조직이 물리적으로 격리되지 않는 환경에서 개발, 테스트, 배포, 운영에 이르는 전체 생명주기를 서로 긴밀하게 통합하여 관리한다.데브옵스를 실현하기 위한 수단으로서 필연적으로 마이크로서비스가 등장한다.마이크로서비스는 전통적인 거대한 덩치의 애플리케이션을 잘게 쪼개는 것을 의미한다.쪼개서 집중하면 많은 문제가 자연스럽게 해결되고, 새로운 기술의 도입이나 고가용성과 무중단에 대한 고민 및 장애가 발생하였을 때의 대처도 모두 수월해진다.데브옵스 워크플로우소프트웨..
[Windows] 컨테이너 스케줄링 Windows 컨테이너 스케줄링 쿠버네티스 공식문서를 확인하며 Windows 컨테이너 스케줄링에 대해서 기억해야 하는 부분을 기록한다. 목표 Windows 노드에서 Windows 컨테이너를 실행하는 예시 디플로이먼트를 구성한다. 쿠버네티스의 Windows 관련 기능을 강조한다. 시작하기 전에 컨트롤 플레인과 Windows 서버로 운영되는 워커 노드를 포함하는 쿠버네티스 클러스터를 생성한다. 쿠버네티스에서 서비스와 워크로드를 생성하고 배포하는 것은 리눅스나 Windows 컨테이너 모두 비슷한 방식이라는 것이 중요하다. kubectl 커맨드로 클러스터에 접속하는 것은 동일하다. Windows 컨테이너 배포하기 아래는 Windows 컨테이너 안에서 웹서버 애플리케이션을 배포하는 YAML 예시이다. apiVer..
[Windows] 쿠버네티스에서의 Windows 쿠버네티스에서의 Windows 쿠버네티스 공식문서를 확인하며 Windows에 대해서 기억해야 하는 부분을 기록한다. Windows 애플리케이션은 많은 조직에서 실행되는 서비스 및 애플리케이션의 상당 부분을 구성한다. Windows 컨테이너는 프로세스와 패키지 종속성을 캡슐화하는 현대적인 방법을 제공하고, 데브옵스(DevOps) 사례를 더욱 쉽게 사용하고 Windows 애플리케이션의 클라우드 네이티브 패턴을 따르도록 한다. Windows 기반 애플리케이션과 리눅스 기반 애플리케이션에 투자한 조직은 워크로드를 관리하기 위해 별도의 오케스트레이터를 찾을 필요가 없으므로, 운영 체제와 관계없이 배포 전반에 걸쳐 운영 효율성이 향상된다. 쿠버네티스에서의 Windows 노드 쿠버네티스에서 Windows 컨테이너 오..
[워크로드 리소스] 레플리케이션 컨트롤러 레플리케이션 컨트롤러 쿠버네티스 공식문서를 확인하며 레플리케이션 컨트롤러에 대해서 기억해야 하는 부분을 기록한다. ReplicaSet을 구성하는 방법 중 가장 권장되는 방식은 Deployment이다. “레플리케이션 컨트롤러”는 언제든지 지정된 수의 파드 레플리카가 실행 중임을 보장한다. 다시 말해서, 레플리케이션 컨트롤러는 파드 또는 동일 종류의 파드셋이 항상 기동되고 사용 가능한지 확인한다. 레플리케이션 컨트롤러의 동작방식 파드가 너무 많으면 레플리케이션 컨트롤러가 추가적인 파드를 제거하고 너무 적으면 더 많은 파드를 시작한다. 수동으로 생성된 파드와 달리 레플리케이션 컨트롤러가 유지하는 파드는 실패하거나 삭제되거나 종료되는 경우 자동으로 교체된다. 예를 들어, 커널 업그레이드와 같이 파괴적인 유지 보..
[워크로드 리소스] 크론잡 크론잡 쿠버네티스 공식문서를 확인하며 크론잡에 대해서 기억해야 하는 부분을 기록한다. 크론잡은 반복 일정에 따라 잡을 만든다. 하나의 크론잡 오브젝트는 크론탭 파일의 한 줄과 같으며, 크론잡은 잡을 크론 형식으로 쓰여진 주어진 일정에 따라 주기적으로 동작시킨다. 모든 크론잡의 일정: 시간은 kube-controller-manager의 시간대를 기준으로 한다. 컨트롤 플레인이 파드 또는 베어 컨테이너에서 kube-controller-manager를 실행하는 경우, kube-controller-manager 컨테이너에 설정된 시간대는 크론잡 컨트롤러가 사용하는 시간대로 결정한다. v1 CronJob API는 위에서 알아본 타임존 설정을 공식적으로 지원하지는 않는다. CRON_TZ 또는 TZ와 같은 변수를 설..
[워크로드 리소스] 잡(Job) 잡(Job) 쿠버네티스 공식문서를 확인하며 잡(Job)에 대해서 기억해야 하는 부분을 기록한다. 잡에서 하나 이상의 파드를 생성하고 지정된 수의 파드가 성공적으로 종료될 때까지 계속해서 파드의 실행을 재시도한다. 파드가 성공적으로 완료되면 성공적으로 완료된 잡을 추적하고, 지정된 성공 완료 수치에 도달하면, 작업이 완료된다. 잡을 삭제하면 잡이 생성한 파드가 정리되고 작업을 일시 중지하면 작업이 다시 재개될 때까지 활성 파드가 삭제된다. 잡의 예시 중하나로 잡 오브젝트를 하나 생성해서 파드 하나를 안정적으로 실행시키고 완료시킬 수 있다. 첫 번째 파드가 어떠한 이유로 실패 또는 삭제되는 경우, 잡 오브젝트는 새로운 파드를 기동시킨다. 잡을 사용하면 여러 파드를 병렬로 실행할 수도 있다. 잡을 스케줄에 따..
[워크로드 리소스] 데몬셋 데몬셋 쿠버네티스 공식문서를 확인하며 데몬셋에 대해서 기억해야 하는 부분을 기록한다. “데몬셋”은 모든(또는 일부) 노드가 파드의 사본을 실행하도록 하고 노드가 클러스터에 추가되면 파드도 추가된다. 노드가 클러스터에서 제거되면 해당 파드는 가비지로 수집된다. 데몬셋을 삭제하면 데몬셋이 생성한 파드들도 정리된다. 데몬셋의 일부 대표적인 용도는 아래와 같다. 모든 노드에서 클러스터 스토리지 데몬 실행 모든 노드에서 로그 수집 데몬 실행 모든 노드에서 노드 모니터링 데몬 실행 단순한 케이스에서는, 각 데몬 유형의 처리를 위해서 모든 노드를 커버하는 하나의 데몬셋이 사용된다. 복잡한 구성에서는 단일 유형의 데몬에 여러 데몬셋을 사용할 수 있지만, 각기 다른 하드웨어 유형에 따라 서로 다른 플래그, 메모리, CP..