본문 바로가기

Kubernetes22

[Kubernetes] 쿠버네티스의 컴퓨터 자원(CPU/Memory) 관리 및 제한 - 1 쿠버네티스는 Namespace와 Cgroup을 통해 컨테이너의 격리된 환경을 구축하고 배포한다. 컨테이너를 생성할 때, 컴퓨터 자원의 할당의 제한이 선언되면 쿠버네티스의 Scheduler는 컨테이너가 생성되기에 알맞은 노드(컴퓨터 자원이 충족되는)를 선택한다. ※ 컨테이너는 CPU, Memory, Disk(FileSystem)와 네트워크, 프로세스 ID, GPU 등의 컴퓨터 리소스를 소비할 수 있다. 과거에는 쿠버네티스에서 Cgroups v1을 기반으로 컴퓨터 자원을 격리했는데, 쿠버네티스 1.22 버전을 시작으로 Cgroups v2를 이용하여 더 효율적으로 컴퓨터 자원에 대한 관리를 할 수 있게 되었다. https://kubernetes.io/blog/2021/11/26/qos-memory-resour.. 2024. 2. 5.
[Fluent-Bit] Too many open files 사내 프로젝트로 Fluent-Bit을 K8S환경 내 Side-car방식으로 Elasticsearch에 로그 적재를 할 때, 발생했던 문제에 관하여 다루는 자료이다. 개요 : 프로젝트 내 Microservice의 개수만큼 Deployment를 생성했었는데, 해당 Deployment에는 하나의 애플리케이션 서버 컨테이너와, 해당 애플리케이션 로그를 수집하는 Fluent-Bit 컨테이너(총 2개의 컨테이너)가 하나의 파드 안에 배포되는 형식으로 생성하였다. Fluent-Bit : https://docs.fluentbit.io/manual/about/what-is-fluent-bit What is Fluent Bit? - Fluent Bit: Official Manual Rather than serving as.. 2023. 11. 30.
[Kubernetes] calico-node PodInitializing 대기 현상 해결 쿠버네티스 클러스터 환경에서 모든 노드의 서버를 재시작하면서 발생한 현상이다. calico-node의 daemonset의 Init-Container가 실행되지 않고, 해당 컨테이너가 실행되는 것을 무한 대기하는 현상이 발생한 것이다. 위와 같은 현상을 겪은 Github Issue도 찾아서 확인하였고, iptables에 관하여 언급한 사람이 있어서 초기에 쿠버네티스 설정했던 네트워크 설정이 초기화가 된 것으로 추측하였다. https://github.com/projectcalico/calico/issues/6256 Kubernetes cluster fails bringing up calico node · Issue #6256 · projectcalico/calico Our kubernetes clusters.. 2023. 11. 6.
[Kubernetes] Secrets 암호화 쿠버네티스 환경에서 주로 yaml 파일의 선언형 자료를 이용하여 어플리케이션 단위를 관리하는데, 그 선언형 자료에서 공통적인 상수 값들은 주로 Configmap을 이용하고, 일반적으로 공개되지 않아야하는 값들은 Secret을 통하여 값을 배정하게 된다. 하지만 여기서 큰 문제가 발생한다. 쿠버네티스 클러스터에서 기본적으로 Secret 값은 암호화되지 않고 그저 Base64로 인코딩되어 저장된다는 것이다. https://kubernetes.io/ko/docs/concepts/configuration/secret/ 시크릿(Secret) 시크릿은 암호, 토큰 또는 키와 같은 소량의 중요한 데이터를 포함하는 오브젝트이다. 이를 사용하지 않으면 중요한 정보가 파드 명세나 컨테이너 이미지에 포함될 수 있다. 시크릿.. 2023. 9. 26.
[Kubernetes] Ubuntu 환경에서 K9S 설치 1. K9S K9S란, Kubernetes 클러스터와 편리하게 상호 작용하기 위한 터미널 기반의 UI를 제공하는 Golang 기반의 오픈소스 프로젝트다. 이는, 탐색과 관찰 및 관리에 용이하다는 장점을 가지고 있고, 지속적으로 Kubernetes의 변경 사항을 감시하고 관찰된 리소스와 상호 작용하기 위한 후속 명령이 가능하여 편리함을 제공한다. https://k9scli.io/ K9s - Manage Your Kubernetes Clusters In Style Who Let The Pods Out? K9s is a terminal based UI to interact with your Kubernetes clusters. The aim of this project is to make it easier t.. 2023. 9. 7.
[Kubernetes] 쿠버네티스 노드(Node) 및 파드(Pod) 사용 중 컴퓨터 자원(Resource) 확인 쿠버네티스 클러스터 환경을 이용할 때 노드 또는 파드에서 사용하고 있는 컴퓨터 자원을 관리적 차원에서 확인하고 싶을 때가 있을 것이다. 서버(노드) 단위로의 컴퓨터 자원을 사용하고 있는 총량은 리눅스 등의 명령어로 확인할 수 있는데, 쿠버네티스의 클러스터 내부 세부적인 환경의 컴퓨터 자원 사용량은 별도의 플러그인을 설치하여 확인할 수 있다. 플러그인에 대한 설명은 아래 쿠버네티스 공식 Docs를 통하여 알아볼 수 있다. https://kubernetes.io/docs/tasks/debug/debug-cluster/resource-metrics-pipeline/ Resource metrics pipeline For Kubernetes, the Metrics API offers a basic set of m.. 2023. 8. 30.