본문 바로가기

Container

[K8S] Kustomize Patches Kustomize의 patches 기능은 기존의 YAML 파일을 직접 수정하지 않고, 특정 리소스(Deployment, Service 등)의 일부 필드만 변경할 수 있도록 도와준다.✅ 환경별(Dev, Prod 등)로 일부 설정만 다르게 적용할 때 유용 ✅ 기본(Base) 리소스를 그대로 유지하면서 일부 값만 변경 가능 ✅ 수정된 최종 YAML을 kustomize build로 확인 가능 ✅ Remove, Replace, Add  가능 Json 6902 Patch   : https://datatracker.ietf.org/doc/html/rfc6902Inline 방식# Kustomizationpatches: - target: kind: Deployment name: api-deployme.. 더보기
[K8S] Kustomize Transformers Common Transformers  특정 리소스의 공통 속성을 자동으로 변경해 줌으로써 반복적인 설정을 최소화할 수 있다. 모든 속성은 어느 폴더에 속해있는 지에 따라 다르게 적용된다. commonLabels: 모든 쿠버네티스 리소스에 공통 라벨을 자동으로 추가해준다.  기존 라벨이 있으면 덮어쓰지 않고 추가됨.# kustomization.yamlapiVersion: kustomize.config.k8s.io/v1beta1kind: KustomizationcommonLabels: environment: dev team: backend # 변경 결과metadata: labels: environment: dev team: backendnamePrefix/Suffix : 모든 리소스의 .. 더보기
[K8S] Kustomize build kustomize build는 Kustomize 설정이 최종적으로 적용된 쿠버네티스 리소스(YAML)를 출력하는 명령어이다.즉, kustomization.yaml 파일과 patches, overlays 등을 반영하여 최종 결과물을 보여주는 역할을 한다.Kustomize를 적용한 최종 YAML을 미리 확인하고 싶을 때 사용.Helm처럼 템플릿 렌더링을 하지 않고, 순수한 YAML 결과를 출력.kubectl apply 하기 전에 배포될 리소스를 검토하는 용도 사용법# Build the current working directory$ kubectl kustomize$ kubectl kustomize $ kustomize build # 지정한 디렉터리의 kustomization.yaml을 읽고 최종 적용될 YA.. 더보기
[K8S]Kustomize Kustomize는 Yaml 파일을 직접 수정하지 않고도 쿠버네티스 리소스를 커스터마이징할 수 있도록 도와주는 도구이다.기본(Base) 구성과 환경별(Overlay) 구성을 나누어 관리하며, 이를 통해 개발, 스테이징, 운영 환경에 맞게 쉽게 조정할 수 있다. 기본적으로 kubectl에 내장되어 있어서, 추가 설치 없이 사용할 수 있다.  Helm 같은 템플릿 엔진 없이, 패치를 적용하는 방식으로 리소스를 관리 기존의 YAML 파일을 수정하지 않고, 오버레이(overlays)를 추가하여 리소스를 변경할 수 있음 CopnfigMap, Secret, Labels, Patches 적용이 가능하여 유지보수가 편리함 📂 디렉토리 구조Base 폴더: 모든 애플리케이션의 기본 배포 구성Overlays 폴더: 환경별.. 더보기
[K8S] Upgrading a helm chart - kodekloud 실습 1. Add bitnami helm chart repository to the cluster. # Helm 설치 확인$ helm versionversion.BuildInfo{Version:"v3.17.1", GitCommit:"980d8ac1939e39138101364400756af2bdee1da5", GitTreeState:"clean", GoVersion:"go1.23.5"}# Bitnami chart repo 추가$ helm repo add bitnami https://charts.bitnami.com/bitnami"bitnami" has been added to your repositories# 저장소 업데이트$ helm repo updateHang tight while we grab the la.. 더보기
[K8S] Lifecycle management with Helm 릴리즈는 모두 동일한 차트를 기반으로 하더라도 독립적으로 관리될 수 있다.오브젝트 트래킹: Helm은 각 릴리스에 속한 Kubernetes 오브젝트(예: Deployment, Service, ConfigMap 등)를 추적한다. 이 추적 기능 덕분에, 특정 릴리스에 속한 오브젝트만을 대상으로 업그레이드, 다운그레이드, 제거 같은 작업을 수행할 수 있다.격리된 작업: Helm은 특정 릴리스와 관련된 오브젝트만 변경하므로, 다른 릴리스에 속한 오브젝트에 영향을 주지 않는다. 이는 여러 애플리케이션이 같은 클러스터에서 독립적으로 관리될 수 있음을 의미한다.$ helm install nginx-release bitnami/nginx --version 19.0.0Pulled: us-central1-docker.p.. 더보기
[K8S] Helm Helm은 쿠버네티스에서 애플리케이션을 정의하고, 설치하고, 관리하기 위한 패키지 매니저이다. Helm 차트는 쿠버네티스 애플리케이션의 패키지를 정의하는 템플릿으로, YAML파일로 구성된다. application, tool, service를 돌리기 위해 필요한 모든 resource definition을 포함한다. Helm은 쿠버네티스 리소스를 동적으로 생성할 수 있도록 템플릿 기능을 제공한다.$ helm --help The Kubernetes package managerCommon actions for Helm:- helm search: search for charts- helm pull: download a chart to .. 더보기
[K8S] Troubleshoot Network 예제 certified-kubernetes-administrator-with-practice-tests 304강 실습 1] CNI - /etc/cni/net.d/root@controlplane ~ ➜ kubectl get podsNAME READY STATUS RESTARTS AGEmysql 0/1 ContainerCreating 0 39swebapp-mysql-d89894b4b-l86gz 0/1 ContainerCreating 0 39sroot@controlplane ~ ➜ kubectl describe pod mysql Nam.. 더보기