TIL | 파드 레플리카셋 etc

타샤's 월드·2025년 4월 30일

🌞 시작하는 글

요즘 나름 괜찮다.
먹는 것, 자는 것의 밸런스가 맞춰지고, 내 인생을 번잡스럽게 했던 것들에서 조금씩 거리두기를 하고 있다.
최근엔 내 멘탈을 컨트롤하는 데 에너지를 쓰고 있는데, 그것도 분명 좋은 일이라 생각한다.

하고 싶은 목표들이 많다.
꼭 거창할 필요는 없다. 예를 들어, 동료들에게 회사 개발 블로그를 시작하자고 제안해보는 것도 그중 하나다.

지금 나는 내 삶을 컨트롤하려고 노력하고 있고, 그중 80~90%는 잘 되고 있다.
그게 바로 행복하고 건강한 삶 아닐까.

요즘 출근할때 날씨가 참 좋은데 그걸 즐기며 출근할 수 있는 삶을 살고 싶다.

🎯 오늘의 TODO LIST

[✔️] docker fatal 에러 알람 쉘스크립트 작성
[✔️] 이윤건m 로그 파일 이슈처리
[✔️] mlops 문서
[ ] 강의 다 듣기
[ ] 연휴 계획 세우기

⚗️ 오늘의 실험

1. ECR

  • 레지스트리에 리포지토리를 만든다 . (리포지토리명 == 이미지명 )

  • 도커 이미지를 빌드한다

  • docker build -t 524080593861.dkr.ecr.ap-northeast-2.amazonaws.com/image_name:1.0.0 .
    / 앞은 레지스트리명

  • 레지스트리 push:ㅣdocker push 524080593861.dkr.ecr.ap-northeast-2.amazonaws.com/image_name:1.0.0

  • 레지스트리 pull: docker pull 524080593861.dkr.ecr.ap-northeast-2.amazonaws.com/image_name:1.0.0

2. 파드

내용

  • 컨테이너 x, 컨테이너들의 단위
  • 1개 컨테이너 = 마이크로 서비스 라 동작하기 어려움. 관련된 컨테이너들을 합쳐서 ㅇㅇ
  • 논리적인 단위의 컴퓨터 1개
  • ip 를 하나씩 부여받음

실행

  • 적용:kubectl apply -f sample-pod.yml
  • 확인:kubectl get pods
  • port-forward
    kubectl port-forward pod/sample-pod 8080:80
  • kubectl describe pods sample-pod

3. ReplicaSet

내용

  • 많은 유저가 접속해도 시스템을 유지시키는 방법
  1. 스케일 업: 고사양
  2. 스케일 아웃: 여러대 두기 => 파드를 여러개 두고 분산적으로 접속하게 함. 여러대가 40~50개 pods 면 관리 힘듬 => replicaSet 사용
    선언적 접근법: 파드 3개를 유지한다 -> 파드1개 fail over -> 기존 복구x. 1개 새로이 생성

실행

  • 적용:kubectl apply -f replicaset.yml
  • 확인:kubectl get replicasets

    desired: 필요한 파드 갯수
    current: 현재 운용중인 파드 갯수
    ready: 운용중인 파드 중 정상 파드 갯수

4. Node

내용

  • 실제 컴퓨터
  • limit : pod가 사용할 수 있는 최대 사양
  • request: pod가 가질 수 있는 최소 사양
  • 예시) 4Core 16G * 3 Node = 12Core => 1Core Pod 12개... 지만 실제 물리컴퓨터 Os제외 10개 Pod 정도 들어감

orbstack 짱짱

5. Node Group

내용

  • 비슷한 사양의 노드를 묶어서 개발자끼리 관리하는 단위 (쿠버네티스에서는 정의 불가, AWS 가능)
  • 예시)
    • Node Group1 (4개) : CPU 2 Core, RAM 8GB (DB나 NAS 이런걸 여기 두고)
    • Node Group2 (3개) : CPU 4 Core, RAM 4GB (서비스는 여기)
  • AWS 사용시 kubernetes 레이블에 키밸류 정의
  • yml 파일에 nodeSelector에 해당 키밸류 입력하면 노드그룹으로 실행됨.
  • 없는 밸류일시 무한 pending

클러스터 오토스케일러(CA)

  • 클라우드 환경에서는 노드가 부족할경우 증설이 쉬움..(스케일-인)

5. Namespace

내용

  • ocr 클러스터 내에 api랑 테스트엔진을 분리하고 싶다면?
  • 같은 네임스페이스 안에 같은 이름의 오브젝트는

실행

  • 네임스페이스 지정된 pod 확인: kubectl get pods -n new-namespace

6. 장애조치

  • 로그확인
    kubectl logs <Pod명>
    kubectl logs <Pod명> -c <컨테이너명>

7. Configmap & Secret

apiVersion: v1
kind: ConfigMap
metadata:
  name: app-config
  namespace: default
data:
  PUBLIC_NAME: KUBE
  DB_HOST: localhost
profile
그때 그때 꽂힌것 하는 개발블로그

0개의 댓글