시험 클러스터 환경 마스터용 컴포넌트 Etcd 저장소 Key-value 타입의 저장소 node, pod들의 상태 정보를 key,value 형태로 저장 kube-apiserver k8s-api를 사용하도록 요청을 받고 요청이 유효한지 검사 k8s에 보내는 모든 요청은 kube-apiserver를 이용해 다른 컴포넌트로 전달. Kube-scheduler 파드를 실행 가능한 노드중 가장 알맞는 노드 선택 Kube-controller-manager 파드를 관찰하며 개수를 보장 위커노드용 컴포넌트 Kubelet 모든 노드에서 실행되는 k8s 에이전트 데몬 형태로 동작 컨테이너의 실핼을 직접 관리, 정상적으로 실행되는지 헬스 체크함. Kube-proxy K8s의 network 동작을 관리 Iptables rule을..
반응형
분류 전체보기
https://momobob.tistory.com/50 [Kubernetes기반 CI/CD환경설정 시리즈] 01. NFS 서버 구성 Kubernetes기반 CI/CD환경 설정해보며 정리했던 것들에 대해서 시리즈로 포스팅해 볼 예정입니다. 시리즈의 기본 환경은 4대의 VM(master1대, worker2대, NFS1대)의 노드 위에 쿠버네티스가 설치되어있는 momobob.tistory.com 쿠버네티스를 이용하여 CI/CD 환경설정을 위해 쿠버네티스를 공부했었는데, 공부한게 아까워서 CKA 취득을 준비해보려고 함. 자격증은 크게 CKAD / CKA / CKS 세가지가 있는데, 각각, 초급 중급 고급으로 생각하면 된다고 함. Kubernetes Certified Administrator (CKA) Kuber..
AWS에서 도메인을 구매하여 생성했다고 가정함. 1. Route 53에서 호스팅 영역 생성 Route 53에서 호스팅 영역 생성 구매한 도메인을 입력 후, 호스팅 영역 생성 생성 확인 2. AWS Certificate Manager(ACM)에서 인증서 발급 인증서 발급 요청 퍼블릭 인증서 요청 선택 후, 다음 구매한 도매인 입력, DNS 검증 선택 후, 요청 인증서 생성 확인 생성한 인증서 ID를 클릭하여 상세 페이지로 이동 'Route 53에서 레코드 생성' 버튼 클릭 1번에서 생성한 Route53 도메인 선택 후, 레코드 생성 몇 분 후, 검증대기중이 발급됨 바뀜. [트러블슈팅] 한시간 이상 기다려도 계속 검증 대기 중 상태일 경우 Route 53에서 추가한 호스팅 영역의 NS의 값/트레픽 라우팅 대..
4000포트로 배포한 Node어플리케이션에 https 설정해보자. EC2에 어플리케이션이 이미 배포되었고, EC2보안설정으로 필요한포트(여기서는 4000)가 열여있다는 전재로 진행됨. 1. 로드벨런서를 생성 (https 리스너는 추후에 추가) 2. 대상 그룹 추가 3. 도메인 등록 (비용 발생) 4. Router 53 > DNS관리 > 호스팅 영역에서 호스팅 생성하여 3번에서 생성한 도메인이름으로 생성 도메인 이름에 위에서 생성한 도메인이름 작성 5. 호스팅 영역에서 생성한 호스팅 도메인 클릭 후 레코드생성 별칭으로 로드벨런서 선택 6. ACM에서 인증서 생성 도메인이름은 역시 생성한 도메인이름 그대로 작성 생성 직후 팝업에서 인증서 보기 클릭 레코드 생성 7. 마지막으로 로드벨런서에서 리스너 등록 후 ..
Node.js DB설정정보를 아래와 같이 config파일로 분할하여 gitignore하여 형상관리를 하지 않는 방법으로 민감정보 노출을 막아왔다. { "development": { "username": "user", "password": "12345", "database": "DADARI_DB", "host": "127.0.0.1", "dialect": "mysql", }, "test": { "username": "user", "password": "12345", "database": "DADARI_DB", "host": "127.0.0.1", "dialect": "mysql", }, } 하지만 최근 프로젝트에 GIt Actions기능을 이용하여 CI/CD환경을 구축하고자 하여 원격 git reposit..
1. Node Project 생성 CI를 진행할 노드 프로젝트를 준비함. 2. Workflow 생성 CI를 진행할 레포의 Actions클릭 후 Node.js Configure 클릭. yml 파일 작성 name: Node CI Example on: push: branches: [ "main" ] pull_request: branches: [ "main" ] jobs: build: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - name: Use Node.js 17.x uses: actions/setup-node@v3 with: node-version: 17.x cache: 'npm' - run: npm ci - run: npm test env: D..
Error sequelize을 통해서 test시 테이블을 생성하기 위해서 app.js 에서 아래와 같이 설정함. db.sequelize .sync({ force: false }) // true : 테이블을 재생성 .then(() => { console.log('데이터베이스 연결 성공'); }) .catch((err) => { console.error(err); }); 그리고 테스트데이터를 사전에 insert하기 위해서 테스트코드(.spec.js)의 before에 아래와 같이 작성 const request = require('supertest'); const app = require('../app.js'); describe('GET /categories는', () => { const category = [..
Error 현상 MacOS(리눅스기반)에서 DB 설정정보를 환경변수로 관리하기 위해 Terminal에서 아래와 같이 명령어를 실행하였음. export DB_PASSWORD="password1!" 실행결과 double quotation(쌍따옴표) 가 끝나지 않아 dqoute>라고 나왔고 "로 명령어를 마침. 환경변수 설정을 확인하기 위해 env 명령어를 실행을 했더니 아래와 같이 !는 사라지고 개행이 추가된 변수값이 설정됨.. Solution hash에서 !(느낌표)의 기능을 찾아봤더니 명령어의 히스토리를 확인하는 명령어였음.. 그래서 bash에서 느낌표를 사용하려면 느낌표를 이스케이프 해줘야하는데, 아래와 같이 느낌표 앞에 이스케이프를 위한 특수문자인 \(백슬레쉬)를 사용하면됨. export DB_PAS..
반응형