쿠버네티스 14

[Kubernetes] ArgoCD 설치하기

Overview Kubernetes 클러스터에 ArgoCD 설치하기[AWS] Rancher를 통한 Kubernetes 클러스터 구축 [AWS] Rancher를 통한 Kubernetes 클러스터 구축Overview AWS 환경에서 Rancher를 통한 Kubernetes 클러스터 구축하기 AWS 환경에서 구축을 진행하지만, 베어 메탈 및 다양한 클라우드 플랫폼에서 적용 가능합니다. Architecture AWS 환경VPC 구성 - 가용 영taronko.tistory.com Prerequisite Kubernetes 클러스터 구축은 완료되었다고 가정하고 진행합니다. AWS 인프라 구축은 Overview 탭의 블로그를 참조해주시길 바랍니다. ArgoCD 설치 // Namespace 생성$ kubectl cre..

Kubernetes 2024.05.30

[Kubernetes] 클러스터 운영 시 고려 사항

1. 상용 쿠버네티스 클러스터를 프로비저닝하기 전에 필요한 노드 수와 크기를 고려하자. 2. 마스터 노드는 최소한 3개가 필요하며(관리형 서비스를 사용한다면 필요하지 않다.) 워커 노드는 최소한 2개(이상적으로는 3개)가 필요하다. 초기에 적은 양의 워크로드를 실행할 때는 이러한 쿠버네티스 클러스터의 비용이 비싸 보일 수 있다. 그러나 쿠버네티스의 장점인 복구와 확장 기능을 잊지 말자. 3. 쿠버네티스 클러스터는 수천 개의 노드와 수십만 개의 컨테이너로 확장할 수 있다. 4. 그 이상으로 확장이 필요하다면 멀티 클러스터를 사용하자(경우에 따라 보안이나 규제 준수를 위해 필요할 수 있다.). 여러 클러스터에 걸친 워크로드의 레플리카가 필요하다면 페더레이션을 사용하여 클러스터를 하나로 통합할 수 있다. 5...

Kubernetes 2024.04.03

[CKAD] 자격증이란?

CKAD 자격증이란?CKAD 자격증은 Certified Kubernetes Application Developer를 의미하며, Kubernetes 플랫폼에 대한 숙련도를 Linux Foundation에서 검증해주는 자격증입니다. CKAD 자격시험은 실습형 시험으로 Kubernetes 시험 환경에서 명령어를 활용해 리소스를 다루는 형태로 문제가 출제됩니다. CKAD 자격 시험은 2시간 동안 진행되며, 100점 만점에 66점 이상이면 시험에 통과합니다.* Who Is It For이 인증은 Kubernetes를 사용하여 클라우드 네이티브 애플리케이션을 구축, 구축 및 구성하는 Kubernetes 엔지니어, 클라우드 엔지니어 및 기타 IT 전문가를 대상으로 합니다. CKAD 자격증을 준비하는 방법..

CKAD 2023.05.28

[CKAD] Application Environment, Configuration and Security

CKAD 시험 비중 (25%) Authentication, Authorization and Admission Control 1. 인증(Authentication) * User 또는 Application이 API에 접근을 허가 받는 과정(인증서/토큰) 2. 허가(Authorization) * RBAC 모델 기반 * 요청 ID에 적절한 Role이 있는지 확인 3. 승인 제어(Admission Control) * 요청이 올바른 형식인지 판별 * 요청 내용에 대한 검증이나 요청, 내용을 강제로 변경할 때 사용 * 쿠버네티스에서 특정 기능을 제한(validate) 또는 변경(mutate) 1. Admission Controller 플러그인 * Resourcequota: Namespace에서 사용할 수 있는 전체 ..

CKAD 2023.05.28

[CKAD] Application Observability and Maintenance

CKAD 시험 비중 (15%) Liveness Probe 1. self-healing 기능 * 건강한 컨테이너를 이용해 서비스 지원 2. liveness probe * 동작되는 컨테이너에 주기적으로 건강검진 명령을 주어 결과에 따라 건강한지 아닌지를 판단 * 건강하지 않은 컨테이너는 kill 시키고, 다시 동일 버전의 컨테이너를 다운로드 받아 실행 * 항상 건강한 컨테이너를 가지고 서비스 지원함을 보장 * Pod가 계속 실행할 수 있음을 보장 1. httpGet probe: 지정한 IP 주소, port, path에 HTTP GET 요청을 보내서 해당 컨테이너가 응답하는지를 확인한다. 반환 코드가 200이 아닌 값이 나오면 오류로 인식하고 컨테이너를 다시 시작한다. 2. tcpSocket probe: 지정..

CKAD 2023.05.27

[CKAD] Application Deployment

CKAD 시험 비중 (20%) Pod를 배포(업데이트)하는 방법 1. Blue-Green Update 2. Canary Deployment 3. Rolling Update Blue/Green Update 1. 구 버전과 신 버전이 모두 동작한 상태에서 트래픽만 신 버전으로 전환 2. Rollback이 쉽고, 업데이트 과정에서 소요되는 시간 절약 3. 하드웨어 리소스 소비: 구, 신 버전의 애플리케이션이 동시 동작해야함 실습1 다음과 같은 deployment, service를 동작하세요. blue라는 이름으로 smlinux/nginx:blue 이미지를 가진 Pod 2개 배포하세요. 1. Label은 version=blue을 사용하며 port는 8080 포트를 사용한다. * app-svc 서비스를 versi..

CKAD 2023.05.27

[CKAD] Application Design and Build

CKAD 시험 비중 (20%) Docker Container Build 다음의 조건으로 appjs:latest 컨테이너를 빌드하세요. * 빌드 디렉토리: ~/app_build/appjs * /data/ckad/app.js 의 파일을 ~/app-build/appjs로 이동한 후 다음 조건에 맞게 컨테이너를 빌드하세요. 1. base image: node:12 2. app.js 파일을 컨테이너 / 디렉토리로 복사 3. 컨테이너 실행 시 node app.js가 동작되어야 한다. * 빌드한 컨테이너를 실행하세요. $ vi Dockerfile FROM node:12 COPY app.js / CMD ["node", "app.js"] or ENTRYPOINT $ docker build -t appjs:latest ...

CKAD 2023.05.27

[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