728x90 [DevOps]45 Linux에서 CPU 과부하를 일으키는 의문의 프로세스 추적하기(Docker 공식 이미지 내 멀웨어, kdevtmpfsi) 몇 주 전부터 테스트 서버에 설정해 놓은 CPU 사용량 알람이 불규칙하게 발생했다.이 알람은 CPU 사용량이 5분간 90% 이상일 때만 전송되도록 설정한 것이었는데 사용량이 아예 없는 새벽에도 뜬금없이 메일이 오기도 했다.최근에 잦아진 느낌이 들어 리눅스 명령어를 통해 원인을 파악해 보았다. 🛠️ top 명령어 실행$ top# 출력문 PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND .. 2025. 2. 16. Kubernetes ImageGCFailed, FreeDiskSpaceFailed 원인 생각 해보기(쿠버네티스 가비지 컬렉션) 🚨 Error # 출력...Conditions: Type Status LastHeartbeatTime LastTransitionTime Reason Message ---- ------ ----------------- ------------------ ------ ------- NetworkUnavailable False Mon, 06 Jan 2025 11:16:31 +0000 Mon, 06 Jan 2025 11:16:31 +0000 Fl.. 2025. 1. 24. kubernetes node : kubelet has disk pressure 해결 방법 총정리(pod status evicted, Attempting to reclaim ephemeral-storage) 지난 글에서 워커 노드의 디스크 가용량이 부족하여 해당 노드에 Pod를 스케줄링할 수 없는 문제에 대한 이슈를 정리했다. 현재 사내에서 사용 중인 쿠버네티스는 클라우드 내에서 작동 중이며 디스크 용량 부족 이슈는 이미 해결되었다.이와는 별개로 기존에 사용하던 On-premises 서버에서는 지속적으로 Pod가 Evicted 되는 문제가 발생하고 있었다.Evicted 되었다는 얘기는 파드가 노드로부터 축출되었다는 뜻이다.drain 명령어로 고의적으로 축출하지 않는 이상 무언가 문제가 생겨 자동으로 축출된 것이다.결론부터 이야기하면 이것 역시 디스크 용량 문제였다.해당 서버의 쿠버네티스는 클라우드로 마이그레이션이 완료되어 더 이상 사용되지 않지만 추후에 급하게 사용할 일이 있을 때를 대비하여 문제를 해결해놓.. 2025. 1. 17. 😡 1 node(s) had untolerated taint(node.kubernetes.io/disk-pressure:)의 원인 파악과 해결 🚨 Error : 🚨 Pod를 여러 개 띄우고 테스트하는 도중에 새 Pod를 생성하자 Pending 상태가 지속되다가 한참 지나서 Running으로 변경되는 상황이 발생했다.Pod에 문제가 발생하여 Running 상태가 되지 못하면 아래 명령어로 Pod의 Event를 확인할 수 있다. $ kubectl describe po # 출력...Warning FailedScheduling 6m21s default-scheduler 0/2 nodes are available: 1 node(s) had untolerated taint {node-role.kubernetes.io/control-plane: }, 1 node(s) had untolerated taint {node.kubernetes.io/di.. 2025. 1. 15. Docker image -> Containerd image로 변환하는 방법 📌 Kubernetes에서 컨테이너 런타임으로 도커를 더 이상 지원하지 않기 때문에 Containerd의 이미지를 사용해야 했다.그러나, Containerd에서는 이미지를 직접 빌드하는 기능이 없다. 따라서 다른 방법을 사용해야 하는데 pod가 사용할 이미지의 출처로 docker private registry를 사용하는 방법이 있다.나는 보다 간단한 테스트를 위해 Docker의 이미지를 Containerd 이미지로 변환하여 사용했다.🥸참고로 마스터노드가 아닌 워커노드에서 수행해야 한다. Pod가 실행되는 노드가 워커노드이기 때문이다.(이미지 참조 시 워커 노드 내 containerd 이미지를 사용하도록 함.)또한, pod를 생성할 yaml 파일 내 직접 만든 이미지를 사용할 것이므로 imagePul.. 2025. 1. 7. 외부에서 HTTP로 Kubernetes API 요청하기(1.24v 이상) 외부 서버에서 실행 중인 쿠버네티스 Pod에게 요청을 보내기 위해서는 Service 리소스를 이용해야 한다. Service 리소스는 외부의 요청을 노드 내부에서 실행 중인 Pod의 포트와 매핑해 주는 역할을 한다. 따라서 쿠버네티스 클러스터 내부에서 Pod로 띄워진 웹페이지나 백엔드 서버 등은 Service 리소스를 통해 외부와 통신할 수 있다. 외부 서버와 파드 간의 통신, 내부의 파드 간의 통신, kubectl 명령어로 사용자의 리소스 컨트롤을 도와주는 건 도대체 무엇일까? 바로 Kubernetes API이다. 리소스를 제어하는 모든 작업의 중심에는 Kubernetes API 서버가 있다. API 서버는 클러스터의 모든 상태와 설정을 관리하며, 이를 기반으로 사용자는 클러스터의 상태를 조회하고, .. 2024. 12. 30. 쿠버네티스 설치 및 노드 연결 완벽 정리 (Oracle Linux or Ubuntu, containerd, flannel) 🤓 테스트 환경Kubernetes : 1.32vMaster Node : Oracle linux 8.8Worker Node : Ubuntu 20.04.6 LTS 🥸 구성작업 순서대로 설명합니다.각 작업에서 상세 설명 및 주의 사항을 함께 전달합니다.그대로 따라 하시면 큰 어려움 없이 설치 및 연결할 수 있도록 구성하였습니다.🫡 실습 전 이해하기0. 쿠버네티스를 설치하기 위해서는 최소 두 대의 서버가 필요합니다.1. 실습 전 각 서버의 기본적인 운영체제에 대한 정보 확인이 필요합니다.2. 컨테이너 런타임을 설치해야합니다.3. kubeadm, kubelet, kubectl과 같은 쿠버네티스 클러스터 관리 도구를 설치해야 합니다.kubeadm은 쿠버네티스를 설치하고 관리하는 도구입니다.kubelet은 각 .. 2024. 12. 19. CKA 기출 문제 복기 및 접근법 정리[24.11.24 응시] 🥸 들어가기 전에모든 문제를 완벽히 복기할 수 없으므로 대략적인 내용을 정리합니다.아마 문제를 읽고 대략적으로 어떻게 접근하면 풀 수 있겠다 싶으면 풀 수 있는 겁니다.시험 정책이 크게 바뀌지 않는 한 어렵게 꼬아버리는 문제는 없는 것 같습니다.문제 풀 당시 저의 접근법도 함께 정리해 두었으니 참고하면 좋을 것 같습니다.(올바른 방법이 아닐 수 있습니다.)문제 순서와는 관계 없으며 기억에 남은 문제만 정리하였습니다.17문제 중에 절반 정도는 kodekloud의 문제를 다 풀 수 있다면 쉽다고 느낄 수준의 문제입니다. 1. Ingress 만들기1. ping이라는 ingress를 만드는데 namespace는 Ing-intenal이며/hello 엔드포인트로 요청이 들어오면 hello 서비스 5678 포트로 .. 2024. 11. 27. 이전 1 2 3 4 ··· 6 다음 728x90