본문 바로가기

전체 글

(523)
[CKA] Docker & containerD Docker vs ContainerD이번 장에서는 Certified Kubernetes Administrator (CKA) 을 준비하며 "Docker와 ContainerD의 차이점"에 대해서 알아보도록 한다.오래된 글을 확인해보면 도커와 함께 쿠버네티스가 언급되는 것을 볼 수 있지만, 비교적 최신의 글을 보면 ContainerD와 쿠버네티스가 언급되는 것을 확인할 수 있다.ctl, nerdctl, crictl과 같은 여러 CLI 도구가 있으며 우리는 어떤 도구를 사용할 것인지 선택해야 한다.처음에는 ContainerD가 존재하지 않았고, 도커 및 로켓과 같은 컨테이너 도구만 존재하였다.하지만 도커의 사용자 경험으로 인해 컨테이너 작업은 아주 간단해져 도커는 대부분의 사용자가 사용하는 컨테이너 도구가 되었..
[CKA] Kubernetes Architecture Kubernetes Architecture이번 장에서는 Certified Kubernetes Administrator (CKA) 을 준비하며 "쿠버네티스 아키텍처"에 대해서 알아보도록 한다.Nodes노드는 쿠버네티스가 설치된 물리적 또는 가상 시스템으로, 작업자 시스템이고 컨테이너는 쿠버네티스에 의해 시작된다.예전에는 미니언즈라고도 불렸으며 이러한 용어들이 상호 교환적으로 사용될 수 있다.우리는 애플리케이션이 실행되고 있는 노드가 실패할 수도 있기 때문에, 두 대 이상의 노드를 구성하는 것이 권장된다.Cluster클러스터는 함께 그룹화된 노드의 집합니다.이렇게 구성되는 경우 하나의 노드가 실패하더라도 사용자는 다른 노드에서 실행되는 애플리케이션에 계속 액세스할 수 있다.여러 노드를 사용하면 로드를 공유하..
[CKA] Kubernetes Overview Kubernetes Overview이번 장에서는 Certified Kubernetes Administrator (CKA) 을 준비하며 "쿠버네티스 개요"에 대해서 알아보도록 한다.쿠버네티스란K8S라고도 알려진 쿠버네티스는 프로덕션 환경에서 컨테이너를 실행한 경험을 바탕으로 구글에서 구축하였다.K8S는 현재 오픈 소스 프로젝트이며 작성일 기준으로 가장 많이 사용되는 컨테이너 오케스트레이션 기술 중 하나이다.쿠버네티스를 이해하기 위해서는 "컨테이너"와 "오케스트레이션"에 대한 이해가 필요하다.컨테이너란이미지의 프로젝트는 NodeJS를 사용하는 웹 서비스, MongoDB/CouchDB와 같은 데이터베이스, Redis와 같은 메시징 시스템, Ansible과 같은 오케스트레이션 도구와 같은 다양한 기술을 포함하는..
[Basic] 쿠버네티스 오케스트레이션 실습 쿠버네티스 오케스트레이션 실습쿠버네티스 클러스터 구축클러스터 구축 1Centos 7 기반 3개의 가상머신: 각 서버의 /etc/hosts 파일172.16.1.100 k8s-master172.16.1.101 k8s-node1172.16.1.102 k8s-node2도커 설치# yum install -y yum-utils device-mapper-persistent-data lvm2# yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo# yum install docker-ce# systemctl start docker && systemctl enable docker클러스터 구축 2kubeadm 설치 준비SEL..
[Basic] 쿠버네티스 네트워크 쿠버네티스 네트워크클러스터 네트워킹쿠버네티스 클러스터 네트워크아래의 이미지는 고수준의 컴포넌트 아키텍처이며 더 자세한 내용은 쿠버네티스 공식 문서를 참고한다.전체 클러스터를 위한 하나의 가상 네트워크다.각 파드에는 고유한 IP가 존재한다.서비스는 파드와 다른 범위의 IP 대역을 가진다.클러스터 CIDR: 클러스터 내 파드에 할당하는데 사용되는 IP 범위다.서비스 클러스터 IP 범위: 서비스에 대한 IP 범위이며 클러스터 CIDR와 중첩되면 안된다.파드 CIDR: 특정 워커 노드 내 파드에 대한 IP 범위이며 이 범위는 클러스터 CIDR 내에 있어야 하지만 다른 워커 노드의 파드 CIDR과 겹치면 안된다.Master and Node (Minion)쿠버네티스 네트워킹IP는 컨테이너가 아니라 파드에 할당된다...
[Basic] 쿠버네티스 보안 쿠버네티스 보안계정 인증인증 (Authentication)쿠버네티스는 계정 체제를 관리함에 있어서 사람이 사용하는 사용자 계정과 시스템이 사용하는 서비스 계정 두 가지 개념을 제공한다.일반적인 사용자일반적인 사용자는 우리가 일반적으로 생각하는 사용자 아이디의 개념이다.쿠버네티스는 자체적으로 사용자 계정을 관리하고 이를 인증(Authenticate)하는 시스템이 없다.반드시 별도의 외부 계정 시스템을 사용해야 하며 계정 시스템 연동을 위해서 OAuth나 구글 계정(Google Account)이나 오픈스택의 키스톤(keystone)과 같은 계정 연동 방식을 지원한다.서비스 계정쿠버네티스가 직접 관리하는 사용자 계정이다.클라이언트가 쿠버네티스 API를 호출하거나 콘솔이나 기타 클라이언트가 쿠버네티스 API를 ..
[Basic] 쿠버네티스 모니터링 쿠버네티스 모니터링쿠버네티스 모니터링 시스템쿠버네티스 모니터링 개념시스템을 운영하는데 있어서 운영 관점에 있어서 가장 중요한 기능 중의 하나는 시스템에 대한 모니터링이다.시스템 자원의 사용량이나 에러 등에 대한 모니터링을 통해서 시스템을 안정적으로 운영하고 문제 발생 시 원인 파악과 대응이 가능하다.아래는 쿠버네티스 기반의 시스템 모니터링 대상이다.리소스: 리소스 모니터링은 클러스터와 애플리케이션 상태를 이해하기 위해 필수적이다.디스크: 임계치는 클러스터 사이즈와 상관이 없기 때문에 디스크 사용량을 모니터링하는 것은 디스크 볼륨을 모니터링 하는 것보다 더 효율적이다.CPU: CPU 모니터링은 kube-state-metrics를 통해 가능하며 시스템, 사용자 사용량과 iowait 또한 모니터링 가능하다.메..
[Basic] 쿠버네티스 배포 쿠버네티스 배포롤링 업데이트롤링 업데이트 개념일반적으로 애플리케이션을 배포하는 방법은 블루/그린, 카나리, 롤링 업데이트와 같은 방식이 사용된다.롤링 업데이트는 가장 많이 사용되는 배포 방식 중 하나이다.롤링 업데이트는 파드 인스턴스를 점진적으로 새로운 것으로 업데이트하여 디플로이먼트 업데이트가 서비스 중단 없이 이루어질 수 있도록 하는 방법이다.사용자들은 애플리케이션이 항상 가용 가능한 상태일 것이라 여기고 개발자들은 하루에 여러번씩 새로운 버전을 배포하도록 요구된다.시스템을 무 장애로 업데이트할 수 있다는 장점이 있다.롤링 업데이트 방식여러 개의 인스턴스를 동작시키도록 애플리케이션을 스케일하는 것은 애플리케이션의 가용성에 영향을 미치지 않으면서 업데이트를 수행하는 것에 대한 요구 사항이 있다.기본적으..