Ops/Kubernetes 28

Host DNS 설정 변경 시, CoreDNS 파드 재시작 필요

GPU Operator로 Nvidia Driver 파드를 띄우는 과정에서 DNS 관련 resolving 에러가 발생하였다. W: Failed to fetch http://archive.ubuntu.com/ubuntu/dists/jammy/InRelease Temporary failure resolving 'archive.ubuntu.com'W: Failed to fetch http://archive.ubuntu.com/ubuntu/dists/jammy-updates/InRelease Temporary failure resolving 'archive.ubuntu.com'W: Failed to fetch http://archive.ubuntu.com/ubuntu/dists/jammy-security/I..

Ops/Kubernetes 2025.05.07

[이슈] 노드 재부팅 후 K8S 클러스터가 동작하지 않은 현상 ( swap off )

현상K8S 클러스터를 구축한 노드를 재부팅 하였더니, kubectl 명령이 동작하지 않은 현상이 발생 원인journalctl로 kubelet 로그를 확인한 결과, kubelet이 swap이 켜져 있어 동작하지 못한다는 로그를 뱉고 있었음. 해결클러스터 구축 당시, swap 기능을 off 했지만, /etc/fstab 에 swap 관련 줄을 주석처리 하지 않아, 재부팅 후 swap 기능이 다시 on되어 발생한 현상.

Ops/Kubernetes 2025.05.07

[이슈] BIRD is not ready: BGP not established 이슈

이슈K8S 클러스터의 노드 하나가 BGP 커넥션 형성 실패 ( BIRD is not ready: BGP not established ) 설명CNI로 Calico를 사용중이다. Calico는 클러스터의 각 노드에 가상라우터를 생성하고 BGP 방식으로 각 노드의 파드 서브넷을 광고하고 서로의 라우팅 테이블을 학습한다. 그러므로 BGP 커넥션이 형성이 중요한데 형성되지 못하는 이슈가 발생하였다. Calico Node 파드 로그 Warning Unhealthy 16m (x2 over 17m) kubelet Readiness probe failed: calico/node is not ready: BIRD is not ready: Error querying BIRD: unable to..

Ops/Kubernetes 2025.05.07

[K8S] Kubernetes 동작원리

Docker는 컨테이너 기술의 혁명을 가져왔다.   [Docker] 컨테이너란 무엇일까?Docker 아이콘은 고래 하나가 여러 개의 컨테이너를 싣고 있는 모습이다. 여기서, 고래는 '컴퓨터'이고 컨테이너는 '격리된 프로세스'이다. 도커가 혁명적인 이유는 컨테이너라는 환경분리를 리눅lordofkangs.tistory.com  리눅스 기술( cgroups, namespace)을 활용하여 리소스를 독립적으로 격리하고 할당이 가능해지자, 컨테이너(Container)라는 개념이 등장하였다. 하나의 컴퓨터 안의 여러 개의 컨테이너가 만들어졌고 모두 독립적으로 활동하였다. 이렇게 되자, 수많은 컨테이너를 관리하는 기술이 필요해졌는데, 그것이 바로 쿠버네티스(Kubernetes)이다.  쿠버네티스는 여러 대의 컴퓨터(..

Ops/Kubernetes 2024.02.25

[Kubernetes] NFS 서버에 PV 만들어 접근하기 ( 우분투 환경 )

컨테이너가 내려갔다가 올라오면 컨테이너 내부 데이터는 사라진다. 데이터를 유지하려면 외부스토리지에 마운트하여 데이터를 저장해야 한다. 클러스터 내부 저장소에 마운트하면 컨테이너 생명주기와 클러스터 생명주기가 다르므로 데이터가 유지될 수 있다. 그러나 클러스터가 내려가면 데이터 역시 사라진다. 클러스터 상태와 무관하게 데이터를 유지하려면 클러스터 외부의 스토리지에 컨테이너가 마운트 되어야 한다. 이번 포스팅에서는 MiniKube 클러스터 밖에 NFS 서버(외부스토리지)를 구성하여 클러스터 밖의 저장소와 데이터를 공유하는 과정을 다루어 보겠다. 우분투OS 로컬환경에 MiniKube와 NFS 서버를 띄어 실습을 진행해보겠다. NFS 서버 생성하기 ( 우분투 환경 ) $ sudo apt-get update $ ..

Ops/Kubernetes 2023.10.16

[Kubernetes] MySQL PV, PVC 적용하기

[Kubernetes] MySQL 서비스 및 디플로이먼트 생성하기 [Kubernetes] 프론트엔드, 백엔드 서비스 및 디플로이먼트 생성하기 [Kubernetes] Minikube 설치 및 인그레스 설치 및 설정하기 [Docker] Nginx - React - Nodejs - Mysql 연동 실습하기 이번 포스팅에서 구현할 시스 lordofkangs.tistory.com 지난 포스팅까지 간단한 풀스택 시스템을 쿠버네티스에 클러스터 적용해보았다. MySQL DB에 데이터를 입력하고 조회까지 하였지만 컨테이너를 내렸다고 올리면 데이터가 모두 사라져 버린다. 컨테이너를 노드 안의 외부볼륨에 마운트 하면 컨테이너가 내려가더라도 데이터를 유지할 수 있다. GitHub - mgKang3646/Goorm_Practi..

Ops/Kubernetes 2023.10.16

[Kubernetes] ClusterIP, NodePort, LoadBalancer의 차이

쿠버네티스에서 가장 많이 사용하는 서비스(Service) 유형에는 3가지가 있다. 1. ClusterIP 2. NodePort 3. LoadBalancer 3가지가 어떤 역할을 하는지를 알아보기 전에, 먼저 간략히 IP와 Port 개념을 알아보자. IP는 네트워크상의 특정 노드를 가리키는 주소이다. 그리고 Port는 노드 안에 존재하는 여러가지 서비스의 창구이다. 그러므로 하나의 노드는 하나의 IP와 여러 개의 Port를 갖는다. Port는 16비트로 이루어져있고 0~65535까지 존재한다. 쿠버네티스 클러스터 안에는 여러 오브젝트가 존재하는데, IP가 부여되어 하나의 노드로써 역할을 한다. 서비스(Service)도 IP가 부여되는 클러스터 내 오브젝트이다. 서비스는 하나의 IP와 여러 개의 포트를 가지..

Ops/Kubernetes 2023.10.13

[Kubernetes] MySQL 서비스 및 디플로이먼트 생성하기

[Kubernetes] 프론트엔드, 백엔드 서비스 및 디플로이먼트 생성하기 [Kubernetes] Minikube 설치 및 인그레스 설치 및 설정하기 [Docker] Nginx - React - Nodejs - Mysql 연동 실습하기 이번 포스팅에서 구현할 시스템의 구성도는 위와 같다. Ngnix, React, NodeJS, MySQL을 도커 컨테이너 lordofkangs.tistory.com 지난 포스팅에서 미니큐브로 구성한 쿠버네티스 클러스터에 프론트엔드, 백엔드 서비스 및 디플로이먼트를 생성해보았다. 이번 포스팅에서는 MySQL 서비스 및 디플로이먼트를 생성하여 백엔드와 연동시켜보겠다. MySQL 서비스 ( Service ) mysql-service.yaml apiVersion: v1 kind: ..

Ops/Kubernetes 2023.10.13

[Kubernetes] 프론트엔드, 백엔드 서비스 및 디플로이먼트 생성하기

[Kubernetes] Minikube 설치 및 인그레스 설치 및 설정하기 [Docker] Nginx - React - Nodejs - Mysql 연동 실습하기 이번 포스팅에서 구현할 시스템의 구성도는 위와 같다. Ngnix, React, NodeJS, MySQL을 도커 컨테이너로 띄어 간단한 시스템을 구현해보겠다. Docker 관련 포 lordofkangs.tistory.com 지난 포스팅에서 Minikube를 설치하고 인그레스를 생성해보았다. 인그레스는 '/' 경로로 들어온 요청은 프론트엔드 서비스로, '/api' 경로로 들어온 요청은 백엔드 서비스로 트래픽을 라우팅한다. 그럼 프론트엔드와 백엔드서비스를 생성하고 디플로이먼트도 생성하여 파드를 배포해보자. 프론트엔드 서비스 와 디플로이먼트 생성 및 배..

Ops/Kubernetes 2023.10.12

[Kubernetes] Minikube 설치 및 인그레스 설치 및 설정하기

[Docker] Nginx - React - Nodejs - Mysql 연동 실습하기 이번 포스팅에서 구현할 시스템의 구성도는 위와 같다. Ngnix, React, NodeJS, MySQL을 도커 컨테이너로 띄어 간단한 시스템을 구현해보겠다. Docker 관련 포스팅이니 React, Nodejs, MySQL 관련 소스는 블로그 lordofkangs.tistory.com 지난 포스팅에서 도커 환경에서 도커 컴포즈로 Ngnix-React-NodeJS-MySQL 시스템을 개발환경용으로 구현해보았다. 이번 포스팅에서는 쿠버네티스 환경에서 Ngnix-React-NodeJS-MySQL 시스템을 구현해보려고 한다. 1. MiniKube 설치하기 나는 쿠버네티스 환경을 MiniKube로 구성하였다. 원래 목적은 VM환..

Ops/Kubernetes 2023.10.12