GitLab CI를 사용하여 GKE에 Quarkus 애플리케이션 배포

이 게시물에서는 Quarkus 및 GitLab CI의 기능을 활용하여 Google Kubernetes Engine 클러스터에 Rest API를 쉽게 배포하는 방법을 보여드리고자 합니다.
Quarkus 설명 및 구성이 포함된 전체 게시물(프랑스어 🇫🇷)을 찾을 수 있습니다.

🚀 쿼커스



Quarkus를 모른다면 워크숍 이전 게시물입니다(프랑스어 🇫🇷) .

이 예제에서는 이 REST 리소스http://localhost:8080/hello에서 200 HTTP 코드를 반환할 수 있는 kubernetes 확장을 사용하여 간단한 Quarkus 애플리케이션을 만듭니다.

2개의 파일을 변경했습니다.
  • 러너 jar 파일을 빌드하고 생성하는 dockerfile
  • docker 이미지 이름을 변경하기 위한 application.properties

  • 🐬 구글 쿠버네티스 엔진



    이 부분에서는 GKE 계정을 만드는 단계를 생략하겠습니다.

    kubernetes 클러스터를 만들려면 두 가지 옵션이 있습니다.
  • GKE 인터페이스로 생성
  • GitLab 인터페이스로 생성

  • 이 예시에서는 두 번째 옵션을 선택하고 GitLabCI의 kubernetes 통합을 최대한 활용하여 GKE 클러스터를 생성하겠습니다. 시작하려면 수직 메뉴에서 "Kubernetes"링크로 이동하십시오.



    GKE에서 클러스터 생성 선택:



    원하는 클러스터의 이름을 입력하십시오.



    그리고 그게 다야 ! 🤘



    GKE GUI에서 클러스터를 사용할 수 있습니다.



    🦊 깃랩



    GitLabCI 파이프라인 설정은 .gitlab-ci.yml 파일을 생성하여 수행됩니다. 설명이 필요한 경우 이 기사에서 더 많은 정보를 찾을 수 있습니다. 새로운 "홍보"😎 -to .

    프로젝트의 루트에 .gitlab-ci.yml 파일을 생성합니다. 이 파일에서 우리는 우리의 스크립트를 원할 것입니다:
  • 애플리케이션 테스트 실행
  • Kaniko librairy을 통해 도커 이미지 빌드 - Google Kubernetes Engine에 애플리케이션 배포

  • .gitlab-ci.yml 파일이 있는 CI/CD



    3가지 작업을 달성하기 위해 3단계를 생성합니다.

    stages:
      - test
      - build_and_push
      - deploy_gke
    


    첫 번째 작업의 경우 maven 3.6.3 이미지에서 mvn clean verify를 만들기만 하면 됩니다.

    🩺 execute test :
        stage: test
        image: maven:3.6.3
        script:
          - mvn clean verify  -f deployquarkusongkewithgitlab/pom.xml
        artifacts:
            paths: 
                - deployquarkusongkewithgitlab/target/kubernetes
    


    작업 실행 후 사용 가능한 파일 수를 제한하고 다른 작업에서 이러한 파일을 사용할 수 있도록 하기 위해 target/kubernetes 디렉터리에 아티팩트를 설정합니다.

    빌드 및 푸시 부분의 경우 Kaniko 라이브러리를 사용하면 작업이 더 쉬워집니다.

    🐳 build push image docker:
      stage: build_and_push
      image:
        name: gcr.io/kaniko-project/executor:debug-v0.19.0
        entrypoint: [""]
      script:
        - echo "{\"auths\":{\"$CI_REGISTRY\":{\"username\":\"$CI_REGISTRY_USER\",\"password\":\"$CI_REGISTRY_PASSWORD\"}}}" > /kaniko/.docker/config.json
        - /kaniko/executor --context $CI_PROJECT_DIR/deployquarkusongkewithgitlab --dockerfile $CI_PROJECT_DIR/deployquarkusongkewithgitlab/src/main/docker/Dockerfile.jvm --destination deployquarkusgkewithgitlab:dev
    


    목적지인 Dockerfile의 경로를 입력하기만 하면 Kaniko가 우리를 위해 이미지를 빌드하고 원하는 리포지토리로 푸시합니다. 저는 GitLab registry 을 사용할 것입니다. Quarkus 설정 quarkus.container-image 😎를 사용하는 이유를 더 잘 이해할 수 있습니다.

    마지막 단계에서는 Quarkus에서 생성한 kubernetes.yaml 파일을 적용할 수 있는 Google에서 이미지cloud-sdk를 가져옵니다.

    🐋 deploy on gke:
      stage: deploy_gke
      image: google/cloud-sdk
      script:
        - kubectl apply -f deployquarkusongkewithgitlab/target/kubernetes/kubernetes.yml
      environment: gke
    


    환경 키워드는 중요하며 적절한 통합에 필요합니다. 이렇게 하면 환경 메뉴에서 환경을 볼 수도 있습니다.



    파이프라인에서 배포가 완료되었음을 확인할 수 있습니다.



    kubernetes 인프라가 GKE 아래에 있고 표시됩니다.



    우리 포드를 사용할 수 있습니다.



    감독



    보너스로 GKE 인프라를 모니터링하기 위해 GitLab에서 일부 측정항목을 직접 사용할 수 있습니다.



    이 글에 대한 의견이 있으시면 저에게 보내주세요😃

    좋은 웹페이지 즐겨찾기