개발/Kubernetes 7

Kubernetes AWS EKS 1.30 업데이트 고려사항

Kubernetes 1.30 릴리즈 노트와 EKS 1.30 릴리즈 노트에 명시되지 않은 변화점으로 인해 문제가 발생할 수 있습니다.특히 EKS Managed Node Group을 사용하고 있다면 1.30으로 업데이트 후, EKS Addon이나 AWS Credentials 획득 실패, IMDS (Instance Meta Data Service) 엑세스 실패등으로 pod들이 정상 동작 하지 않을 수 있습니다. 다음은 AWS 공식 EKS 1.30 Update 문서입니다.1.30부터 AMI 기본 이미지가 AL2에서 AL2023으로 변경된다고 하고있으며, AL2와 AL2023 비교 문서의 링크를 제공하고 있습니다. 그러나 이미지 변경으로 인해 정확히 무슨 문제가 발생할 수 있는지는 표시하고 있지 않습니다. Com..

개발/Kubernetes 2024.06.21

Tensorflow in Kubernetes - CPU Memory Troubleshooting

K8s에서 텐서플로우의 CPU Training을 돌릴 때 겪은 문제 CPU / Memory 사용량이 치솟아 QoS Burstable / BestEffort로는 Pod Eviction이 발생함 CPU / Memory의 Request와 Limit을 동일하게 설정해 QoS를 Guaranteed로 주면 OOM Killed로 죽음 원인은 기본 System Malloc을 사용할 때 Python TF가 돌면서 메모리 할당을 VM Memory Limit를 보지 않고 노드 호스트를 기준으로 동작해 Pod의 Limit를 초과하는 Memory를 사용해 OOM이 발생하는 것 같다. 이것 대신 구글의 libtcmalloc으로 변경해주면 된다. https://stackoverflow.com/a/57288305 TF 학습 이미지에..

개발/Kubernetes 2022.09.19

Hyper-V 에서 Kubernetes 설치하기

Ubuntu 18.04 / 20.04 를 Hyper-V에 띄운 후 K8s를 Step By Step으로 설치합니다. 이 포스트는 일반적인 minikube / kubespray 등 설치 패키지를 사용하지 않고 kubernetes 구성을 이해하기 위해 마스터, 워커 노드 구성 요소를 하나하나 바이너리 레벨로 설치하는 것을 목표로 합니다. Linux 기본 지식이 필요합니다. 먼저 마스터노드와 워커노드에 공통으로 필수적인 Kubelet, containerd, cni plugins, runC를 설치합니다. sudo su cd ~ # dsn resolve sh -c 'echo "DNS=8.8.8.8 8.8.4.4" >> /etc/systemd/resolved.conf' systemctl restart systemd-..

개발/Kubernetes 2022.05.27

오픈소스 무료 윈도우 도커 컨테이너 실행하기

도커 데스크탑이 라이센스 변경으로 유료화 되었습니다. 소규모 기업이나 개인은 무료로 사용가능 하지만 일정 규모 이상 기업에서는 개발이나 테스트용으로도 유료를 구매해야 쓸 수 있습니다. 도커 데스크탑이 아닌 아직 도커 CLI와 도커엔진은 무료이므로 일반적인 리눅스 기반 컨테이너라면 윈도우10과 Hyper-V에 리눅스를 설치하거나 WSL2에 Docker를 설치해 리눅스 컨테이너를 실행해 개인 개발 환경 등에 사용할 수는 있습니다. 하지만 윈도우를 도커라이즈한 윈도우 컨테이너라면 리눅스 도커로 실행이 안됩니다. 이럴때는 다음과 같은 조합을 사용하면 무료 오픈소스로 사용 가능합니다. 윈도 도커 컨테이너 유료화 대응 무료진영 https://github.com/containerd/containerd containe..

개발/Kubernetes 2022.03.30