쿠버네티스

황상익·2024년 10월 17일

MSA

목록 보기
8/20

Kubernetes(=k8s)

  • Automatic bin packing : Container를 적절히 배분
  • Self-Healing : Conatiner 죽으면 알아서 생성
  • Horizontal scaling : 수평 확장 기능 설정
  • Service discovery and Load balancing : container를 사용자가 알아서 찾아가야 할때
  • Automated rollouts and rollbacks : 배포시 이전 버전을 무중단 배포
  • Secret and Configuration management
  • Storage orchestration

-> 모든 리소스는 오브젝트 형태로 관리
• Pod, Replicaset, Service,
• Deployment, Configmap,secret,
• Ingress

-> 명령어 보다는 YAML

-> 자동스케즐링
-> 재스케즐링
-> 자동확장
-> 자동배포

쿠퍼네티스 리소스

Pod
컨테이너를 다루는 기본 단위
1개 이상 컨테이너로 구성
하나의 완전한 애플리케이션으로 동작
부가적인 기능을 사이드카(본연의 임무 외 기능) 컨테이너로 제공

Replicaset (레플리카셋)
정해진 수의 동일한 포드가 항상 실행
노드 장애 등의 이유로 포드를 사용할 수 없다면, 다른 노드에서 포드 다시 생성

디플로이먼트(Deployment)
레플리카셋, 포드의 배포를 관리
update 배포를 더욱 편하게 함
애플리케이션 변경시 레플리카셋의 변경 사항을 저장, -> revision을 남겨 롤백
무중단 서비스를 위해, 롤링 update 전략 지정 가능
+) 롤링 업데이트
oldVersion -> new Version
oldVersion 일부만 new Version으로 이동

서비스
포드를 연결하고 외부에 노출
여러개 포드에 접근, 고유한 도메인 부여
여러개 포드에 접근할때 요청을 분산하는 로드벨런서 역할
클라우드 플랫폼의 로드밸런서 , 클러스터 노드의 포트를 통해 포드를 외부로 노출

  • ClusterIP : 클러스트 내부에서만 접속
  • NodePort : 노드의 Port열어 외부 접속
  • LoadBalancer : 외부

Scale-Out 후 서비스 로드밸런스 확인

생성 된 Pod 삭제와 Self-Healing

Deployment의 Scale-Out/In

요구하는 것을 선언 -> Master Node etcd에 저장 -> Controller Manager 읽어서 스케줄 띄움

인그레스

URL, PATH 기반 라우팅 정의
SSL 보안 연결
인그레스 규칙
인그레스 컨트롤러 서버

컨피그 맵, 시크릿

Configmap (설정값), Secret(암호)
설정 값을 포드에 전달, 컨테이너 설정 정보를 저장 해놓은 일종의 저장소 (key&value)
컨테이너에서 필요한 환경설정 내용을 컨테이너와 분리해 제공
설정 값이 변경되었을때, 컨테이너의 재배포 없이 적용 가능

profile
개발자를 향해 가는 중입니다~! 항상 겸손

0개의 댓글