Kubernetes is just like a tool to help your managing docker containers.
μΏ λ²λ€ν°μ€λ λ컀μ 컨ν
μ΄λλ€μ κ΄λ¦¬λ₯Ό λμμ£Όλ ν΄μ΄λ€.
It is all about automation.
μλνκ° ν€μλμ.
For example, if you have a lot of backend services, if you want to scale up like create a lot more backend services to handle a lot of requests, you will have to do that manually.
μλ₯Ό λ€μ΄, νμ¬ λ΄κ° λ°±μλ μλ²λ₯Ό λ§μ΄ κ°μ§κ³ μλλ°, λ λ§μ μμ²μ μ²λ¦¬νκΈ° μν΄μ λ°±μλ μλ²λ₯Ό μ‘°κΈ λ μμ±ν΄μ κ·λͺ¨λ₯Ό νμ₯νκ³ μΆλ€λ©΄, μ΄ λͺ¨λ κ²λ€μ μ§μ μ²λ¦¬ν΄μΌνλ€.
But with Kubernetes(K8S), all you need is to update one configuration file for different services, or even there might be some K8S UI to use, so bascially K8S w ill do the rest for users.
νμ§λ§, μΏ λ²λ€ν°μ€λ λ€μν μλΉμ€λ€μ μν΄ λ¨ νλμ κ΅¬μ± νμΌλ§ μ
λ°μ΄νΈνλ©΄ λλ€.
νΉμ μΏ λ²λ€ν°μ€μ UIλ₯Ό μ¬μ©νλ©΄ λκΈ° λλ¬Έμ, μ΄μ μ μ§μ μ²λ¦¬ν΄μΌνλ κ²λ€μ μΏ λ²λ€ν°μ€κ° λμ ν΄μ£Όλ κ²κ³Ό κ°λ€.
thsee two key factors are very important to understand what Kubernetes is.
Container
Docker is like a lightweight, standalone, and executalbe package for software.
λ컀λ μ‘°κΈ λ κ°λ³κ³ , λ
립μ μ΄λ©°, μννΈμ¨μ΄λ₯Ό μν μ€ν ν¨ν€μ§λ€.
it contains everything a program needs to run, including the code, runtime, libraries, and system tools.
μ½λ, λ°νμ, λΌμ΄λΈλ¬λ¦¬, μμ€ν
ν΄λ€μ ν¬ν¨νμ¬ νλ‘κ·Έλ¨μ μ€ννλλ° νμν λͺ¨λ κ²λ€μ λ΄κ³ μλ€.
Think of it as a shipping container for software, which ensures it will run the same way, regardless of where you deply it.
λ°°μ νλ¬Όμ μ€μ λ, μ μ μ© μ»¨ν
μ΄λλ€μ μκ°ν΄λ³΄λ©΄ λλ€. μ΄ μ»¨ν
μ΄λλ€μ μ΄λμ λ°°μΉλμλμ§ μκ΄ μμ΄ λμΌν λ°©μμΌλ‘ μ€νλλ€.
Docker ables to run each component in a seperate container with its own
libraries and its own dependencies, all in the same VM and the OS, but within separate environments or containers.
We just had to build the Docker configurartion once, and all our developers could now get started with a simple Docker run command.
Dockerλ κ° μ»΄ν¬λνΈλ₯Ό λμΌν VM λ° OS λ΄μμ λ³λμ νκ²½ λλ 컨ν μ΄λ μμμ μ체 λΌμ΄λΈλ¬λ¦¬μ μ’ μμ±μΌλ‘ μ€νν μ μλ€. μ°λ¦¬λ Docker μ€μ μ ν λ²λ§ ꡬμΆνλ©΄, λͺ¨λ κ°λ°μκ° κ°λ¨ν Docker run λͺ λ Ήμ΄λ‘ μμν μ μκ² λλ€.
Think of a namespace as a virtual room within the Kubernetes house.
Each room(namespace) allows you to organize different sets of your containers (workloads) separately, so they don't interfere with each other, making management and security easier.
(namespaceλ₯Ό K8S μ§μ μλ κ°μμ λ°©μ΄λΌ μκ°ν΄λ³΄μ.
κ°κ°μ λ°©μμ 컨ν
μ΄λ(workload)λ€μ μλ‘ λ€λ₯΄κ² ꡬμ±ν μ μλ€.
κ·Έλ κ²νλ©΄, μλ‘ κ°μνμ§ μκΈ° λλ¬Έμ, κ΄λ¦¬νκ³ λ³΄μνκΈ° λ μ¬μμ§λ€.
κ·Έλμ namespaceλ κ°μμ 곡κ°μ΄λΌ μκ°νλ©΄ λλ€.)
Pod is the smallest deployable unit that can run and manage a container or multiple containers.
Podλ νλμ 컨ν
μ΄λ νΉμ μ¬λ¬κ°μ 컨ν
μ΄λλ₯Ό μλμν€κ³ κ΄λ¦¬ν μ μλ λ°°ν¬ κ°λ₯ν μ΅μ λ¨μλ€.
Think of it as a single apartment in the K8S house, where one or more containers(Docker file + other codes<FE, BE, DB ...>) live together, sharing storage and network resources. Itβs the basic building block of Kubernetes.
Podλ₯Ό μΏ λ²λ€ν°μ€μ κ° μννΈλΌκ³ μκ°ν΄λ³΄μ.
κ·ΈλΌ νλ νΉμ λ κ° μ΄μμ 컨ν
μ΄λλ€μ΄ μμ κ²μ΄λ€. μ΄ μ»¨ν
μ΄λλ€μ νλ μννΈμμ κ°μ΄ μννλ©΄μ, storageμ λ€νΈμν¬ λ¦¬μμ€λ€μ μλ‘ κ³΅μ νκ² λλ€.
μ΄κ²μ΄ λ°λ‘ μΏ λ²λ€ν°μ€μ κΈ°λ³Έμ μΈ κ΅¬μ±μμλ€.
μ¬μ ν λͺ¨λ₯΄κ² λ k8s....