전체 글
-
[GCP] GKE 인그레스와 cloud Load balancingAWS & GCP 2025. 3. 31. 23:39
GKE에서 인그레스를 세팅하고 배포하면 자동으로 cloud load balancing 서비스를 전개합니다. 여기서 ingress나 service에 어노테이션을 추가하여 cloud load balancing 서비스의 옵션을 설정하거나 정상 실행을 하려면 꼭 있어야 하는 옵션에 대해 설명합니다.설정다음과 같이 values, service, ingress가 세팅이 되어있고 배포를 했다고 가정합니다.# Default values for mario.# This is a YAML-formatted file.# Declare variables to be passed into your templates.replicaCount: 2resources: limits: cpu: 1000m memory: 4G..
-
[GCP] GKE에서 인바운드를 허용하도록 구성하기AWS & GCP 2025. 3. 30. 19:42
개요일반적으로 클러스터를 private으로 구성한 다음, 외부에서 트래픽을 허용하도록 서비스를 구성합니다. 이 때, 외부에서 어떻게 내부로 트래픽을 허용할 수 있는지를 설명합니다.NodePort는 주로 클러스터 내부적인 테스트나 디버깅 목적으로 사용되며 Private 클러스터에서 직접적인 외부 접근을 허용하는 데는 적합하지 않습니다. 여기선 service 타입을 ClusterIP + ingress 와 service 타입을 loadbalancer로 설정하는 두 가지에 대해 설명합니다.service 타입 ClusterIP + ingress 로 구성GKE에서 외부 클라이언트에게 대시보드를 제공하는 서비스를 구성하기 위해서는 Service, Ingress, 그리고 GCP의 부하분산 서비스를 설정해야 합니다. 이..
-
[GCP] GKE 설명 및 생성해보기카테고리 없음 2025. 3. 30. 18:30
GKE 모드 설명gke는 autopilot 모드와 standard 모드가 있습니다.autopilot 모드는 Google이 클러스터 인프라를 자동으로 관리해주는 완전 관리형 모드로 노드 관리가 필요 없고, 워크로드에만 집중 가능하며 사용한 리소스만큼 비용을 지불하면 됩니다.GKE Autopilot과 Standard를 비교 요약하면 다음과 같습니다.항목Autopilot 모드Standard 모드운영 부담✅ Google이 자동 관리❌ 직접 관리 필요노드 관리❌ 불가능 (Google이 자동 운영)✅ 가능 (사용자가 설정)리소스 과금 방식Pod 단위 과금 (최적화됨)VM 단위 과금 (비효율적일 수 있음)확장성✅ 자동 확장 최적화⚠️ 직접 관리 필요보안 관리✅ 자동 보안 패치⚠️ 수동 패치 필요커스텀 설정❌ 제한됨✅..
-
[GCP] vpc, subnet, 방화벽 설명 및 생성해보기AWS & GCP 2025. 3. 30. 15:01
VPCVPC 네트워크 예시Subnet1은 us-west1 리전에서 10.240.0.0/24로 정의됩니다.us-west1-a 영역의 두 개 VM 인스턴스가 이 서브넷에 있습니다. 두 개의 IP 주소는 모두 subnet1의 가용 주소 범위에 속합니다.Subnet2는 us-east1 리전에서 192.168.1.0/24로 정의됩니다.us-east1-b 영역의 두 개 VM 인스턴스가 이 서브넷에 있습니다. 두 개의 IP 주소는 모두 subnet2의 가용 주소 범위에 속합니다.Subnet3도 us-east1 리전에서 10.2.0.0/16으로 정의됩니다.us-east1-b 영역의 VM 인스턴스 하나와 us-east1-c 영역의 두 번째 인스턴스는 각각 subnet3에 있으며 사용 가능한 범위에서 IP 주소를 수신합니..
-
[Helm] 가이드 - NOTES.txt공부/쿠버네티스&헬름 2025. 3. 15. 21:33
helm install 또는 helm upgrade가 완료되면 Helm은 사용자에게 유용한 정보 블록을 출력할 수 있습니다. 이 정보는 템플릿을 사용하여 매우 사용자 정의가 가능합니다.차트에 설치 노트를 추가하려면 templates/NOTES.txt 파일을 생성하기만 하면 됩니다. 이 파일은 일반 텍스트이지만 템플릿처럼 처리되며 모든 일반적인 템플릿 함수와 객체를 사용할 수 있습니다.아래는 간단한 NOTES.txt 파일입니다.Thank you for installing {{ .Chart.Name }}.Your release is named {{ .Release.Name }}.To learn more about the release, try: $ helm status {{ .Release.Name }} ..
-
[Helm] 가이드 - 템플릿공부/쿠버네티스&헬름 2025. 3. 15. 21:31
named template(때로는 partial 또는 subtemplate이라고도 함)은 단순히 파일 내부에 정의되고 이름이 부여된 템플릿입니다. 이를 생성하는 두 가지 방법과 사용하는 몇 가지 다른 방법을 살펴볼 것입니다.템플릿 이름을 지정할 때 중요한 세부 정보는 템플릿 이름은 전역적이라는 것입니다. 동일한 이름으로 두 개의 템플릿을 선언하면 마지막에 로드된 템플릿이 사용됩니다. 서브차트의 템플릿은 최상위 레벨 템플릿과 함께 컴파일되므로, 템플릿 이름을 차트별 고유한 이름으로 지정하는 데 주의해야 합니다.일반적인 명명 규칙 중 하나는 정의된 각 템플릿에 차트 이름을 접두사로 붙이는 것입니다. 예를 들어 {{ define "mychart.labels" }}와 같이 사용합니다. 특정 차트 이름을 접두사로..
-
[Helm] 가이드 - values(변수)공부/쿠버네티스&헬름 2025. 3. 15. 20:56
변수템플릿에서는 튜플이 자주 사용되지는 않지만 튜플을 사용하여 코드를 단순화하고 with와 range를 더 효과적으로 사용하는 방법을 살펴보겠습니다. {{- with .Values.favorite }} drink: {{ .drink | default "tea" | quote }} food: {{ .food | upper | quote }} release: {{ .Release.Name }} {{- end }}Release.Name은 with 블록에서 제한된 스코프 내에 있지 않습니다. 스코프 문제를 해결하는 한 가지 방법은 현재 스코프에 관계없이 접근할 수 있는 변수에 객체를 할당하는 것입니다.Helm 템플릿에서 변수는 다른 객체에 대한 명명된 참조입니다. $name 형태를 따릅니다. 변수는 특..
-
[Helm] 가이드 - Flow Control공부/쿠버네티스&헬름 2025. 3. 15. 20:33
Helm 템플릿에서 Flow Control은 템플릿이 어떻게 렌더링될지 제어하는 데 사용되는 구문 구조를 의미합니다. 이를 통해 조건부 로직, 반복문 등을 템플릿 내에 구현하여 유연하고 동적인 매니페스트 생성을 가능하게 합니다. Helm의 Flow Control은 Go 템플릿 언어를 기반으로 하며, 특정 액션(Actions)을 사용하여 정의됩니다.if/else조건문의 기본 구조는 다음과 같습니다.{{ if PIPELINE }} # Do something{{ else if OTHER PIPELINE }} # Do something else{{ else }} # Default case{{ end }}파이프라인을 사용하면 조건문과 비슷한 표현을 할 수 있습니다. 파이프라인은 다음의 경우 false로 평가..
-
[Helm] 가이드 - Functions와 Pipelines공부/쿠버네티스&헬름 2025. 3. 9. 20:57
.Values 객체에서 문자열을 템플릿에 삽입할 때 이러한 문자열을 따옴표로 묶어야 합니다. 템플릿 지시문에서 quote 함수를 호출하여 이를 수행할 수 있습니다.apiVersion: v1kind: ConfigMapmetadata: name: {{ .Release.Name }}-configmapdata: myvalue: "Hello World" drink: {{ quote .Values.favorite.drink }} food: "{{ quote .Values.favorite.food }}" water: "{{ .Values.favorite.water }}"위와 같이 진행한다면 “drink” , “food”, water 와 같이 출력됩니다.파이프라인템플릿 언어의 강력한 기능 중 하나는 파이프라인..
-
[Helm] 가이드 - Built-in 객체공부/쿠버네티스&헬름 2025. 3. 9. 20:41
템플릿 엔진은 객체를 템플릿으로 전달합니다. 그리고 코드는 객체를 주고받을 수 있습니다(with와 range 문을 살펴볼 때 예시를 볼 수 있습니다). 나중에 보게 될 tuple 함수와 같이 템플릿 내에서 새 객체를 생성하는 몇 가지 방법도 있습니다.객체는 단순하여 하나의 값만 가질 수 있습니다. 또는 다른 객체나 함수를 포함할 수도 있습니다. 예를 들어, Release 객체는 여러 객체(예: Release.Name)를 포함하고 Files 객체는 몇 가지 함수를 가지고 있습니다.이전 섹션에서 {{ .Release.Name }}을 사용하여 릴리스 이름을 템플릿에 삽입했습니다. Release는 템플릿에서 액세스할 수 있는 최상위 객체 중 하나입니다.Release: 릴리스 자체를 설명하는 객체Release.N..