전체 글 202

[Kubernetes] PV, PVC 삭제 안됨 해결 방법(terminating 상태)

PV, PVC 를 사용하고있는 pod나 storageClass를 삭제했음에도 불구하고 PV 또는 PVC를 삭제해도 terminating 상태에서 계속 멈춰있는 경우가 있다.  원인?PV, PVC의 정보를 보면 finalizers 필드에 kubernetes.io/pvc-protection이 설정되어있을 수 있다 $ kubectl describe | grep FinalizersFinalizers: [kubernetes.io/pvc-protection] . PV, PVC가 삭제될 때 관련된 리소스가 남아있거나, 작업중인 리소스가 있다면 데이터 손실을 방지하기 위해 안전장치를 걸어주는 역할을 한다는데 어차피 삭제할 PV, PVC 이니 이 설정을 해제시키고 다시 삭제를 해봤다.  # PV 삭제 안되는 경..

kubernetes pod에서 특정 데이터만 추출하기(json 형식)

예를 들어 kubernetes에서 돌고있는 pod의 특정 정보를 뽑아내야 한다고 하자.   추출할 정보 예시:1. deployment로 배포한 pod의 deployment 이름2. 배포한 pod의 개수(replica)3. 컨테이너 각각의 이름, 리소스 kubectl get deployments -o json | jq -c ' .items[] | { name: .metadata.name, newReplicaSet: .status.replicas, containers: [ .spec.template.spec.containers[] | {name, resources: .resources} ] }' 필요한 필드값을 명시하면 된다.   결괴 예시:web dep..

[Git config] 글로벌 설정 & 로컬 설정

Git은 로컬 설정을 우선 적용하며, 로컬 설정이 없을 경우 글로벌 설정을 사용함.   글로벌 계정 설정 (기본 계정 고정)git config --global user.name "GlobalUserName"git config --global user.email "global@example.com" 로컬 계정 설정 (프로젝트별 계정 지정) 해당 프로젝트 디렉토리에서 실행git config user.name "LocalUserName"git config user.email "local@example.com" 확인 글로벌 설정 확인: git config --global --list  로컬 설정 확인:git config --local --list

error: Metrics API not available(결론: 포트 확인)

metric-server를 설치 했는데도 정상적으로 작동하지 않는 경우가 있다.  1. kubectl logs 결과 tls 에러가 발생하는 경우 pod가 돌지도 않고, hpa targets도 unknown으로 뜬다.  tls: failed to verify certificate: x509: cannot validate certificate for 10.0.2.10 because it doesn't contain any IP SANs" node="master"  이 경우에는 kubectl edit deployment metrics-server -n kube-system 명령어로 파일에 진입해서 kubelet과의 TLS 인증서 검증을 무시하도록 하고, 메트릭 서버가 클러스터 노드의 네트워크 인터페이스를 직접..

VitualBox ssh 연결(포트포워딩 방법)

Oracle VirtualBox에서 VM 생성 후 ssh 연결하는 방법  1. 호스트 IP확인  `파일 > 도구 > 네트워크 관리자 > 호스트 전용 네트워크` 에서 호스트 IP 확인     IPv4 접두사에 있는 192.168.56.1 주소가 내가 접근 가능한 VM 주소다.   2. VM 네트워크 확인`VM 설정 > 네트워크` 에서 `다음에 연결됨` 을 NAT 네트워크로 설정    3. 포트포워딩 `파일 > 도구 > 네트워크 관리자 > NAT 네트워크` 에서 `만들기` 버튼을 눌러서 생성 후 `포트포워딩`을 추가하는데, 호스트 IP가 아까 확인한 주소다. 게스트 IP는 VM 내부의 주소고(`ip ad` 명령어로 확인 가능) 게스트 포트는 ssh 연결을 할테니 22포트 사용 호스트 포트는 사용 가능한 범위..

VM 2024.12.02

ubuntu에 쿠버네티스 설치하는 방법

0. 설치 전 확인사항호환되는 리눅스 머신. 쿠버네티스 프로젝트는 데비안 기반 배포판, 레드햇 기반 배포판, 그리고 패키지 매니저를 사용하지 않는 경우에 대한 일반적인 가이드를 제공한다.2 GB 이상의 램을 장착한 머신. (이 보다 작으면 사용자의 앱을 위한 공간이 거의 남지 않음)2 이상의 CPU.클러스터의 모든 머신에 걸친 전체 네트워크 연결. (공용 또는 사설 네트워크면 괜찮음)모든 노드에 대해 고유한 호스트 이름, MAC 주소 및 product_uuid. 자세한 내용은 여기를 참고한다.컴퓨터의 특정 포트들 개방. 자세한 내용은 여기를 참고한다.스왑의 비활성화. kubelet이 제대로 작동하게 하려면 반드시 스왑을 사용하지 않도록 설정한다. 1. VM서버 구성 서버 설정 만약 너무 과도하게 리소스를..

bad option; for several filesystems (e.g. nfs, cifs) you might need a /sbin/mount.<type> helper program 에러

StorageClass로 NFS 스토리지를 Pod에 연결하려니 발생한 에러   journalctl -u kubelet -n 100 명령어로 확인해보니  master kubelet[896]: E1127 08:46:29.250652 896 kubelet.go:2345] "Skipping pod synchronization" err="container runtime is down"   kubelet이 컨테이너 런타임에 연결할 수 없다는게 뭔소린가 했더니nfs-common 을 master와 nfs 서버에만 설치해서 발생한 문제였다.  apt install nfs-common 명령어를 모든 master와 node에 다 돌리고 나니 문제 해결.

VirtualBox에서 Windows10 설치하기(productkey 에러 해결)

무인 응답 파일에서 productkey 설정을 읽을 수 없습니다 에러 없어 VirtualBox에서 Windows10 설치하는 방법.   아래 공식 사이트로 들어가서 `Windows 10 설치 미디어 만들기` 다운로드  https://www.microsoft.com/ko-kr/software-download/windows10    다음 다음 누르다보면 ISO로 만들기가 있다. ISO 파일을 다운받고 virtualbox로 실행시킨다.   만들어진 window 10 가상머신의 설정 > 시스템의 부팅 순서에 '플로피'를 제외한다.      이후에 VM이 설치된 파일로 가서 'Unattended' 로 시작하는 파일은 모두 삭제하고 다시 VM을 켜서 에러가 뜨면 OK를 누른다.    https://forums.vi..

Kubernetes 컨테이너 런타임 추천(containerd, CRI-O, Docker Engine)

Kubernetes에서 더이상 Docker shim을 사용하지 않아 containerd, CRI-O 와 같은 런타임만 필요로 한다.  그래도 Docker를 쓰는 김에 Docker Engine을 컨테이너 런타임으로 사용했었는데 kubeadm init을 하면 unknown service runtime.v1.RuntimeService 에러가 발생해서 설정파일을 삭제하는 등의 귀찮은 작업을 해야하고, 그마저도 에러가 많이 발생해서 CRI-O로 바꿨다.   아래는 CRI-O 설치 방법이다. https://github.com/cri-o/packaging/blob/main/README.md#usage packaging/README.md at main · cri-o/packagingCRI-O deb and rpm pa..