1. 소스 프로젝트에서 VM 디스크의 스냅샷 생성 gcloud compute snapshots create gowid-dev-jenkins \\ --source-disk gowid-dev-jenkins-app-1 \\ --source-disk-zone asia-northeast3-c SNAPSHOT_NAME: 스냅샷의 이름 SOURCE_DISK: 스냅샷을 만들려는 영구 디스크의 이름 SOURCE_DISK_ZONE: 스냅샷을 만들려는 영구 디스크의 영역 2. 스냅샷에서 커스텀이미지 생성 gcloud compute images create gowid-dev-jenkins \\ --source-snapshot=gowid-dev-jenkins \\ [--storage-location=asia-northeast3..
1. 문제 HTTP에서 HTTPS로 리다이렉션 설정이 되지 않아 HTTP로 연결이 가능함 2. 해결방법 GKE에 FrontendConfig 리소스 추가 apiVersion: networking.gke.io/v1beta1 kind: FrontendConfig metadata: name: http-to-https spec: redirectToHttps: enabled: true GKE ingress에 annotations 추가 networking.gke.io/v1beta1.FrontendConfig: http-to-https apiVersion: "networking.k8s.io/v1" kind: "Ingress" metadata: name: ingress namespace: "default" annotat..
구성 : GKE(→IP Masquerading) → CloudVPN → On-prem DB GKE에서 VPC 외부로 나가는 트래픽은 CloudNAT로 처리 가능하지만 On premise(IDC) 데이터베이스와의 연결은 보안을 고려해 내부 VPN을 통하도록 설정한다. GKE의 Egress traffic이 CloudVPN을 통해 전달되기 위해서는 IP 마스커레이딩을 설정하는 방법이 있다.(링크) 마스커레이딩을 설정하면 트래픽의 소스 IP 주소가 파드에서 노드의 IP로 변경된다. 따라서 VPC 내부 리소스 (CloudVPN 포함)에 연결이 가능해지는 것이다. 내부 로직에서는 Linux의 iptables를 이용해 설정이 된다고 한다. IP Masquerading은 standard mode와 autopilot에서..
소개 GKE에서 운영되는 workload가 다른 GCP 서비스(빅쿼리, GCS 등)에 접근해야 할 경우 service account로 인증이 필요하다. 하지만 GKE의 워커 노드에 credential 파일을 올린다던지 컨테이너 안에 credential 파일을 넣는 것은 보안상 취약하다. Google에서 권장하는 방식인 workload identity를 이용해 credential 파일 없이 Service Account로 인증하는 환경을 구성한다. 적용방법 Enable Workload Identity on cluster (autopilot 클러스터는 디폴트로 enabled) IAM service account 생성 (기 생성된 sa 이용, 이하 GSA라 부름) GSA에 빅쿼리 접근에 필요한 role 부여 C..
부팅 디스크 추가하기 Compute Engine - Disks 변경할 디스크명 선택 EDIT 원하는 용량 입력, 저장 서버 리부팅 OS Login 설정 개념 : 인스턴스 별 SSH 키를 생성하고 관리할 필요 없이 gcloud로 IAM 계정에 인증이 되어 있으면 서버에 로그인 가능한 방법. 별도의 설정이 없으면 iam계정_도메인명_SUFFIX 으로 VM에 계정이 생성되기 때문에 일관된 리눅스 계정으로 모든 서버에서 관리 할 수 있다. 구글에서 권장하는 방식 이점 : 모든 인스턴스에서 동일한 리눅스 계정 정보가 사용되서 관리가 편하고 IAM으로 sudo 등 세부 권한을 제어 할 수 있어 권한 관리가 용이해진다. IAM 권한을 삭제하면 VM 에 대한 액세스 권한 역시 취소 되므로 변경 내용이 항상 최신으로 유..
1. Shared VPC 같은 Organization 하위의 프로젝트 간에 VPC를 공유함으로써 Private IP로 통신할 수 있게 하여 보다 안전하게 네트워크를 구성할 수 있다. Host 프로젝트에 Service 프로젝트를 여러개 붙이고 해제할 수 있으며 전체 서브넷이나 특정 서브넷을 공유하도록 설정할 수 있다. 2. 설정 Shared VPC 페이지에서 설정 가능하다. 설정을 위해서는 Organization의 Compute Shared VPC Admin Role을 먼저 부여해야 한다. 연결할 Service 프로젝트에는 Compute Engine과 GKE를 쓸 경우 Kubernetes Engine API를 Enable 해야 설정이 진행될 수 있다. 3. Shared VPC 에서 GKE를 생성할 경우 먼..