반응형

k8s 6

파이썬으로 쿠버네티스 리소스 생성 코드 예제

Python에서 k8s의 리소스를 원격으로 생성하는 것이 가능합니다.이 글에서는 kubernetes 모듈을 활용하여 yaml 파일로 부터리소스를 생성하는 방법을 간략하게 소개해보도록 하겠습니다.  사전 작업먼저, kubernetes 모듈과 yaml 파일을 다루기 위한 pyyaml 모듈을 설치해주어야 합니다.pip install kubernetes pyyaml 또한, 파이썬 코드로 리소스 원격 생성을 진행하기 위해서는kubectl 명령어를 터미널 내에서 사용 가능하도록 config 설정이 되어있어야 합니다.  코드 예제다음은 리소스에 해당하는 yaml 파일을 이용하여 pod를 생성하는 코드 스니펫 예시입니다.from kubernetes import client, config, utils# kubernete..

Python/Utils 2024.09.20

k8s ALB ingress 배포 앱의 timeout이 60초로 제한될 때 해결법

서비스를 배포한 코드와 도커 환경 내에서는 타임아웃이 60초보다 더 길지만(즉, 로컬 환경에서는 정상 실행이 가능)배포 이후 60초의 timeout 제한이 걸리는 경우가 있습니다. 만일, timeout이 제한되는 앱이 쿠버네티스에서 ALB 유형의 ingress로 배포한 서비스라면 ALB를 설정한 ingress yaml 파일에서 다음과 같은 사항이 포함되어있는지 확인해봅니다.(아래 예시는 timeout이 2분으로 설정된 경우입니다.)metadata: annotations: alb.ingress.kubernetes.io/load-balancer-attributes: idle_timeout.timeout_seconds=120 만일, alb.ingress.kubernetes.io/load-balancer..

Infra/Debugging 2024.09.03

k8s에서 웹 서비스 배포 후 "backend service is not existed" 현상 해결법

쿠버네티스에서 웹 페이지로 구성된 서비스를 배포한 이후,정상적으로 페이지가 보이지 않고 흰 화면에 "backend service is not existed"메시지만 나오는 경우 해결 방법을 간략하게 정리해보도록 하겠습니다.  해결 매뉴얼1. 먼저, 다음 명령어를 통하여 의도한 namespace 내에 서비스가 잘 배포되었는지 확인합니다.kubectl get svc -n  위 명령어로 조회한 결과, 서비스가 목록에서 조회되지 않는다면,오타가 있었거나 엉뚱한 이름이 대신 지정된 경우가 흔하기에service yaml 파일 등을 열어 namespace나 app 이름이 올바르게 지정되었는지확인하고 수정 후 다시 배포합니다. 2. 만일, 서비스 배포 자체는 되었지만 배포 상태에 이상이 있는 경우라면,아래의 명령어를 ..

Infra/Debugging 2024.08.30

쿠버네티스 Deployment yaml 파일 작성 및 명령어 예제 정리

Kubernetes(K8s)에서 애플리케이션 배포 및 관리를 자동화하는데 필수적인deployment의 yaml 파일을 작성하는 방법과 이용하는 명령어를예제들을 중심으로 간략하게 정리해보도록 하겠습니다.  Deployment 이점 / 사용하는 이유k8s에서 pod를 수동으로 배포하는 것도 얼마든지 가능하지만,실무에서는 deployment를 이용한 배포를 많이 활용합니다. 이에는 다음과 같은 이점이 있습니다.pod가 실행 중 오류가 발생하더라도 지정된 개수의 pod를 유지할 수 있도록 관리해줍니다.애플리케이션 업데이트 시 안정적으로 진행할 수 있는 기능을 제공합니다.새로운 버전에 오류가 생긴 경우, 이전 버전으로 롤백이 용이합니다.  Deployment yaml 파일 예제기본적인 deployment를 다루는..

쿠버네티스 Node/Pod Affinity와 Taint-Tolerations 개념 정리

kubernetes(k8s) 에서 많이 사용되지만 혼동되는 개념인Affinity와 Taint-Tolerations에 대해서 정리해보도록 하겠습니다.  0. 언제 사용되는 개념인가요?해당 개념들은 Pod를 Node에 배정하는 스케줄링을 진행할 때,조건을 제어하는 용도로 사용됩니다.  1. Node Affinity사용 목적Pod를 특정한 조건을 만족하는 Node에 배정하고 싶을 때 사용합니다.  종류- 필수 조건 (requiredDuringSchedulingIgnoredDuringExecution):반드시 만족해야 하는 조건입니다.해당 조건을 만족하지 않으면 Pod는 해당 노드에 스케줄링되지 않습니다.- 선호 조건 (preferredDuringSchedulingIgnoredDuringExecution):만족..

쿠버네티스 kubectl 주요 명령어 정리

kubernetes(k8s) 클러스터를 다루기 위한 명령줄 도구인 kubectl의기초적인 명령어 목록들에 대하여 간략하게 정리를 해보도록 하겠습니다.  1. 클러스터 / 노드 정보 관련# 클러스터 정보 확인kubectl cluster-info# 노드 정보 확인kubectl get nodes  2. 네임스페이스 관련# 네임스페이스 리스트 확인kubectl get namespaceskubectl get ns# 네임스페이스 생성kubectl create ns # 네임스페이스 삭제kubectl delete ns   3. Pod 관련# 파드 리스트 확인(default namespace 기준)kubectl get podskubectl get pokubectl get po -o wide # 상세 정보 포함# 모든 네..

반응형