자동 배포 환경 구축 (github, jenkins, k83, argoCD )

DONNIE·2023년 10월 17일
0

VM / Container

목록 보기
6/6

프론트 소스 코드 자동 배포 환경

  1. Dockerfile 작성
  2. git hub repository 생성
  3. jenkins job 생성
  4. 서버 접속
  5. multipass shell jenkins
  6. git-rspo 내에 새로운 repository 생성
  7. ssh-keygen 으로 ssh key 생성
  8. git repository -> deploy keys에 공개키 저장
  9. .ssh/config 파일의 Host 정보 입력
  10. git/cicd에 repository 생성
    10.dev/stg/poc 별 Deployment.yaml 파일 생성
  11. argoCD에 git/cicd 연결 (path로 작업 디렉토리 지정)
  12. 서버에서 확인 ~_~

stg => npc
dev => 사내서버

kubectl get svc -n [server name]
curl [cluster-ip]:targetPort (Deployment상)
curl localhost:nodePorts (Deployment상)
  • Deployment.yaml
    • 포트 지정을 잘 해줘야 연결된다
apiVersion: apps/v1
kind: Deployment
metadata:
  name: [your_project]
  namespace: [your_server]
spec:
  selector:
    matchLabels:
      app: [your_project]
  replicas: [custom]
  template:
    metadata:
      labels:
        app: [your_project]
    spec:
      containers:
      - name: [your_project]
        image: [your_server]/[your_project]:[version]
        imagePullPolicy: IfNotPresent
        resources:
          requests:
            cpu: 100m
            memory: 200Mi
        ports:
        - containerPort: [Docker file 에 명시된 EXPOSE PORT]
---
apiVersion: v1
kind: Service
metadata:
  creationTimestamp: null
  labels:
    app.kubernetes.io/instance: [your_project]
  name: [your_project]-svc
  namespace: [your_server]
spec:
  externalTrafficPolicy: Cluster
  internalTrafficPolicy: Cluster
  ipFamilies:
  - IPv4
  ipFamilyPolicy: SingleStack
  ports:
  - nodePort: [localhost 연결 ip 포트]
    port: [서버 내 포트, ip 포트]
    protocol: TCP
    targetPort: [Docker file에 명시된 EXPOSE PORT]
  selector:
    app: [your_project]
  sessionAffinity: None
  type: NodePort
status:
  loadBalancer: {}

개발중에 레플리카는 1개로설정

profile
후론트엔드 개발자

0개의 댓글