목록네트워크 캠퍼스/쿠버네티스 (8)
Information Security Study

config Map, secret컨테이너에 configmap 관련으로 포함되는 요소개발 ConfigMap프로덕션 ConfigMap보안 관련 정보 k8s는 pod생성에 사용되는 YAML파일에 설정 값(MySQL 환경변수)을 작성해야 한다. ConfigMap은 주로 환경변수와 같은 설정값을 외부 파일에 작성할 때 사용한다. secret은 yaml코드 등에 노출시키면 안되는 정보들을 저장하기 위해 사용한다. configmaps와 secrets는 쿠버네티스 내부에 등록되어 있다.이는 상황에 따라 편리하게 값을 넣어주기 위함이다.항상 코드로 값을 고쳐주는 것보다 외부에 저장한 값을 넣어주는 것이 효율적이다. configmaps에 일반적인 정보, secrets에 보안 정보를 보관한다. 실습 Dockerfil..

PV와 PVCPV: persistent volumePVC: persistent volume claim hostpath 방식은 리소스 관리 및 보안측면에서 권장되지 않기에 k8s는 PV object로 Storage를 추상화하고PVC object를 통해 구현체를 받아서 쓴다. PV에 클레임을 걸어서 capacity(용량)과 accessModes(권한) 등을 요청한다. 사용 절차관리자는 먼저 디스크나 클라우드 등에서 빈 공간을 확보한다.yaml코드를 활용해 확보한 빈 공간중 일부에 PV를 생성한다.사용자가 PV에 대해 다시 PVC를 생성한다.사용자의 PVC는 맞는 PV로 전달된다.요청된 PV를 활용하는 pod가 생성된다. 프로비저닝(Provisioning): PV를 생성하는 등의 작업을 지칭 정적(sta..

Kubernetes CNI와 어플리케이션 배포 과정 체험 POD 배포 실습 일반적인 어플리케이션의 배포 절차 개발팀에 application 배포 일정이 잡힌다. Dockerfile을 생성하고 build 해서 이미지를 생성한다. docker run을 이용해 컨테이너를 테스트한다. docker hub 등의 레포지토리에 업로드한다. 올라간 이미지를 pod와 service를 생성해 연결한 뒤에 테스트한다. 테스트가 끝났다면 배포 파이프라인을 구축한다. 위 절차대로 실습해 봤다. ~ 폴더 하위에 nodeapp 폴더를 만든 뒤 app.js 파일을 생성했다. var http = require('http'); http.createServer(function (req, res) { res.writeHead(200, {'..

k9s로 리소스 관리해 보기 k9s는 CLI를 이용해서 리소스 관리를 돕는 도구다. 터미널 기반의 UI를 제공해 kubectl이라고 매 명령마다 적지 않아도 된다. UI를 제공하기는 하기때문에 손쉽게 다룰수 있다. 먼저 master에 설치파일을 받았다. 압축을 풀어준다. 명령어를 배치할 수 있는 절대경로를 확인한 다음에 k9s를 확인된 경로인 /usr/local/bin 경로 하위로 옮겼다. 그리고나서 k9s를 실행하면 위와 같이 뜬다. 방향키로 하단 pod창에서 생성된 pod들에 대한 정보를 확인할 수 있다. kubectl get po(d) -A 처럼 사용할 수 있다. 종료는 :q 를 입력하면 된다. k9s 정보를 확인했다. k9s로 돌아와보면 방향키로 pod들에 대한 정보를 확인할 수 있고 상단에는 p..

프로메테우스와 그라파나로 모니터링 환경 구성하기 프로메테우스 클러스터나 컨테이너에 대한 정보를 쉽게 수집할 수 있도록 도와주는 툴이다. key-value쌍으로 시계열 데이터를 수집해 주며 PromQL이라는 쿼리 언어를 이용해서 조회 및 분석을 지원한다. Alert 기능을 통해 알림 기능을 제공하며 자체적으로 시각화를 지원한다. 그라파나 지표분석 및 시각화 도구이다. 프로메테우스에서 수집한 데이터를 그라파나로 시각화한다. 프로메테우스와 그라파나를 조합해서 사용한다. 프로메테우스는 사용자가 사용중인 쿠버네티스 각 노드에서 메트릭을 취합하고 해당 메트릭을 그라파나로 보내서 다시 사용자가 볼 수 있는 web ui에 대시보드화 해준다. (aws에서 cloudwatch로 제공하던 기능들을 직접 구축할 수 있는 시스..

쿠버네티스 대시보드로 모니터링하기 모니터링과 옵저버빌리티 모니터링 자원 사용량이나 트래픽 등을 수집하고 분석해서 문제 발생 시 경고해 주는 것 모니터링은 특정한 주기로 수집되는 로그나 정보를 토대로 수행한다. 예측한 문제가 발생했을 때는 신속하고 즉각적으로 알림이 가지만 모니터링 범주를 벗어난 문제에 대해서는 대응이 어렵다. 관측 가능성(옵저버빌리티) 시스템에서 외부로 출력되는 값을 활용해서 내부 상태를 추론하는 것 내부 시스템에 대한 이해가 뛰어나야 하며 추론에 따라 운영을 자동화한다. 대규모 시스템에 적합하고 예방에 초점이 맞춰져 있다. 관측 가능성의 3요소 1) 모니터링 특정 기간 동안 측정된 데이터의 수치 표현한다. 추세 확인, 모델링 및 예측 시 사용한다. 2) 로깅 이벤트의 시간이 포함된 불변..

쿠버네티스 설치 master에서 설치한다. $ curl -fsSL https://pkgs.k8s.io/core:/stable:/v1.29/deb/Release.key | sudo gpg --dearmor -o /etc/apt/keyrings/kubernetes-apt-keyring.gpg $ echo 'deb [signed-by=/etc/apt/keyrings/kubernetes-apt-keyring.gpg] https://pkgs.k8s.io/core:/stable:/v1.29/deb/ /' | sudo tee /etc/apt/sources.list.d/kubernetes.list $ sudo apt update $ sudo apt-cache policy kubeadm $ sudo apt -y inst..

쿠버네티스와 컨테이너 쿠버네티스(Kubernetes) 컨테이너화된 애플리케이션의 배포, 확장 및 관리를 자동화하는 오픈 소스 플랫폼이다. Google에서 개발한 컨테이너 오케스트레이션 시스템의 오픈 소스 버전이다. 컨테이너는 응용 프로그램, 라이브러리 및 종속성을 하나의 패키지로 묶는 가벼운 방법을 제공한다. 애플리케이션의 환경에 관계없이 일관된 실행을 보장한다. 컨테이너 격리된 환경에서 실행되며 호스트 운영 체제와 커널을 공유한다. 컨테이너는 가상 머신보다 가볍고 빠르며 일관된 배포 및 실행 환경을 제공한다. Kubernetes의 주요 기능 자동화된 배포 및 롤아웃 : Kubernetes는 새로운 애플리케이션 버전을 배포하고 이전 버전과 새 버전 사이의 전환을 관리한다. 롤아웃 중에 장애가 발생하면 자..