Kubernetes 29

쿠버네티스 / 앱 현대화 테크 세미나 1회 참여 후기

들어가며 SK의 테크블로그로 유명한 Devocean에서 가 열린다는 소식을 들었습니다. 아주 많은 분들이 신청하셔서 사전 등록자 중 추첨으로 참석자를 선정하신다고 하셔서 마음을 내려놓고 있었는데, 감사히도 운 좋게 추첨에 당첨되어서 오후에 반차 내고 다녀왔습니다. 세미나 참여 후기에 발표 내용을 요약해서 적는 것 보다는 관련 자료들을 링크해두는 게 더 좋을 것 같아 후기를 링크 모음으로 갈무리합니다 :) 좋은 세미나 기획해주신 관계자 분들, 후원사 분들, 발표 준비해주신 연사자분들 감사드립니다. 행사 개요 제목: 쿠버네티스 / 앱 현대화 테크 세미나 "당신은 Kubernetes를 어떻게 설치/관리하고 계시나요?" 일시 : 2024년 2월 28일 수요일 오후 1시 30분 ~ 5시 장소 : SKT/SKP 판..

Kubernetes 2024.02.29

CKS 공부할 때 자주 쓰는 명령어

ps -ef ps -p ps -u grep -e A -e B : OR 조건(A 혹은 B 에 해당되는 행 출력하기) grep -v C: 제외(C에 해당되는 행 제외하기) cut -d " " -f 숫자 : 공백을 구분 기준으로 삼아서 몇번째 열 출력 vi -R: readonly로 열기 cat -A 텍스트파일: (텍스트파일이 바이너리로 인식되어도)텍스트로 형식 지정하여 열기 strace -p 프로세스번호: 특정 프로세스의 시스템콜 추적 yaml파일에서 특정 key의 값 출력하기yq e '.metadata.name' ngnix.yaml nginx-podapiVersion: v1 kind: Pod metadata: name: nginx-pod spec: containers: - name: nginx image: ..

Kubernetes 2024.02.20

Distroless image

Distroless 이미지는 Kubernetes 워크로드를 위해 애플리케이션과 런타임 의존성만을 포함하는 최소화된 컨테이너 이미지입니다. 도커 이미지계 미니멀리즘 도둑: 들어와도 뭘 할 수 있는게 없네.. Shell이 없으므로 ENTRYPOINT 명령어로 있는 것 없는 것 애플리케이션에 필요한 최소한의 Binary code (표준 Linux 배포판에 있지만 애플리케이션에는 불필요한) 패키지 관리자 직접적인 종속성(라이브러리, 모듈) Shell, 기타 프로그램 (필요한 경우)최소한의 런타임 불필요한 구성 요소를 최소화하여 공격자의 악용 가능성을 크게 줄인다. “런타임 컨테이너의 내용을 앱에 꼭 필요한 내용으로 제한하는 것은 수년 동안 프로덕션에서 컨테이너를 사용해 온 Google 및 기타 기술 대기업이 ..

Kubernetes 2024.02.17

Trivy

Trivy 개요 Trivy는 컨테이너 이미지를 분석하여 취약점, 악성 소프트웨어, 정책 위반 등을 식별하고 보고하는 도구이다. Container Images, Git Repositories, Filesystem 같은 항목들을 스캐닝 하고, 문제점을 빠르게 요약해서 보여준다. Kubernetes 대시보드, Aqua 대시보드 등 GUI로 확인 가능하다. Trivy 실행하기 # 기본 시행 명령어 $ trivy {image 이름} # 특정 수준만 체크하기 정의 $trivy repo --quiet --severity CRITICAL {image 이름} # 기본 시행 명령어 trivy {image 이름} # 특정 수준만 체크하기 정의 trivy repo --quiet --severity CRITICAL {image..

Kubernetes 2024.02.12

Audit Log Policy

Audit Log 요약 쿠버네티스에서 누가, 언제, 무엇을, 어떻게 활동했는지 감사(audit)하고 파일로 저장하는 기능 정책 파일에 rules 를 정의하여 어떤 로그를 생성할 지 필터링을 걸 수 잇다. Audit Logging기능을 활성화하려면, 정책 파일을 정의하고, 외부 저장소에 백엔드를 정의해야 한다. Audit Log 만드는 법 이하 내용은 공식 문서의 '이벤트를 파일 시스템에 기록하는 로그 백엔드'항목을 정리한 것이다. https://kubernetes.io/docs/tasks/debug/debug-cluster/audit/#log-backend 1단계: Audit Policy 정의하기 Audit Policy의 rules 필드는 필수로 지정되어야 한다. vi /etc/kubernetes/aud..

Kubernetes 2023.06.08

securityContext

securityContext 요약 SecurityContext는 Pod와 Container를 위해 보안 설정을 정의하는 항목이다. securityContext 항목 Discretionary Access Control: UID, GID를 기반으로 파일에 접근 권한을 가지는 사용자(runAsUser) 그룹(fsGroup)을 설정할 수 있다. Linux Capabilities: Root 사용자에게 모든 권한을 부여하는 대신, 프로세스에 일부 권한을 부여한다. readOnlyRootFilesystem: 컨테이너의 루트 파일 시스템을 읽기 전용으로 마운트한다. allowPrivilegeEscalation: 프로세스가 상위 프로세스보다 더 많은 권한을 얻을 수 있는지 여부를 제어한다. 그 외 securityCont..

Kubernetes 2023.06.06

Job

"Job 리소스는 일반 Pod처럼 항상 실행되고 있는 서비스 프로세스가 아닌 한번 실행되고 완료가 되는 일괄처리 프로세스용으로 만들어졌습니다." - 책 194p Deployemt처럼 Pod를 생성해서 원하는 작업을 수행하는 건 같으나, 작업이 끝나면 Job은 Completions로 Pod는 Status 가 Completed로 남는다. Deployment Job 공통점 Pod를 생성하여 원하는 작업을 수행한다 목적 Running한 상태의 Pod 개수를 유지하는 것 작업 후 Pod가 종료되는 것 initContainer가 Pod 단위로 기동 단계 초반에 1회성 작업을 한다면, Job은 워크로드 중간에 1회성으로 batch 작업을 한다. Job의 restartPolicy는 Never 혹은 OnFailure 만..

Kubernetes 2023.06.04

initContainers

initContainers(초기화 컨테이너)란? 시작할 때만 Pod에 도움 주고 빠지는 컨테이너다. 식물로 치면 식물이 잘 자랄 수 있도록 도와주는 흙 역할을 한다. initContainers장점 - 최소한의 리소스로 잘 돌아가는 애플리케이션을 설계할 수 있다. - 예를 들어 initContainers에서 미리 git 레파지토리를 git pull 로 받아두면, 메인 컨테이너에서는 git 레파지토리가 이미 있다는 전제 하에 로직을 진행할 수 있다. initContainers특징 - initContainers는 항상 완료(Completed)를 목표로 실행된다. - 하나의 파드에 initContainers가 여러개 있을 경우 - kubelet은 각 initContainers를 한번에 하나씩 실행한다. - 하나..

Kubernetes 2023.05.24