본문 바로가기
시스템/쿠버네티스

[쿠버네티스] MSA(1) 개발환경 셋팅

by cbwstar 2024. 1. 25.
728x90
반응형

1. msa 네임스페이스 생성

kubectl create namespace msa

2. 네임스페이스 확인

kubectl get namespaces 

root@master:/home/msa/k8s/envirionments/rabbitmq/ingress# kubectl get namespaces 
NAME                   STATUS   AGE
argocd                 Active   15d
calico-apiserver       Active   19d
calico-system          Active   19d
default                Active   19d
harbor                 Active   8d
ingress-nginx          Active   8d
jenkins                Active   16d
kube-node-lease        Active   19d
kube-public            Active   19d
kube-system            Active   19d
kubernetes-dashboard   Active   16d
msa                    Active   11s
tigera-operator        Active   19d

3. 네임스페이스 변경

kubectl ns msa

root@master:/home/msa/k8s/envirionments/rabbitmq/ingress# kubectl ns msa
Context "kubernetes-admin@kubernetes" modified.
Active namespace is "msa".

 

4. 디렉토리 구조

리눅스 홈밑에 아래와 같은 구조로 k8s 쿠버네티스 배포 디렉토리 생성

backend와 frontend단은 윈도우 스프링 부트 개발환경이니 제외하고 k8s 관련 폴더 생성

mkdir -p /home/msa/k8s 폴더 만들고 아래와 같은 구조의 폴더 생성

├─backend
│  ├─apigateway
│  ├─board-service
│  ├─config
│  ├─discovery
│  ├─module-common
│  ├─portal-service
│  ├─reserve-check-service
│  ├─reserve-item-service
│  ├─reserve-request-service
│  └─user-service
├─config
├─docker-compose
│  ├─app
│  │  ├─mesh
│  │  └─service
│  ├─elk
│  │  ├─kibana
│  │  │  └─config
│  │  └─logstash
│  │      ├─config
│  │      └─pipeline
│  ├─mysql
│  │  └─init
│  └─opensearch
│      └─logstash
│          ├─config
│          └─pipeline
├─frontend
│  ├─admin
│  │  ├─public
│  │  │  ├─images
│  │  │  └─locales
│  │  ├─server
│  │  ├─src
│  │  │  ├─@types
│  │  │  ├─components
│  │  │  ├─constants
│  │  │  ├─hooks
│  │  │  ├─libs
│  │  │  ├─pages
│  │  │  ├─service
│  │  │  ├─stores
│  │  │  ├─styles
│  │  │  └─utils
│  │  └─test
│  ├─portal
│  │  ├─public
│  │  │  ├─locales
│  │  │  └─styles
│  │  ├─src
│  │  │  ├─@types
│  │  │  ├─components
│  │  │  ├─constants
│  │  │  ├─hooks
│  │  │  ├─libs
│  │  │  │  └─Storage
│  │  │  ├─pages
│  │  │  ├─service
│  │  │  ├─stores
│  │  │  ├─styles
│  │  │  └─utils
│  │  └─test
│  └─practice-image
└─k8s
    ├─applications
    │  ├─backend
    │  │  ├─apigateway
    │  │  │  └─ingress
    │  │  ├─board-service
    │  │  ├─config
    │  │  ├─discovery
    │  │  │  └─ingress
    │  │  ├─portal-service
    │  │  ├─reserve-check-service
    │  │  ├─reserve-item-service
    │  │  ├─reserve-request-service
    │  │  └─user-service
    │  └─frontend
    │      ├─admin
    │      │  └─ingress
    │      └─portal
    │          └─ingress
    └─environments
        ├─configmaps
        ├─databases
        │  └─mysql
        │      └─init
        ├─jenkins
        ├─logging
        │  └─elk
        │      ├─elasticsearch
        │      ├─kibana
        │      │  └─ingress
        │      └─logstash
        ├─nfs
        ├─rabbitmq
        │  └─ingress
        ├─storage
        ├─vagrant
        └─zipkin
            └─ingress

디렉토리 설명

  • /backend: Spring Boot를 기반으로 백앤드에 올려지는 서비스들
  • /backend/apigateway: Microservice에 대한 API 관리 및 모니터링 서비스
  • /backend/board-service: 게시판 서비스 (게시판, 게시물, 첨부파일 관리)
  • /backend/config: 별도의 통합된 설정 관리 서비스 제공을 통해 환경 독립적 서비스 제공
  • /backend/discovery: 마이크로서비스들을 등록하여 관리하고 요청 시 해당 서비스를 찾아 호출
  • /backend/user-service: 사용자 서비스 (로그인, 회원가입, 비밀번호 찾기, 관리자)
  • /backend/portal-service: 포털 공통 서비스 (메뉴, 코드, 컨텐츠, 권한, 인가, 배너, 첨부파일 관리)
  • /backend/reserve-check-service: 예약 확인 서비스
  • /backend/reserve-item-service: 예약 물품 서비스
  • /backend/reserve-request-service: 예약 신청 서비스
  • /config: backend 의 config 서버에서 사용하는 설정 yaml 파일 모음 폴더
  • /docker-compose: Docker에 여러 컨테이너의 실행을 관리하는 yaml 구성 파일들
  • /frontend/admin: Next.js + Typescript + Material UI 활용한 Admin Dashboard.
  • /frontend/portal: Next.js + Typescript 활용한 React 기반 프론트엔드.
  • /frontend/practice-image: 배너 이미지
  • /k8s: Kubernetes 환경 배포를 위한 Resource 템플릿 yaml 파일
  • /k8s/applications: Backend와 Frontend 애플리케이션의 k8s Resource 템플릿 yaml 파일
  • /k8s/environments/configmaps: Pods에서 사용하는 환경변수로서 Key-Value 쌍의 형태로 저장된 객체 정의
  • /k8s/environments/databases: MySQL 관련 객체 정의
  • /k8s/environments/jenkins: Jenkins 관련 객체 정의
  • /k8s/environments/logging: Centralized Logging을 위한 ELK 관련 객체 정의
  • /k8s/environments/nfs: NFS 노드 볼륨 구성
  • /k8s/environments/rabbitmq: Message Broker 관련 객체 정의
  • /k8s/environments/storage: PersistentVolumeClaim 정의
  • /k8s/environments/vagrant: 가상화 소프트웨어 개발환경의 생성을 쉽게 구성하도록 하는 Vagrant 관련 정의
  • /k8s/environments/zipkin: 분산 트랜잭션 추적을 위한 Zipkin 관련 정의

참조화면

백단은 스프링부트로 할것이고 프론트 단은 NextJS로 진행

728x90
반응형

댓글



"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."

loading