안녕하세요.
|
개발자 최민석입니다.

thumbnail
Devops
K8S
March 25, 2025
Ingress 리소스(쿠버네티스 스터디 4주차)

Chap 9. Ingress 리소스 Ingress란? Ingress는 HTTP, HTTPS 등 네트워크 Layer 7에 대한 설정을 담당하는 리소스이다. Ingress의 가장 기본적인 역할은 외부 HTTP 호출에 대한 트래픽을 처리한다. 이를테면, 부하 분산, TLS 종료, 도메인 기반 라우팅 기능 등을 제공한다. Ingress는 쿠버네티스 내부 서비스에 외부 접근 가능한 URL을 부여함으로써 일반 사용자들이 쉽게 접근할 수 있는 통로를 제공한다. Ingress에는 그에 맞는 Ingress Controller가 존재하며, Ingress Controller는 Ingress에 정의된 트래픽 라우팅 규칙을 보고 라우팅을 수행한다. Ingress Controller란? Ingress 리소스 자체로는 어떠한 프로그램이 작동하는 코드가 아니라 트래픽 처리에 대한 정보를 담고 있는 정의(또는 규칙)에 가깝다. 실제로 Ingress의 규칙을 읽고 외부 트래픽을 Service로 라우팅하는 주체…

Devops
K8S
March 24, 2025
Helm 패키지 매니저(쿠버네티스 스터디 4주차)

Chap 8. Helm 패키지 매니저 Helm이란? helm은 쿠버네티스 패키지 매니저이다. , , 툴과 비슷하다고 생각하면 된다. helm 차트의 구조는 크게 values.yaml과 templates/ 디렉터리로 구성된다. : 사용자가 원하는 값들을 설정하는 파일 : 설치할 리소스 파일들이 존재하는 디렉터리로, 해당 디렉터리 안에는 , 등과 같은 쿠버네티스 리소스가 Yaml 파일 형태로 들어있다. 각 파일들의 설정값은 비워져있고(placehoolder) values.yaml의 설정값들로 채워진다. 패키지가 설치될 시점에 파일의 설정값들을 이용하여 templates 디렉터리에 들어있는 Yaml 파일의 구멍난 부분(placeholder)을 채운다. 파일에는 자주 바뀌거나 사용자마다 달라지는 설정값들을 입력하는 용도로 사용하고 디렉터리는 패키지의 뼈대를 이룬다. helm을 잘 활용하면 다른 사람이 만든 애플리케이션도 손쉽게 나의 쿠버네티스 클러스터로 가져올 수 있게 된다, 도커…

Devops
K8S
March 18, 2025
쿠버네티스 컨트롤러(쿠버네티스 스터디 3주차)

Chap 7. 쿠버네티스 컨트롤러 컨트롤러란? 쿠버네티스에는 컨트롤러라는 컴포넌트가 있다. 컨트롤러는 특정 리소스를 지속적으로 관찰하며 리소스의 생며웆기에 따라 미리 정해진 작업을 수행하는 주체를 말한다. 이에 대해 정확히 알려면 쿠버네티스의 와 에 대해 살펴봐야 한다. 쿠버네티스 클러스터는 현재 클러스터 상태를 관찰하며 사용자가 원하는 상태와 동일해지도록 정해진 작업을 수행한다. 쿠버네티스 컨트롤러는 라는 루프를 지속적으로 돌면서 특정 리소스에 대해 관찰하고, 사용자의 요청에 따라 를 업데이트 한다. 컨트롤러는 그것을 인지하고 가 와 동일해지도록 조정한다. ReplicaSet ReplicaSet 리소스는 Pod을 복제한다. Pod을 복제하면 1개의 Pod에 문제가 생기더라도 다른 Pod을 이용하여 가용성을 보장할 수 있다. replicas: 복제한 Pod의 개수를 정의한다. selector.matchLabels: Service와 마찬가지로 복제 개수를 유지할 Pod을 선택한다.…

Devops
K8S
March 15, 2025
쿠버네티스 네트워킹(쿠버네티스 스터디 3주차)

Chap 6. 쿠버네티스 네트워킹 Service 쿠버네티스에는 Pod 자체에도 IP가 부여된다. curl 명령을 통해 Pod IP로 호출을 하면 정상적으로 결과를 반환한다. 그렇다면 왜 Service라는 리소스가 필요한걸까? 위와 같이 Pod의 IP로 바로 연결이 가능한데도 말이다. 불안정한 Pod vs. 안정적인 Service 쿠버네티스에서는 Pod 리소스를 불안정한 자원으로 여긴다. Pod는 필요한 경우 쉽게 생성하였다가 사용이 끝나면 쉽게 삭제될 수 있는 만큼, Pod에 할당된 IP는 불안정한 엔드포인트로 간주된다. 이 때문에, 사용자가 Pod의 엔드포인트를 통해 애플리케이션과 소통을 시도한다면, Pod가 변경되거나 내려가거나 새로 생성될때마다 사용자는 바뀐 IP를 추적해야만 할 것이다. 이 문제를 해결하고자 Pod의 생명주기와 관계없이 안정적인 엔드포인트를 제공하는 Service라는 리소스가 등장하게 되었다. Service는 Pod의 앞단에 위치하며 Service로 들…