본문 바로가기

인프라,데이터/Docker, Kubernetes

(6)
K6로 부하테스트 하기(도커, 쿠버네티스 환경) K6란? Grafana에서 만든 오픈 소스 부하테스팅 툴로, 성능 테스트를 쉽게 수행할 수 있다. 부하테스트를 통해 성능 테스트를 수행함으로써 시스템의 신뢰성을 높일 수 있다. K6+도커로 부하테스트 먼저 테스트용 스크립트를 만든다. import http from 'k6/http'; import { check } from 'k6'; export const options = { stages: [ { target: 200, duration: '30s' }, { target: 0, duration: '30s' }, ], }; export default function () { const result = http.get('https://test-api.k6.io/public/crocodiles/'); check..
Kubernetes 배포 시 가능한 hook 들 + 특정 스크립트 hook으로 실행하기 AWS ECS(관리형 컨테이너)나 CodeDeploy에는 위와 같은 LifeCycle이 있어, 해당 단계에 hook을 걸 수 있다. hook이란? 배포 Life Cycle의 특정한 부분에 개입할 수 있게 해준다. version: 0.0 os: linux files: - source: /index.html destination: /var/www/html hooks: BeforeInstall: - location: scripts/install_dependencies.sh timeout: 300 runas: root AfterInstall: - location: scripts/change_permissions.sh timeout: 300 runas: root ApplicationStart: - location..
Mac ssh to docker-desktop node https://github.com/luksa/kubectl-plugins GitHub - luksa/kubectl-plugins: My own plugins for kubectl My own plugins for kubectl. Contribute to luksa/kubectl-plugins development by creating an account on GitHub. github.com 위 플러그인을 사용한다. /usr/local/bin 위치에 kubectl-ssh 파일을 아래의 내용으로 생성한다. https://github.com/luksa/kubectl-plugins/blob/master/kubectl-ssh chmod +x kubectl-ssh kubectl-ssh node docker-des..
Failed to create bus connection: No such file or directory 오류 해결 환경 Mac OS docker for mac 4.3.2 version Centos:7 이미지로 systemctl을 실행해야 되는 상황 보통은 centos7/systemd 이미지를 사용하거나, docker run --privileged --name httpd -v /sys/fs/cgroup:/sys/fs/cgroup:ro -p 80:80 -d httpd /sbin/init 와 같이 docker run 시 --privileged 옵션을 주고 /sbin/init 을 뒤에 붙이고, docker exec -ti httpd /bin/bash 와 같이 도커 컨테이너를 실행하면 systemctl이 실행이 되는데... 아무리 해도 Failed to create bus connection: No such file or d..
Kubernetes 특정 경로로 로그 파일 수집하기(nginx access 로그 만들기) nginx같은 경우는 /var/log/nginx/ 경로 하위에 access.log, error.log가 만들어진다. 이렇게 쌓이는 로그를 쿠버네티스에 띄운 Logstash로 수집할 수 있다. nginx.yaml apiVersion: apps/v1 kind: Deployment metadata: name: my-nginx namespace: test spec: replicas: 3 selector: matchLabels: run: my-nginx template: metadata: labels: run: my-nginx spec: affinity: nodeAffinity: requiredDuringSchedulingIgnoredDuringExecution: nodeSelectorTerms: - matchE..
Kubernetes에서 Logstash(sqs output)를 사용해 elasticsearch, kibana로 로그 확인 1. Hombrew를 사용하여 logstash 설치 brew tap elastic/tap brew cask install homebrew/cask-versions/adoptopenjdk8 brew install elastic/tap/logstash-full 로그스태시가 최신버전으로 설치된다. 2. 폴더 생성 후 conf 파일 생성 input { file { path => "/usr/share/logstash/data/*.log" codec => "json" } } output { stdout { } sqs { access_key_id => "***" secret_access_key => "****" codec => "json" queue => "test_queue" region => "ap-northea..