전체 글245 [Kubernetes] ArgoCD 사용해보기 (3) - ArgoCD Rollouts를 이용한 배포 Rollouts 설치하기빌드하기▶ Jenkins > Dashboard > add-on > deploy-argo > 파라미터와 함께 빌드DEPLOY_TYPE : helm_upgrade TARGET_ARGO : argocd-rollouts▶ values-dev.yaml 파일Rollouts의 대시보드 사용은 기본 값이 false입니다.대시보드를 사용해 볼 것이기 때문에 enabled속성을 true로 주어 사용해보고자 합니다.controller: replicas: 1 dashboard: enabled: true service: type: NodePort portName: dashboard port: 3100 targetPort: 3100 node.. FrameWorks/Kubernetes 2025. 3. 16. [Kubernetes] ArgoCD 사용해보기 (2) - ArgoCD Image Updater를 이용한 자동 배포 Argo CD Image Updater 사용 이유우리는 Jenkins Pipeline을 이용해서 빌드부터 자동 배포까지 동작하는 과정을 지난 게시글(CI/CD관련 게시글)에서 확인해 봤는데요.Argo CD소스를 빌드하고 배포까지 한번에 하기가 상당히 까다롭습니다.소스를 빌드하고, 컨테이너를 빌드해서 이미지를 Docker Hub에 올리고 .yaml파일을 수정하는 과정으로 자동배포까지 만들 수는 있지만 코드가 번잡해지죠. 이것을 해결하기 위해 Image Updater를 사용하게 됩니다. Image Updater는 Docker Hub를 모니터링하고 있어, 변경감지가 발생하면 ArgoCD로 배포명령을 내리고 태그 규칙을 추가해 자동배포를 진행하게 됩니다. 아래 이미지를 보고 한번 이해해 보시기 바랍니다.Argo.. FrameWorks/Kubernetes 2025. 3. 16. [Kubernetes] ArgoCD 사용해보기 (1) - ArgoCD 설치 및 기본 배포 Argo CD란??Argo CD란 Git을 기반으로 사용하는 Kubernetes의 addon으로써 배포를 도와주는 오픈소스입니다.사용하기 편한 UI를 가지고 있으며 Application별 생성한 Pod의 상태를 파악하는데에도 도움이 됩니다. Argo에는 다양한 도구 존재하는데 이는 필요시 찾아보면서 사용해보시면 되겠습니다.CDKubernetes 전용 배포 툴로써 소스코드를 감지하여 변경사항을 모니터링하고 변경된 것이 있으면 자동으로 감지하여 배포해주는 역할을 합니다.Image UpdaterCD의 추가기능으로써 Image Updater는 허브에 있는 이미지의 변경을 감지하여 배포해주는 역할을 합니다.CD와 별개로 사용할수도 있지만 보통 같이 사용합니다. 감지 방법에는 세가지가 있습니다.태그 기반 감지:la.. FrameWorks/Kubernetes 2025. 3. 15. [Kubernetes] Helm과 Kustomize 비교하며 사용하기 Helm과 Kustomize공통점중복 관리의 최소화예를 들면 MSA환경에서 우리는 배포를 하기 위해 여러개의 .yaml파일이 필요할 겁니다.환경은 비슷하기 때문에 .yaml파일에서 몇가지만 수정하면 되지만, 운영환경마다 또 여러개의 .yaml파일이 필요할 겁니다. 많은 MSA이 있고 다양한 운영환경이 있다면 N * M의 개수로 파일을 직접 만들어야 겠죠?? 이를 방지하기 위해 하나의 파일로 명령어를 날려 .yaml파일을 자동으로 만들어주는 기능을 합니다.다양한 배포 툴에서 지원argo, github action 등의 다양한 오픈소스 라이브러리들을 사용할 수 있다는 점도 공통입니다.차이점 HelmKustomize배포 편의기능 갯수200개10개한 패키지 당 활용 범위마이크로 서비스 AND 다양한 배표 환경마.. FrameWorks/Kubernetes 2025. 3. 14. [Kubernetes] Jenkins Pipeline - 기초부터 Blue, Green 까지 의미 없는 서두...이번 편의 공부는 삽질을 엄청 많이 했습니다.그렇게 해서 배운 것도 많긴하지만 서도... 강의는 40분 안쪽 강의인데 1시간 30분? 2시간?? 정도를 삽질한거 같네요... 이유는 개인 GitHub에 강의용 Repository가 추가되는게 싫어서 기존에 사용하던 Study관련 레파지토리에 일프로님이 올려주신 소스코드, 배포파일 등을 받아서 사용하다보니 path관련과 Jenkins에서 script 실행시 시작 path때문에 골머리를 엄청 썩였습니다... 만약, 이런 고생을 하고 싶지 않으시다면 강의를 들으실때는 그냥 하라는 대로 하는게 나을수도... 하지만 삽질한 만큼 얻어가는건 많네요!! 그래서 이번편 정리는 그냥 일프로님이 하라는대로 하는 그런 방식으로 정리하겠습니다!!참고... 실.. FrameWorks/Kubernetes 2025. 3. 12. [Kubernetes] CI/CD 환경 구축하기 개발환경Parallels DesktopRocky Linux(RedHat 계열) 9.2containerd 1.6.21kubernetes 1.27MacOSKubernetes설치하기Rocky Linux의 기본 설정각 설정에 대한 설명은 생략하도록 하겠습니다.작성한 게시글 중 [[01. Kubernetes 설치하기]]를 참고해주세요. 반드시 IP는 고정아이피를 사용해주셔야합니다.저는 마스터 노드의 IP가 192.168.45.30이기 때문에 192.168.45.20을 사용했습니다.타임존 설정timedatectl set-timezone Asia/Seoul방화벽 해제systemctl stop firewalld && systemctl disable firewalldkubectl 설치하기repo 설정cat Kubectl.. FrameWorks/Kubernetes 2025. 3. 11. [Kubernetes] Component 동작으로 이해하기 전체 개요VM영역VM영역은 각 노드들의 영역이고 노드안에 Kubernetes가 동작하기 위한 설치파일들이 설치되는 공간입니다. 물리적인 서버가 넉넉하다면 가능한한 Master Node에는 일을 시키지 않는 것이 좋습니다.그 이유는 마스터 노드가 일을하다 리소스가 부족하여 Master Node가 죽게된다면 하위에 있는 Worker Node전부 동작을 멈추게 되기 때문이지요.Kubernetes Cluster각 Pod들이 올라가게되는 공간입니다. 이 부분을 Component라고 하는데 Master Node에서 담당하는 Control Plane Component가 있고 Worker Node들이 담당하는 Worker Component가 있습니다.Resourcecluster levelcluster level은 Cl.. FrameWorks/Kubernetes 2025. 3. 11. [Kubernetes] Application 이해하기 - PVC, PV, Deployment, Service, HPA PVC, PV - Pod(hostPath)PVC(Persistent Volume Claim)PVC란 일종의 PV와 Pod간의 명세서 역할을 해주는 Interface입니다.인프라 담당자가 Pod는 개발자가 만들고, PV는 인프라 담당자가 만들게 되는데 PV가 변경되어도 개발자가 다른 설정사항을 수정하지 않아도 되게 해주는 역할을 하는 것이죠.resource자원을 정의하는 부분입니다.requests에서 사용할 스토리지의 용량을 storage속성을 통해 선택합니다.이 값은 PV의 capaticy의 storage값과 일치해야 합니다.accessModes해당 마운트한 폴더에 접근 권한을 설정하는 부분입니다.이 값은 PV의 accessModes의 값과 일치해야 합니다.apiVersion: v1 kind: Pers.. FrameWorks/Kubernetes 2025. 3. 11. [Kubernetes] Application 기능 이해하기 - Configmap, Secret 환경변수Configmap기본 개념Configmap이란 Pod내부에 환경변수를 설정해 주는 Object라고 생각하시면 됩니다.해당 데이터는 Pod이 올라갈때 key와 value를 읽어 jar 실행시 환경변수를 -D옵션으로 자동으로 삽입해줍니다.이 과정을 통해 예전에는 모든 명령어를 작성해 주어야했던것을 Object로 관리 할 수 있는 것이죠.data속성 안에 설정하고자하는 환경변수를 넣어주면 됩니다.data : spring_profiles_active: "dev" application_role: "ALL" postgresql_filepath: "/usr/src/myapp/datasource/postgresql-info.yaml"위에 Configmap.yaml파일을 살펴보면 Pod에서 jar명령어를 실.. FrameWorks/Kubernetes 2025. 3. 10. [Kubernetes] Application 기능 이해하기 - Pod(Probe) Pod(Probe)개념Probe는 Health Check 같은 원리를 사용 현재 나의 Pod이 어떠한 상태인지를 파악하는 용도입니다.startupProbe현재 앱이 기동이 되었는지를 파악readnessProbe외부 트래픽을 Pod가 받을 수 있는 상태인지를 파악(Service와 Pod를 연결)초기 데이터 로딩, 연동 시스템 체크, DB 데이터 Validation등 User 초기화 완료여부livenessRrobeApp이 살아있는지를 파악startupProbe가 true로 나온 이후 해당 앱이 살아있는지에 대한 여부false로 나온다면 App을 재기동 시킴해동 API의 기능은 직접 구현해야하고 상황에 맞게 로직도 만들어 두어야 합니다.예시로 보는 이해모든 Probe는 "/ready"라는 url path로 통.. FrameWorks/Kubernetes 2025. 3. 9. [Kubernetes] Object의 metadata 그림으로 파헤치기 .yaml파일에 각 속성에 대해 이해하기폴더생성master Node에 접속해 디렉토리를 생성mkdir -p /root/k8s-local-volume/1231.yaml의 metadata에 있는 labels 파헤치기우리는 옷을 사던 어떤 제품을 사면 해당 제품에 label을 볼 수 있습니다. 이 label들은 이 제품이 어떤 제품인지에 대한 명세를 해주는 부분이지요. metadata에 있는 labels안에 내용들도 마찬가지 입니다. 다른 Ojbect들끼리의 연결에도 중요한 역할을 하니 잘 알아 두어야 합니다. 아래 이미지를 보시면 selector를 이용해서 해당 Object의 labels의 정보로 어떤 Object가 어떤 Object에 연결될 것인지를 판단하게 됩니다. 그럼 각각 무엇을 나타내는지 알아 볼까.. FrameWorks/Kubernetes 2025. 3. 7. [Kubernetes] 쿠버네티스에 모니터링 시스템 설치하기(feat. Prometheus, Loki-stack) 여전한 서두....오늘은 어느 시스템이건 빠질 수 없는 모니터링 시스템을 쿠버네티스에 설치해 보도록 하겠습니다. 모니터링 시스템을 구축하는 이유는 다양하죠?? 어느 시간때에 트래픽을 가장 많은지를 파악한다던가 메모리는 얼마나 사용중이고 CPU점유율은 어떤지 파악하기 위해 기타 등등 많은 정보를 취합하여 생각지 못한 장애를 사전에 파악할 수 있습니다.우선 처음 접해보시는 분들을 위한 설치 방법에 대한 예시일 뿐!! 현업에서 사용한다면... 사용하는 버전과 호환이 되는 버전은 각자 찾아서 적용해주시고 무작정 따라하는 것은 삼가해 주시기바랍니다.우리는 오늘 프로메테우스와 로키를 이용한 모니터링 시스템을 구축해보도록 하겠습니다!!이번장은 설명할게 많지 않아 간단하게 넘어가겠습니다. 설치 GitHub에서 Prom.. FrameWorks/Kubernetes 2025. 3. 7. 이전 1 2 3 4 ··· 21 다음 💲 추천 글 728x90 반응형