본문 바로가기
CS(Computer Science)/소프트웨어공학

7. KUBERNETES

by 동욷 2023. 2. 6.

#Kubernetes

Docker Swarm

  • Contanier : docker container
  • Scaling: manual
  • Load Balancing : primitive(원초적인)
  • Installation: easy & fast
  • Scalability : limited
  • Storage Volume : Shrarable over any container
  • GUI : NO

K8s(Kubernetes)

  • Container: 다른 container도 가능
  • Scaling: fully automatic
  • Load Balancing: configurable(변경가능한)
  • Installation : more time consuming
  • Scalability: string
  • Storage Volume : within a pod
  • GUI : YES

K8s

  • Pods, groups of container : group together container images developed by different teams into a single deployable unit(logical host of container, containers in a pod are always co-located and co-scheduled and run in a shared context)

  • Services : provide load balancing , naming, and discovery to isolate one microservice from another

  • Namespaces : provide isloation and access control, so that each microservice can control the degree to which other services interact with it (각각 상호작용하는거 통제 가능)

  • Ingress Objects : provide an easy-to-use frontend that can combine multiple microservices into single externalized API surface area

K8s cluster = master node(s) + worker nodes

allow to mount a storage (local, cloud , network storage) for each pod

K8s 특징

  1. Automatic bin packing (RAM-aware performance based)
  2. Service discovery & load balancing (DNS name for each service)
  3. Storage orchestration(저장 조직화)
  4. Self healing (restart failed containers에 대하여)
  5. Automated rollouts and rollbacks
  6. Secret and configuration management (secret and config map in ETCD)
  7. Batch 실행 (run to completion)
  8. Horizontal scaling(CLI, UI, automatic based on CPU usage)

2020년 4월 기준

하나의 클러스터에 최대 5000개 node, 최대 150000개 pod , 최대 300000개 container

node당 최대 100개 까지의 pod

  • master components : API server, scheduler, control manager, etcd
  • worker components : kubelet -> Container running을 책임 , Kube-proxy -> 각 node의 network proxy, Pod -> 1개 이상의 docker container 포함

K8s implementations

  • K8s labs via browser
  • Installing Kubernetes on a Public Cloud Provider
  • Installing Kubernetes Locally
  • Running Kubernetes in Docker
  • Running Kubernetes on Raspberry Pi

Kubernetes

  • Official def : Container orchestration tool
  • 분산 운영체제 with no distributed file system, no cache management, no system calls, no per process control
  • Job control system on global scale of CDN/Service delivery network
  • RAM-aware throughput oriented
  • no down time service via load balancing & auto scaling


#Kubernetes #Orchestration

Pods in K8s

  • 인터넷 상에서 서비스를 제공하는 프로세스는 고유한 port번호가 부여되서 하나의 호스트에 동일한 서비스를 제공하는 컨테이너가 두개 이상 공존할 수 없음
  • K8s의 존재 이유는 같은 서비스를 제공하는 컨테이너를 여럿 운용하고자 하기 위해서다
  • POD를 통해서 서비스 제공 입장에서 virtual host 역할을 수행
  • Docker swarm 또는 전통적인 분산환경에서의 동일한 종류의 서비스 제공은 서로 다른 호스트에 같은 서비스를 제공하며, 외부로부터의 서비스 요구를 여러 호스트에 나누어 할당하는 reverse proxy를 이용

728x90

'CS(Computer Science) > 소프트웨어공학' 카테고리의 다른 글

9. Selenium - Automated Testing  (0) 2023.02.06
8. Ansible - Configuration Management  (0) 2023.02.06
6. Network Virtualization  (0) 2023.02.06
5. Docker3  (4) 2023.02.06
4. Docker2  (0) 2023.02.06