쿠버네티스 8

2025 CKA 자격증 합격 후기

시험 개요시험은 단순 문제 풀이가 아닌 가상환경에서 직접 쿠버네티스 명령어를 실행하는 방식입니다. 2시간 동안 17문제가 주어집니다. 시험 비용은 445달러이지만 항상 할인을 하며 시험 신청 시 12달 동안 두 번의 기회가 주어집니다. 시험 시간 신청은 24시간 이후  30분 간격으로 아무시간이나 가능합니다.시험 출제 범위에 대한 것은 아래 사이트에 나와있습니다https://training.linuxfoundation.org/certification/certified-kubernetes-administrator-cka/ Certified Kubernetes Administrator (CKA) | Linux Foundation EducationTraining in skills, knowledge, and ..

쿠버네티스 2025.03.19

Kubernetes : RBAC (role/rolebinding/csr/serviceAccount)

RBACuser별로 역할을 구분하여 쿠버네티스의 특정 리소스만 접근외부에서 kube-api-server를 호출할 때 ca.crt와 함께 호출한다 User을 생성하는 과정은 다음과 같다 CSR쿠버네티스는 csr을 쿠버네티스의 리소스로 등록하여 승인할 수 있다openssl genrsa -out sample.key 2048openssl req -new -key sample.key -out sample.csr# 아무거나 입력, 단 common name은 user와 맞추어야함 생성한 .csr을 쿠버네티스의 리소스로 등록하자sample.csr을 base64로 디코딩 하여 spec.request에 넣어야한다cat sample.csr | base64 | tr -d '\n' # vi sample-csr.yamlapiVe..

쿠버네티스 2025.03.09

Kubernetes : CRD

CRCustom Resource로 사용자가 쿠버네티스에 추가하는 리소스입니다CRD란CRD(CustomResourceDefinition)는 CR을 만드는 방법 중 하나로 어떤 형태의 사용자 정의 리소스를 만들지 정의하는 부분입니다 apiVersion: apiextensions.k8s.io/v1kind: CustomResourceDefinitionmetadata: name: students.example.com # plural이름.API그룹으로 작성spec: group: example.com # API 그룹 이름 versions: - name: v1 # 버전 served: true ..

쿠버네티스 2025.03.09

Kubernetes : Kustomize

Kustomize는 yaml 오버레이 방식을 통해 환경별로 설정을 쉽게 분리할 수 있다Helm과 다르게 어플리케이션 패키지는 아니다 기본 구조base/ deployment.yaml service.yamloverlays/ dev/ kustomization.yaml patch-deployment.yaml prod/ kustomization.yaml patch-deployment.yamlbase: 공통 리소스 정의overlays: 환경별 커스터마이징 정의overlays에서 base의 yaml 파일을 덮어쓴다 nginx 예시를 살펴보자 base/deployment.yamlapiVersion: apps/v1kind: Deploymentmetadata: name: nginxspec: ..

쿠버네티스 2025.03.05

Kubernetes : Helm

Helm의 필요성쿠버네티스는 어플리케이션 배포 환경을 제공하지만, 어플리케이션의 정보는 모른다쿠버네티스 환경에서 배포하는 대부분의 어플리케이션들은 리소스 몇개만 배포하면 되는 형태가 아니다따라서, 쿠버네티스 환경에서 직접 배포할 때 YAML 파일이 매우 많이 필요하다어플리케이션 버전 관리, 업그레이드, 롤백 같은 작업을 수기로 하면 관리해야할 것이 많다 이러한 문제점들을 helm이 해결해준다 Charthelm에서 사용되는 패키지 단위입니다아래와 같은 디렉토리 구성으로 되어있습니다mychart/├── Chart.yaml # (필수) 차트 메타정보├── values.yaml # (필수) 기본 설정값├── templates/ # (필수) 쿠버네티스 리소스 템플릿│..

쿠버네티스 2025.03.04

Kubernetes : Network

전반적인 네트워크 구성요소에 대해 살펴봅시다 1. service 2. CNI 3. CoreDNS 4. Ingress 5. Gateway 6.  Network PolicyServicePod와 통신하기 위한 리소스이다Pod는 새로 생겨날때마다 IP가 새롭게 할당되기 때문에 Pod끼리 통신을 하지않고 service를 만들어 서비스를 통해 pod에 접근한다 아래그림과 같이 label selector를 통해 각 서비스는 어떤 pod와 연결될지 결정한다.아래 그림에서 1.1.1.1 IP를 통해 app:A 레이블을 가진 pod와 통신할 수 있다서비스는 크게 3가지 종류로 나뉜다 Type설명범위접근방법ClusterIP (기본값)클러스터 내부 IP를 부여하는 기본 서비스 타입클러스터 내부에서만 접근 가능ClusterIP..

쿠버네티스 2025.03.03

Kubernetes : Scheduler

Scheduler란?Kubernetes Scheduler는 새로 생성된 Pod 중 Node에 할당되지 않은 Pod를 감지하고, 적절한 Node에 배포하는 역할을 담당합니다. 그 절차는 아래와 같습니다스케줄링 프로세스Scheduling Queue: Node에 올릴 Pod의 우선순위 정함Filtering: 노드의 리소스, 이름, 스케줄링 가능 여부 등을 기준으로 필터링Scoring: 필터링된 Node들에 점수를 매겨 최적의 Node 선택Binding: 최종적으로 선택된 Node에 Pod를 바인딩 Taint & TolerationTaint: 특정 Node에 제한을 걸어, 조건에 맞는 Pod만 스케줄링되도록 설정 (Node에 설정)Toleration: Pod가 Node의 taint를 허용하여 해당 Node에 배..

쿠버네티스 2025.02.01

Kubernetes 구조 : Cluster, Node, Pod

쿠버네티스(Kubernetes)는 컨테이너화된 애플리케이션을 자동으로 배포하고 관리하는 오픈소스 플랫폼입니다.어플리케이션을 구성하는(감싸고 있는) 요소는 클러스터(Cluster), 노드(Node), 그리고 파드(Pod)입니다cluster > node > pod > container로 어플리케이션을 관리합니다. 클러스터(Cluster)쿠버네티스의 가장 큰 단위입니다.  클러스터는 여러 개의 Node로 이루어진 집합이며, 컨테이너화된 애플리케이션을 실행하고 관리하기 위한 환경을 제공합니다. 같은 클러스터 안에 있으면 컨트롤 플레인(Control Plane)에 의해 API 서버, etcd, 네트워크 등이 공유됩니다.  클러스터는 크게 두 가지 요소로 구성됩니다마스터 노드(Master Node): 클러스터를 제..

쿠버네티스 2025.01.19