본문 바로가기

분류 전체보기

(70)
[CKA] Kubernetes Services Kubernetes Services Kubernetes Services는 애플리케이션 내부와 외부의 다양한 구성 요소 간의 통신을 가능하게 한다. Kubernetes 서비스는 애플리케이션을 다른 애플리케이션 또는 사용자와 연결하는 데 도움이 된다. 예를 들어, 우리 애플리케이션에는 사용자에게 프론트 엔드 로드를 제공하기 위한 그룹 및 백엔드 프로세스를 실행하기 위한 다른 그룹, 외부 데이터 소스에 연결하는 세 번째 그룹과 같은 다양한 섹션을 실행하는 Pod 그룹이 있다. 이러한 Pod 서비스 그룹 간의 연결을 가능하게 한다. 최종 사용자가 사용할 수 있는 애플리케이션은 백엔드와 프런트 엔드 간의 통신을 지원한다. 외부 데이터 소스에 대한 연결을 설정하는 데 도움이 된다. 따라서 Service는 응용프로그..
[CKA] Kubernetes Deployment Kubernetes Deployment POD, 복제본 세트 및 기타 쿠버네티스 개념은 잊어버리고 프로덕션 환경에서 애플리케이션을 구현하는 방법에 대해 알아보자. 예를 들어 프로덕션 환경에 배포해야 하는 웹 서버가 있다고 가정해 보자. 실행되는 웹 서버의 인스턴스는 하나만 필요하지 않을것이다. 또한, 도커 레지스트리에서 새로운 버전의 애플리케이션 빌드를 사용할 수 있게 될 때마다 Docker 인스턴스를 원활하게 업그레이드 하고싶다. 그러나 인스턴스를 업그레이드할 때 모든 인스턴스를 한 번에 업그레이드하지는 않을 것이다. 이로 인해 애플리케이션에 액세스하는 사용자에게 영향을 줄 수 있으므로 차례차례로 애플리케이션을 업그레이드한다. 이러한 업그레이드를 롤링 업데이트(Rolling Update)라고 한다. 수..
[CKA] Kubernetes Replication Controller/ReplicaSets # Kubernetes ReplicaSets Controller 는 쿠버네티스의 두뇌이다. 그것들은 쿠버네티스 객체를 모니터링하고 그에 따라 반응하는 과정이다. 복제 컨트롤러에 대해 말해보자 그렇다면 복제본이란 무엇이며 복제 컨트롤러(replication controller)가 필요한 이유는 무엇일까? 1. HA-High Availability 애플리케이션을 실행하는 단일 Pod가 있었던 첫 번째 시나리오로 돌아가 보자. 어떤 이유로 인해 응용프로그램이 고장나면 어떻게 될까? 응용프로그램이 고장나게 되면 사용자는 더 이상 애플리케이션에 접근 할 수 없다. 사용자가 응용프로그램에 대한 접근 권한을 잃지 않도록 하기 위해 두 개 이상의 인스턴스 또는 Pod을 동시에 실행하려고 한다. 이렇게 하면, 한 개가 ..
[CKA] Kubernetes Pod 와 YAML 파일 Kubernetes Pod 와 YAML 파일 pod-definition.yaml apiVersion: kind: metadata: spec: YAML 기반 구성 파일을 사용하여 Pod 만드는 것에 대해 이야기해보자. 우리는 쿠버네티스용으로 YAML 파일을 만드는 방법을 배울것이다. 쿠버네티스는 YAML 파일을 을 Pods, replicas, deployments, services 등과 같은 객체를 만들기 위한 입력으로 사용한다. 이 모든 것이 유사한 구조를 따른다. Kubernetes 정의 파일에는 항상 최상위 필드에 API 버전, 종류, 메타데이터 및 사양이 포함되어 있다. 최상위 수준 또는 루트 수준의 속성이다. 또한 필수 필드이므로 구성 파일에 해당 필드가 있어야 한다. 하나씩 살펴보자. Kind ..
[CKA] Kubernetes Pod Kubernetes Pod Pod을 이해하기 전에 다음 항목이 이미 설정되었다고 가정해 보자.이 시점에서, 우리는 애플리케이션이 이미 개발되어 Docker 이미지에 내장되어 있으며 쿠버네티스가 다운할 수 있도록 Dockerhub 와 같은 도커 저장소에서 사용할 수 있다고 가정하자. 또한 Kubernetes 클러스터가 이미 설정되었고 작동 중이라고 가정한다. 단일 노드 설정 또는 다중 노드 설정이어도 상관없다. 모든 서비스가 실행 중이어야 한다. 우리의 궁극적인 목표는 클러스터에서 Worker Node로 구성된 기계 세트에 우리의 애플리케이션을 컨테이너 형태로 배포하는 것이다. 그러나 Kubernetes는 컨테이너를 Worker Node에 직접 배포하지 않는다. 컨테이너는 Pod라고 알려진 쿠버네티스 객체..
[CKA] Kubernetes kubelet / Kube-Proxy Kubernetes kubelet kubelet 배의 선장과 같다. kubelet은 배 위에서 모든 활동을 지휘한다. kubelet은 클러스터의 일부가 되기 위해 필요한 모든 서류 작업을 책임지는 사람들이다. kubelet은 마스터 선박의 유일한 연락 지점이다. 마스터에서 스케줄러의 지시에 따라 선박에 컨테이너를 적재하거나 하역한다.kubelet은 또한 정기적으로 배와 컨테이너의 상태에 대한 보고서를 보낸다. 1. Register Node 2. Create PODs 3. Monitor Node & PODs kubernetes worker 노드의 kubelet은 kubernetes 클러스터에 노드를 등록한다. 노드에서 컨테이너 또는 Pod를 적재하라는 지시를 받으면 컨테이너 런타임 엔진(ex)Docker)..
[CKA] Kubernetes Scheduler Kubernetes Scheduler kubernetes 스케줄러는 노드의 Pod 스케줄을 담당한다. Scheduler는 어떤 Pod가 어떤 노드에서 어떤 Pod 로 이동하는지 결정하는 역할만 담당한다. 이것은 실제로 Pod를 노드에 배치하지 않는다. 실제로 Pod를 노드에 배치하는 것은 kubelet의 일이다. Scheduler는 어떤 Pod 가 어디로 가는지만 결정한다. 스케줄러가 어떻게 하는지 좀 더 자세히 살펴보자 우선 스케줄러가 왜 필요할까? 선박이 많고 컨테이너가 많을 때 올바른 컨테이너가 올바른 선박에 도착하는지 확인하려고 한다. 예를 들어 선박과 컨테이너의 크기가 다를 수 있다. 여러 선박이 다른 목적지로 이동할 수 있는 컨테이너를 수용할 수 있는 충분한 용량이 선박에 있는지 확인하려고 하..
[CKA] Kube Controller-Manager Kube Controller-Manager Kube Controller-Manager 쿠버네티스에서 다양한 컨트롤러를 관리한다. 컨트롤러는 마스터 선박 내의 사무실이나 부서들은 각자의 책임을 가지고 있다. 선박 사무실은 선박을 모니터링하고 필요한 조치를 취한다. 새로운 배가 도착하거나 배가 떠나거나 제거될 때마다 어떤 사무실은 손상되거나 가득 찬 컨테이너를 관리한다. 1. Watch Status 2. Remediate Situation 그 어떤 사무실은 계속해서 선박의 상태를 주시하고 있으며, 상황을 개선하기 위해 필요한 조치를 취한다. kubernetes 용어로 Controller는 시스템 내의 다양한 구성 요소의 상태를 지속적으로 모니터링하여 전체 시스템을 원하는 작동 상태로 만드는 프로세스이다. $..
[CKA] Kubernetes Kube-API Server Kubernetes Kube-API Server $ kubectl get nodes NAME STATUS ROLES AGE VERSION master Ready master 20m v1.11.3 node01 Ready 20m v1.11.3 Kube-api 서버는 kubernetes의 주요 관리 구성 요소이다. kubectl 명령을 실행하면 실제로 kubectl 유틸리티가 kube-apiserver에 도달한다. 1. Authenticate User 2. Validate Request 3. Retrieve data kube-apiserver는 먼저 요청을 인증하고 유효성을 검사한다. 그런 다음 ETCD 클러스터에서 데이터를 검색하고 요청된 정보로 응답한다. $ curl –X POST /api/v1/names..
[CKA] Kubernetes에서의 ETCD의 역할 ETCD란 무엇인가? 1. ETCD란 무엇인가? - 키 값(Key-Value) 저장이 무엇인가, 기존의 데이터베이스와 무엇이 다른가? 2. ETCD를 빠르게 시작하는 방법 3. 클라이언트 도구를 사용하여 ETCD를 운영하는 방법 ETCD란 무엇인가? 간단하고 안전하며 빠른 분산형, 신뢰할 수 있는 키 값 저장소이다. 키 값 저장소는 무엇일까? 전통적으로 데이터베이스는 표 형식이었다. SQL 또는 관계형 데이터베이스, 즉 행과 열의 형태로 저장된 데이터에 대해 들어본 적이 있을 것이다. Name Age Location DaHye Lee 28 Seongnam Seoungsil Sim 28 Seoul Chung Sim 5 Seoul Cherry 6 Gwangju 예를 들어, 여기 몇 명의 개인에 대한 정보를 ..