전체 글 66

[CKA] 자격증 취득 후기 (2023.05.22)

2023년 5월 22일, CKA 시험 합격! 준비 기간 * 약 2달 Kubernetes 사용 기간 및 배경 저는 3년차 백엔드 개발자이며, 현 회사에서 Kubernetes를 처음 사용하면서 접하게 되었습니다. 약 3개월 정도 기본적인 기능을 사용하면서 더 깊게 공부해보고 싶은 마음이 들어서 CKA를 준비하며 공부를 시작하게 되었습니다. CKA란 CKA에 대한 설명은 다른 좋은 글들이 많으니 생략하도록 하겠습니다. 제가 이전에 쓴 글도 참고하시면 좋을 것 같습니다. CKA 자격증이란? 공부 방법 1. Udemy - Certified Kubernetes Administrator (CKA) with Practice Tests, TTABAE-LEARN - 이성미 강사 강의를 들었습니다. 두 강의 모두 다 듣진 ..

CKA 2023.05.24

[CKA] Storage

CKA 시험 비중 (10%)Kubernetes Volume* Volume은 kubernetes 스토리지의 추상화 개념컨테이너는 Pod에 바인딩 되는 볼륨을 마운트하고 마치 로컬 파일 시스템에 있는 것처럼 스토리지에 접근한다.* Kubernetes 스토리지volumes:- name: html   hostPath # node에 있는 로컬 디스크 또는 NFS, AWS EBS, Azure Disk 등       path: /hostdir or file* 컨테이너 단위로 mountvolumeMounts:- name: html   mountPath: /webdata Empty Volume* Volume을 통해 컨테이너 간 데이터 공유1. emptyDir 볼륨은 빈 디렉토리로 시작2. Pod 내부에서..

CKA 2023.05.14

[CKA] Workloads & Scheduling

CKA 시험 비중 (15%)Pod란* Pod란 컨테이너를 표현하는 k8s API의 최소 단위* Pod에는 하나 또는 여러 개의 컨테이너가 포함될 수 있음$ kubectl run web --image=nginx --port=80 실습1'cka-exam'이라는 네임스페이스를 만들고, 'cka-exam' 네임스페이스에 아래와 같은 Pod를 생성하세요.* pod Name: pod-01* image: busybox* 환경변수: CERT="CKA-cert"* command: /bin/sh* args: "-c", "while true; do echo $(CERT); sleep 10;done"$ kubectl create namespace cka-exam# docs 적극 참고$ vi pod-0..

CKA 2023.05.14

[CKA] Cluster Architecture, Installation & Configuration (2)

CKA 시험 비중 (25%) API 인증: RBAC * API 서버에 접근하기 위해서는 인증 작업이 필요 * Role-based Access Control(RBAC, 역할 기반 액세스 제어) * User: 클러스터 외부에서 쿠버네티스를 조작하는 사용자 인증 (kubectl 명령어) -> cat .kube/config * Service Account: Pod가 쿠버네티스 API를 다룰 때 사용하는 계정 kubectl get secrets -> 토큰을 확인할 수 있다. Role & RoleBinding * 특정 유저나 ServiceAccount가 접근하려는 API에 접근 권한을 설정 * 권한 있는 User만 접근하도록 허용 * 권한 제어 * Role 1. 어떤 API를 이용할 수 있는지의 정의 2. 쿠버네티..

CKA 2023.05.14

[CKA] Cluster Architecture, Installation & Configuration (1)

CKA 시험 비중 (25%)ETCD* 쿠버네티스 클러스터의 정보를 저장하는 곳 (메모리)* key: value 형태의 데이터 스토리지* 모든 ETCD 데이터는 ETCD 데이터베이스 파일에 보관 -> /var/lib/etcd* ETCD 관리 명령: etcdctl* 마스터 3대, ETCD 3대 -> 고가용성(HA) 실습1What is the version of ETCD running on the cluster?$ kubectl describe pod etcd-controlplane -n kube-system Image: registry.k8s.io/etcd:3.5.6-0 실습2At what address can you reach the ETCD cluster from the c..

CKA 2023.05.13

[CKA] Troubleshooting

CKA 시험 비중 (30%) 지정한 Pod 내의 특정 컨테이너 애플리케이션 로그 확인 $ kubectl logs {Pod Name} 실습 {Pod name}의 로그 모니터링 후 'file not found' 오류가 있는 로그 라인 추출(Extract)해서 custom-log 파일에 저장하세요. $ kubectl get pod {Pod name} $ kubectl logs {Pod name} | grep 'file not found' > custom-log 클러스터 리소스 Pod 모니터링 $ kubectl top pods $ kubectl top pods --sort-by=cpu, kubectl top pods --sort-by=memory $ kubectl top pods {Pod Name} $ kube..

CKA 2023.05.13

[CKA] Services & Networking

CKA 시험 비중 (20%)Pod NetworkCNI에서 관리하는 포드 간 통신에 사용되는 클러스터 전체 네트워크 Service NetworkService discovery를 위해 kube-proxy가 관리하는 Cluster-wide 범위의 Virtual IP(Cluster IP)부하분산, Web 단일진입점(LB) Kubernetes Network Proxy 각각의 Node에서 실행되고, Kubernetes Service API에 정의된 서비스를 각 노드에서 반영 (kube-proxy 역할: iptables rule을 설정하고 외부 네트워크와 Pod를 연결) Service Type - ClusterIP(default)* Pod 그룹(동일한 서비스를 지원하는 Pod 모음)의 단일 ..

CKA 2023.05.07

[Spring/Java] 정규식을 통한 비속어 필터링

비속어 필터링 비속어들은 DB에 저장되어 관리되거나, 비속어 필터 라이브러리가 있으니 확인해보길 바란다. DB로 관리하는 것과 라이브러리를 활용하는 것에는 각각 장단점이 있으니 방식은 비교해보고 결정해보길 바란다. 게시물 등록 시에 모든 비속어를 DB에서 매번 조회하고 비교하는 것은 비효율적이다. Cache, Session, Singleton, In-memory 저장소(Redis 등)와 같은 방식으로 값을 미리 조회해서 사용하는 방식이 효율적이다. 이 글에서는 비속어들이 DB에 저장되어 관리되고, Redis를 사용하는 환경에서 비속어 필터링한다. 비속어 DB로부터 Redis에 비속어 정규식 패턴 저장 public void saveSlangListToRedis() { // DB로부터 모든 비속어 조회 (약..

Spring 2023.05.06

[CKA] 실습 환경 구성하기 (Mac)

CKA 실습 환경 구성Mac 환경에서 진행 Docker 설치Docker Desktop for Mac 설치 kubectl 설치brew install kubectl minikube 설치 - 쿠버네티스 클러스터 구성brew install minikube$ minikube start --driver docker😄 Darwin 13.3.1 의 minikube v1.30.1🆕 이제 1.26.3 버전의 쿠버네티스를 사용할 수 있습니다. 업그레이드를 원하신다면 다음과 같이 지정하세요: --kubernetes-version=v1.26.3✨ 기존 프로필에 기반하여 docker 드라이버를 사용하는 중👍 minikube 클러스터의 minikube 컨트롤 플레인 노드를 시작..

CKA 2023.05.02

[Helm] grafana와 redis 연동하기

사전 준비 1. kubectl, minikube, docker desktop 사전 설치 필요 2. Helm으로 grafana 설치하기 3. Helm으로 redis 설치하기 Grafana와 Redis 연동하기 1. 왼쪽 탭 -> Administration -> Plugins -> 'redis' 검색 -> Redis 선택 2. 오른쪽 위 'Install' 버튼 클릭 3. 오른쪽 위 'Create a Redis data source' 버튼 클릭 4. Redis data source 정보 설정하기 # redis 정보 확인 helm status {Release Name} # Redis Release 정보 확인 NAME: my-release LAST DEPLOYED: Sat Apr 29 16:46:46 2023..

Kubernetes 2023.04.29