728x90
본 포스팅은 Kubernetes Official Documents를 기반으로 한다. Owners and Dependents In Kubernetes, some objects are owners of other objects. For example, a ReplicaSet is the owner of a set of Pods. These owned objects are dependents of their owner. Ownership is different from the labels and selectors mechanism that some resources also use kubernetes.io # 소유자와 종속 항목 - Owners and Dependents 쿠버네티스에서, 일부 Object는 다..
# 목적 ALB가 존재하는 상황에서, Route53 및 인증서를 등록하여 HTTPS 구성하여 서비스를 위한 최소한의 보안 확보가 가능해진다. ALB가 존재하는 상황에서 Route53에서 구매한 도메인 및 인증서까지 발급받아 적용하는 과정을 공유한다. EKS 환경에서 ALB를 프로비저닝하는 방법은 아래 글에서 설명되어 있으므로 참고하면 된다. 굳이 AWS LB Controller를 통해 구성된 ALB가 없더라고 아래의 과정은 동일하다. EKS ALB 구성 및 노출 - K8s Ingress 및 AWS LB Controller 사용 # 목적 EKS 및 데이터플레인을 구성할 때 일반적으로 Private Subnets에 속하도록 구성한다. 이럴 경우, 사설 네트워크에 존재하는 파드들을 외부로 서비스하기 위해선 별..
# 목적 EKS 및 데이터플레인을 구성할 때 일반적으로 Private Subnets에 속하도록 구성한다. 이럴 경우, 사설 네트워크에 존재하는 파드들을 외부로 서비스하기 위해선 별도로 공인 IP를 할당받던지, NAT 혹은 LB 구성을 필수적으로 해야한다. 추가적으로, Nginx-Ingress-Controller 등으로, K8s Ingress를 통해 L7 로드밸런싱 구조를 사용하더라도 해당 구성을 별도로 수행해야하는데, AWS 환경에서 일일히 이러한 환경을 구성할 필요는 없다. AWS에서는 추가 플러그인으로 AWS LB Controller를 EKS 환경에서 사용할 수 있도록 제공하고 있고, 이를 사용하여 EKS 환경에서 K8s Ingress 객체를 통해 ALB 구성을 완성하는 방법을 공유한다. # 사용 환..
# 목적 웹서버와 API 서버에 대한 대상 그룹의 헬스체크를 ALB가 수행하는데, 헬스체크 요청에 대한 로그가 계속 쌓이게 되어서 사용자의 요청 로그를 추적하기 불편한 상황이 발생했다. 정상적인 운영 및 디버깅을 위해서 특정 엔드포인트로의 요청에 대한 로그를 제외시켜야했음. FastAPI와 Nginx에서 특정 엔드포인트에 대한 Health Check 용도의 엔드포인트에 대하여, 로그가 쌓이지 않도록 설정하는 방법을 공유한다. # 상태 확인 웹서버와 API 서버가 배포되어있는 환경과 라우팅 조건은 아래와 같았다. EKS 환경을 사용했고, Ingress를 통하여 L7 LB 구성을 수행했다. 해당 인그레스를 통하여 /* 경로로 접속하는 HTTP 요청은 웹서버로, /api/* 로 접속하는 요청은 API 서버로 ..
본 포스팅은 Kubernetes Official Documents를 기반으로 한다. 필드 셀렉터필드 셀렉터 는 한 개 이상의 리소스 필드 값에 따라 쿠버네티스 리소스를 선택하기 위해 사용된다. 필드 셀렉터 쿼리의 예시는 다음과 같다. metadata.name=my-service metadata.namespace!=default status.phase=Pekubernetes.io# Field Selector필드 셀렉터는 한 개 이상의 리소스 필드 값에 따라 쿠버네티스 리소스를 선택하기 위해 사용된다. 필드 셀력터 쿼리의 예시는 아래와 같다. metadata.name=my-servicemetadata.namespace!=defaultstatus.phase=Pending다음의 ..
본 포스팅은 Kubernetes Official Documents를 기반으로 한다. https://kubernetes.io/ko/docs/concepts/overview/working-with-objects/namespaces/ 네임스페이스 쿠버네티스에서, 네임스페이스 는 단일 클러스터 내에서의 리소스 그룹 격리 메커니즘을 제공한다. 리소스의 이름은 네임스페이스 내에서 유일해야 하며, 네임스페이스 간에서 유일할 필요는 kubernetes.io # Namespace 네임스페이스는 쿠버네티스에서 단일 클러스터 내에서의 리소스 그룹 격리 메커니즘을 제공한다. 리소스의 이름은 네임스페이스 안에서 유일해야 하지만, 네임스페이스 간에는 유일할 필요는 없다. 네임스페이스 기반 스코핑은 네임 스페이스 기반 오브젝트(예..
from fastapi import FastAPI app = FastAPI(docs_url='/api/docs', openapi_url='/api/openapi.json') 목적 프로젝트를 진행하면서, FastAPI를 EKS 위에서 배포하여 사용하는 서비스 환경을 설계하였다. API Server를 ALB(L7)와 Route53을 통해 /api prefix로 노출시키고 정상적으로 웹서버에서 통신이 가능하게 세팅이 된 후, FastAPI의 편리한 Swagger 기능을 통해 간단한 Web UI를 제공받고자 하였다. Swagger의 기본 URL은 /docs 및 /redoc 인데, 사용하는 도메인 주소에서 API 서버는 /api 를 차지한다. 그렇다 보니, /docs 를 입력하면 당연히 웹서버의 페이지로 라우팅되..
본 포스팅은 Kubernetes Official Documents를 기반으로 한다. https://kubernetes.io/ko/docs/concepts/overview/working-with-objects/names/ 오브젝트 이름과 ID 클러스터의 각 오브젝트는 해당 유형의 리소스에 대하여 고유한 이름 을 가지고 있다. 또한, 모든 쿠버네티스 오브젝트는 전체 클러스터에 걸쳐 고유한 UID 를 가지고 있다. 예를 들어, 이름이 mya kubernetes.io # 오브젝트 이름과 ID 클러스터의 각 오브젝트는 해당 유형의 리소스에 대하여 고유한 이름을 가지고 있다. 또한, 모든 쿠버네티스 오브젝트는 전체 클러스터에 걸쳐 고유한 UID를 갖고 있다. 예를 들어 이름이 `myapp-1234`인 파드는 동일한..
이 글은 노션의 대안이라고 여겨지는 Obsidian 노트 앱을 사용하게된 계기 및 실제로 사용해본 경험을 일부 공유하고자 한다. 옵시디언의 사용법에 대해서는 더 뛰어난 분들의 포스팅와 영상을 참고하면 좋을 것 같다. 1. 메모 습관의 시작 및 혁신 - 노션(Notion) 요즘 대학생이 아니라 잘 모르겠지만, 본인은 대학교 3학년때 쯤 노션을 알게되었고, 조금씩 기존의 공부 방법을 전환하여, 현재는 손으로 풀어봐야하는 상황들을 제외하곤 모든 것을 문서로 남기는 습관을 가지게 되었다. 사실 많은 환경의 사람들을 접해보지 않은 편이라 동년배분들이 어떻게 공부하는지는 모르지만, 노션은 개인 사용자의 경우 무료로 사용이 가능하기 때문에, 대부분의 대학생들은 필수적으로 노션을 사용할 것이라 생각한다. 노션의 장점은..