,

인프라 학습(6) Git Actions

이 글의 목적

이 글은 GitHub와 Google Kubernetes Engine(GKE) 간의 자동화된 워크플로를 설정하여 Git Actions를 사용하는 방법을 설명합니다. Git Repository 생성부터 Git Actions 설정, 그리고 GKE와의 연동 과정을 단계별로 안내합니다.

한눈에 보기

Git Actions를 Git Repository에 설정하고, 이를 통해 GKE에 자동으로 배포하는 방법을 알아봅니다. 각 단계는 필요한 구성과 명령어를 통해 워크플로가 원활하게 작동되도록 지원합니다.

이 단계의 목적: GitHub에서 새 Repository를 생성하는 방법을 배우고 설정하여 GKE와의 연동을 준비합니다.

  1. Git Repository를 만든다.

: 사진을 보고 순서대로 진행하기

  • Github에 접속해서 로그인을 한다.
  • Repositories 탭을 클릭한다.

  • Repositories 탭의 New 버튼을 클릭한다.

  • Repository name을 입력하고 Create repository 버튼을 클릭한다.

  • 작업 폴더를 만들고 아래의 명령어들을 실행한다.

성공

이 단계의 목적: Git Actions가 제대로 인식되어 적절한 Workflow를 실행할 수 있도록 설정합니다.

  1. Git Actions가 인식할 수 있도록 만든다.

2.1. 핵심 기능 잘 작동되는지 확인하기 Test > 바로 적용하는걸 보고 싶다면 2.2로 이동

아래와 같이 .gitgub/workflows/manual-test.yaml 파일을 생성한다.

터미널에서 다음 명령어를 실행한다

  • Github의 Repository의 Actions 탭을 클릭한다.
  • 그리고 좌측의 Manual test > Run workflow를 클릭한다.

  • Run workflow 버튼을 클릭한다.

  • 좌측의 All workflows > Manual test를 클릭한다.

  • test Job의 사각 박스를 클릭한다.

  • test Job의 각각의 Step들을 확인한다.

테스트 성공!

2.2. GKE에 자동 배포하기

  • 필수 API를 활성화 한다.
  • Artifact Registry를 생성한다.
  • 아래의 IAM의 권한들을 설정한다
  • Github에서 추가해야될 환경변수 목록
  • 아래의 경로에서 변수들을 추가한다.

변수 추가 끝!

  • 배포 시작!

ㅋㅋ..

내일 아침에 다시 진행하기..

2025.10.09

  • 결국에 원인은 연결된 계정에서 토큰을 발급할 수 있는 권한이 없다는 뜻입니다.

  • CMD에 그대로 입력하기

드디어 성공!!!

깨달음

  • VPC Network의 Global Static IP를 발급해야 했던 이유가 Artifact Registry의 리전이 US로 잡혀 있어서 인걸로 추정된다.. > 실험하려면 클러스터 생성해서 Artifact Registry 서울 리전으로 만들고, Cluster와 Artifact Registry를 연결해야겠지만 나중에 해보기.
  • > 생각해보니 Autopilot을 사용할 때 IP는 Global을 반드시 사용해야 한다고 했으니까 괜히 하지 말기.

Github 내에서 변수들을 저장한다는 부분이 너무 보안적이지 않다는 생각이 들었었고, OIDC라는 개념이 존재함을 알게 되었다.

  • 나중에 Kubernetes의 어플리케이션 배포, 깃허브의 코드 배포, PostgreSQL에 대한 DB 설정 배포에 대해서 OIDC 개념을 적용하는 걸 해봐야 겠다.
  • 보안적이지 않다고 여긴 이유는 키에 대한 정보가 저장공간에 올라가 있다는 부분부터가 이미 보안적이지 않음 > OICD를 사용해서 각각의 설정을 적용하면 저장공간에 올라가 있지 않게 됨
  • 로컬에 있는 데이터를 암호화해서 서비스 계정으로 짧은 토큰을 발급해서 복호화하는 개념으로 느껴짐.
  • 우선 관찰된 현상으로는 IAM에서 권한들을 부여한 이후에 다시 Git Actions를 실행했을 때에는 동일하게 실패했었습니다. 제 생각에는 CMD를 입력함으로써 제대로 작동되는 걸 확인했고요. 이전에 실행했던 CMD와 무슨 차이가 있을지 고민해봤을 때, 브렌치를 지정해서 작동한 것 같다는 생각이 듭니다.

결론은 마지막 CMD를 입력함으로써 제대로 Gic Actions가 작동되었다는 걸 말씀드리고 싶고요. 다음에 Autopilot에서 Standard Cluster로 전환할 때 새롭게 진행할 예정이니 그 때에 정확하게 알아봐야 할 거 같습니다.

흔한 함정

  • GitHub에 환경변수 설정 시 보안에 대한 우려가 있을 수 있습니다. 예상하지 못한 보안 이슈를 막기 위해 OIDC 적용을 고려할 수 있습니다.

다음 단계

Autopilot에서 Standard Cluster로의 전환 시 구체적인 설정 방법 연구 및 적용.

  1. 1인프라 학습 시리즈 시작: Kubernetes, GKE, GitHub Actions, ArgoCD 연동 계획
  2. 2인프라 학습(2) – API 서버
  3. 3인프라 학습(3) – Kubernetes 실행
  4. 4인프라 학습(4-1) K8S를 GKE와 연결
  5. 5인프라 학습(4-3) 비용 최적화
  6. 6인프라 학습(4-4) 비용 최적화(2)
  7. 7인프라 학습(5) 내 프로젝트의 이미지
  8. 8인프라 학습(6) Git Actions읽는 중
  9. 9인프라 학습(7) ArgoCD

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다