반응형

전체 글 132

[CKAD] 25년 1월 합격 후기, 출제 유형 및 준비 팁

오랜 시간 미루던 CKAD(Certified Kubernetes Application Developer) 자격증을 드디어 취득했습니다! 기본 개념의 철저한 이해가 얼마나 중요한지 다시 한번 깨달았습니다.시험 출제 유형:Service Account 변경 문제Network Policy 문제 해결도커 이미지 저장카나리 배포인그레스 및 서비스 설정크론잡(CronJob) 설정Readiness Probe 설정롤링 업데이트 및 롤백 작업API 구버전 변환리소스 제한 설정시크릿(Secret) 관리시험 준비 및 팁:시간 관리: 총 16문제를 2시간 내에 풀어야 하므로, 각 문제에 할당할 시간을 미리 계획하는 것이 중요합니다.명령어 활용: kubectl 명령어의 --dry-run=client -o yaml > xxx.ya..

[CKAD] 리소스 요청, 제한 ( Requests, Limits) 정리

Kubernetes에서 리소스 요청(Requests)과 제한(Limits)은 Pod(컨테이너)의 CPU와 메모리 사용량을 제어하기 위해 사용됩니다. 이는 클러스터 리소스를 효율적으로 관리하고, 특정 컨테이너가 과도한 리소스를 소비하는 것을 방지하는 데 필수적입니다.Pod 안에 여러 개의 컨테이너가 있는 경우, 각각의 컨테이너에 대해 요청 및 제한을 별도로 설정할 수 있습니다. 그러니까 파드 안에 컨테이너의 CPU와 메모리 사용량을 제어하는 것이라고 생각하는게 쉬울 것 같습니다. 1. 리소스 요청(Requests)리소스 요청은 컨테이너가 실행되기 위해 필수적으로 보장받아야 하는 최소 리소스를 정의합니다.스케줄러는 Pod를 배치할 때, 요청된 리소스가 충분한 노드를 선택합니다.CPU는 millicores 단..

[CKAD] Service Account도 한 문제는 나온다고 함!

Kubernetes에서 Service Account는 Pod가 API 서버와 상호작용할 때 사용하는 권한과 인증 정보를 제공하는 객체입니다. 여기서 API서버는 컨트롤플레인의 API서버라는 것을 잊지마세요. 참고로 Kubernetes에서 모든 작업은 API 서버를 통해 수행되며, 이는 클러스터의 "중앙 허브" 역할하는 것이 API서버죠! 1. Service Account란?기본적으로 Pod는 Kubernetes API 서버와 상호작용할 때 인증 정보를 요구합니다.Service Account는 Pod가 Kubernetes 리소스에 접근할 수 있도록 API 호출 권한을 제공하는 데 사용됩니다.각 Service Account는 토큰(secret)을 포함하며, 이 토큰은 Pod 내에서 API 요청 시 사용됩니다..

[CKAD] NetworkPolicy 개념 잡기, 이것도 무조건 출제

기본적으로 Kubernetes에서는 NetworkPolicy가 설정되지 않은 상태에서는 같은 클러스터 내의 모든 Pod들이 서로 통신이 가능합니다.https://kubernetes.io/docs/concepts/cluster-administration/networking/이는 클러스터 내의 Pod들이 동일한 가상 네트워크(Virtual Network)에 연결되어 있기 때문입니다. Cluster NetworkingNetworking is a central part of Kubernetes, but it can be challenging to understand exactly how it is expected to work. There are 4 distinct networking problems to ad..

[CKAD]Liveness와 Readiness 프로브 완벽 정리

Liveness와 Readiness 프로브는 Kubernetes에서 애플리케이션의 상태를 주기적으로 점검하여 Pod의 안정성을 유지하는 데 중요한 역할을 합니다.여기서 중요한 것은 "애플리케이션의 상태"를 주기적으로 점검하는 것은 "Pod의 상태를 확인하는 게 아니라, Pod 내의 각 컨테이너를 개별적으로 점검하는 것"이라는거 기억하세요! Kubernetes에서는 프로브(Liveness, Readiness, Startup Probe)가 컨테이너 단위에서 동작한다고 생각하시면 됩니다. 1. Liveness Probe (생존 여부 확인)Liveness 프로브는 컨테이너가 살아 있는지, 즉 정상적으로 작동 중인지를 확인합니다.목적: 컨테이너가 정지하거나 내부적으로 문제가 생겨 복구가 불가능한 상태가 되었을 때..

[CKAD] Blue/Green 배포와 Canary 배포 정리

Blue/Green 배포개념두 가지 환경(Blue와 Green)을 사용하여 새 버전을 배포.Blue: 현재 운영 중인 안정적인 버전.Green: 새롭게 배포된 버전(테스트 중).새 버전(Green)이 준비되면 트래픽을 기존 버전(Blue)에서 새로운 버전(Green)으로 한 번에 전환.장점빠른 롤백: 문제가 발생하면 트래픽을 즉시 이전 버전으로 되돌릴 수 있음.Downtime 최소화: 새로운 버전이 완전히 준비된 후 트래픽을 전환.테스트 가능: Green 환경에서 충분히 테스트 후 전환 가능.단점두 가지 환경을 동시에 운영해야 하므로 리소스 사용이 증가.구현이 비교적 복잡.Canary 배포개념새 버전을 점진적으로 배포.소량의 트래픽(예: 5%)을 새 버전으로 보내고, 문제가 없으면 점진적으로 트래픽 비율..

[CKAD] 볼륨 문제는 무조건 나오는 듯! 최종 정리

Kubernetes 볼륨 개념과 타입 정리Kubernetes에서 볼륨(Volume)은 컨테이너에서 사용할 수 있는 파일 시스템을 제공합니다.볼륨은 컨테이너의 라이프사이클과 독립적이거나 컨테이너와 함께 생성 및 삭제될 수 있습니다. 이는 컨테이너가 재시작되거나 종료될 때도 데이터의 지속성을 관리하기 위한 중요한 역할을 합니다.즉, 볼륨은 Pod에 생성되어 컨테이너들이 마운트하여 데이터를 공유하거나 유지할 수 있습니다. 컨테이너가 재시작되거나 종료되더라도 데이터를 잃지 않도록 하는 데 유용합니다. 그렇다면 컨테이너가 언제 재시작되는가? 1) CrashLoopBackOff 상태 (애플리케이션 충돌)컨테이너에서 실행 중인 애플리케이션이 오류로 종료되었을 때.예: 애플리케이션 코드 오류, 의존성 문제, 환경 변수..

[CKAD] docker save와 docker load 명령어 체크해놓기

여러 후기들을 확인해보니 도커 빌드해서 이미지를 TAR 파일로 저장하고, 저장된 TAR 파일에서 이미지를 불러옵니다. docker save 명령어 : 이미지를 TAR 파일로 저장, 주로 이미지를 아카이브로 보관하거나, 네트워크가 없는 환경에서 다른 시스템으로 전송할 때 사용docker save -o docker load 명령어 : 저장된 TAR 파일에서 이미지를 불러올 때 사용, 주로 docker save로 저장한 이미지를 다시 Docker 데몬에 로드할 때 사용 docker load -i 성공적으로 불러오면 이미지가 Docker 데몬에 추가되고, docker images 명령어로 확인할 수 있음 참고로 TAR 파일은 이미지의 모든 레이어를 포함하므로 파일 크기가 커질 수 있다고 합니다. 이러한 명령어..

[CKAD] 시험 도메인 정리 (ChatGPT가 알려주는 전략)

현재 CKAD 홈페이지에 나온 도메인을 보면 이렇게 정리되어있습니다. 자 이제 도메인 파악후 본격적으로 준비해볼까요?  (https://trainingportal.linuxfoundation.org/courses/certified-kubernetes-application-developer-ckad)저는 GPT에게 도메인을 전달했더니 공부 전략 준비 전략을 아래에 정리해줬어요 그래서 그대로 한번 정리해보려고요! 가보잣! Application Design and Build20%- Define, build and modify container images  - Choose and use the right workload resource (Deployment, DaemonSet, CronJob, etc.)  -..

함수의 파라미터 (Parameter) 인자 (Argument) 완벽 정리하기

1. 파라미터 (Parameter)정의: 함수를 정의할 때 사용하는 변수 이름.위치: 함수 선언부에 작성됨.역할: 함수 내부에서 사용할 데이터를 받아들이는 역할.예제:def greet(name): # 여기서 'name'이 파라미터! print(f"Hello, {name}!")name은 함수가 호출될 때 전달받을 데이터를 담을 파라미터야.2. 인자 (Argument)정의: 함수를 호출할 때 실제로 전달하는 값.위치: 함수 호출부에 작성됨.역할: 파라미터에 전달되어 함수 내부에서 사용될 실제 데이터.예제:greet("Alice") # 여기서 'Alice'가 인자!"Alice"는 함수 호출 시 name 파라미터에 전달되는 인자야.3. 쉽게 비유하자면:파라미터는 함수 선언 시 빈 상자이고,인자는 함수를..

반응형