Ch 1. Introducing
Kubernetes
박홍민
Monolithic -> Microservices
Apps on VMs vs Containers
Docker concepts/process
Kubernetes
- 구글이 몇 백, 몇 천 개의 컨테이너를 실행하다 보니 한번에 관리할 도구 필요
- 컨테이너화 앱 디플로이/관리 툴
- 여러 개의 노드 관리
- 여러 containerized-app 을 여러 노드에 올리기 위한 관리 도구
- 스케일링, 로드밸런싱, self-healing 등
-
Kubernetes architecture
- Kubernetes > Nodes
- Node = Master node + worker Nodes
- Master node = hosts Control Plane
K8s - Control Plane (master node)
- Kubernetes API Server, 서버간/요소들 간 통신용
- Scheduler, 워커 노드에 앱 배포 할당
- Controller Manager, 클러스터 기능. 요소 복제, 워커노드 추적, 노드 비활성
핸들 등
- Etcd, 클러스터 환경설정이 있는 영구 데이터 저장장소
- =>
- Control Plane 은 클러스터의 상태를 유지하고 제어
K8s - Worker nodes
- Container runtime
- Kubelet, API server 와 통신, node 에 떠있는 컨테이너 관리
- Kube-proxy(Kubernetes Service Proxy), 애플리케이션 네트워크 트래픽
로드밸런스
- =>
- 컨테이너 애플리케이션을 run, monitor 등
Running containers on k8s
Pod
pull
schedule
Ch 2. First steps with
Docker and Kubernetes
박홍민
Building the container image
- Docker client, daemon 은
같은 machine 이
아닐수도 있음. Client 는
non-linux host, daemon
은 VM 에서 동작 가능.
- Build 경로의 모든 파일은
docker daemon 으로
업로드됨. (불필요한 파일
있으면 빌드 속도 저하)
Building the container image
- Dockerfile -> build
- FROM node:7, 1줄이 ->
8줄의 pull 로
- Image 는 하나의 큰
덩어리가 아니라 multiple
layers
- Image = image1 + image2
- Image = (image1’ +
image1’’) + image2 ...
Building the container image
- 모든 이미지 PULL 이후에,
그 위에 새로운 layer 쌓음.
- 새로운 layer 는 명령줄 실행
/ 카피 등의 레이어
- 기존 image 로 container
실행 후 commit 해서 새
image 생성할 수도 있음. ->
rebuild 하기에 좋음.
Running the container image
Q. 에러가 났다는 것은 컨테이너가 러닝 안한다는거인줄 알고 포트수정 후에 다시
run 했는데 왜 container name 충돌 .. ? 에러 날때마다 rm 하고 다시 해야하나 ?
Running the container image
- 만약 docker daemon 과 docker client 가 다른 서버에 있다면 docker daemon
의 IP or hostname 입력 필요.
- 예) Windows/Mac -> docker daemon은 VM에 뜸.
Running the container image
- Docker inspect [] -> 오만 정보 나옴
Explore inside container
- Ps aux, top … -> 정말 그것만 뜸.. 깔끔하다 ..
Explore inside container
- 비교를 위해 host os (또는 일반 linux 서버) 에서 ps aux를 치면 ?
Compare outside vs inside container
- Host os vs Container 에서 node.js 프로세스를 잡아보자
Stop, remove container
- Docker stop 은 컨테이너 일시 중지, 그 상태 유지는 됨
Minikube, Kubectl download
- 화려한 다운로드 .. (ft. 팬소음)
- Minikube -> Kubernetes 작은버전, Kubectl -> Kubernetes 클라이언트
Minikube, Kubectl start
- Minikube 는 host OS에 guest OS VM으로 떴다.
- Q. Kubectl에 master node 에 대한 정보를 준적이 없는데,
- Kubernetes master 에 속한 cluster 라는걸 알아서 인식하나 .. ?
Minikube, Kubectl start
- Minikube 는 host OS에 guest OS VM으로 떴다.
- Q. Kubectl에 master node 에 대한 정보를 준적이 없는데,
- Kubernetes master 에 속한 cluster 라는걸 알아서 인식하나 .. ?
Minikube, Kubectl start
- Kubectl 로 container 를 run 하긴 했는데, 정확히 뭘 한지는 모르겠다.
Minikube, Kubectl start
- Kubectl 에서는 pod 단위로 관리. Container 단위로 관리하지 않음.
- Pod 은 ip가 분리되어있어서 pod 이 다르면 다른 서버에 떠있는 듯한 느낌.
- 이런 일이 일어난 것이었다고 함.
Minikube, Kubectl start
- Scaling 해보자.
- Pod 이 3개 됨
Minikube, Kubectl scaling
- Service, Pod, ReplicationController 3가지 개념.
Minikube, Kubectl scaling

1.intro to k8s

  • 1.
  • 2.
  • 3.
    Apps on VMsvs Containers
  • 4.
  • 5.
    Kubernetes - 구글이 몇백, 몇 천 개의 컨테이너를 실행하다 보니 한번에 관리할 도구 필요 - 컨테이너화 앱 디플로이/관리 툴 - 여러 개의 노드 관리 - 여러 containerized-app 을 여러 노드에 올리기 위한 관리 도구 - 스케일링, 로드밸런싱, self-healing 등 -
  • 6.
    Kubernetes architecture - Kubernetes> Nodes - Node = Master node + worker Nodes - Master node = hosts Control Plane
  • 7.
    K8s - ControlPlane (master node) - Kubernetes API Server, 서버간/요소들 간 통신용 - Scheduler, 워커 노드에 앱 배포 할당 - Controller Manager, 클러스터 기능. 요소 복제, 워커노드 추적, 노드 비활성 핸들 등 - Etcd, 클러스터 환경설정이 있는 영구 데이터 저장장소 - => - Control Plane 은 클러스터의 상태를 유지하고 제어
  • 8.
    K8s - Workernodes - Container runtime - Kubelet, API server 와 통신, node 에 떠있는 컨테이너 관리 - Kube-proxy(Kubernetes Service Proxy), 애플리케이션 네트워크 트래픽 로드밸런스 - => - 컨테이너 애플리케이션을 run, monitor 등
  • 9.
    Running containers onk8s Pod pull schedule
  • 10.
    Ch 2. Firststeps with Docker and Kubernetes 박홍민
  • 11.
    Building the containerimage - Docker client, daemon 은 같은 machine 이 아닐수도 있음. Client 는 non-linux host, daemon 은 VM 에서 동작 가능. - Build 경로의 모든 파일은 docker daemon 으로 업로드됨. (불필요한 파일 있으면 빌드 속도 저하)
  • 12.
    Building the containerimage - Dockerfile -> build - FROM node:7, 1줄이 -> 8줄의 pull 로 - Image 는 하나의 큰 덩어리가 아니라 multiple layers - Image = image1 + image2 - Image = (image1’ + image1’’) + image2 ...
  • 13.
    Building the containerimage - 모든 이미지 PULL 이후에, 그 위에 새로운 layer 쌓음. - 새로운 layer 는 명령줄 실행 / 카피 등의 레이어 - 기존 image 로 container 실행 후 commit 해서 새 image 생성할 수도 있음. -> rebuild 하기에 좋음.
  • 14.
    Running the containerimage Q. 에러가 났다는 것은 컨테이너가 러닝 안한다는거인줄 알고 포트수정 후에 다시 run 했는데 왜 container name 충돌 .. ? 에러 날때마다 rm 하고 다시 해야하나 ?
  • 15.
    Running the containerimage - 만약 docker daemon 과 docker client 가 다른 서버에 있다면 docker daemon 의 IP or hostname 입력 필요. - 예) Windows/Mac -> docker daemon은 VM에 뜸.
  • 16.
    Running the containerimage - Docker inspect [] -> 오만 정보 나옴
  • 17.
    Explore inside container -Ps aux, top … -> 정말 그것만 뜸.. 깔끔하다 ..
  • 18.
    Explore inside container -비교를 위해 host os (또는 일반 linux 서버) 에서 ps aux를 치면 ?
  • 19.
    Compare outside vsinside container - Host os vs Container 에서 node.js 프로세스를 잡아보자
  • 20.
    Stop, remove container -Docker stop 은 컨테이너 일시 중지, 그 상태 유지는 됨
  • 21.
    Minikube, Kubectl download -화려한 다운로드 .. (ft. 팬소음) - Minikube -> Kubernetes 작은버전, Kubectl -> Kubernetes 클라이언트
  • 22.
    Minikube, Kubectl start -Minikube 는 host OS에 guest OS VM으로 떴다. - Q. Kubectl에 master node 에 대한 정보를 준적이 없는데, - Kubernetes master 에 속한 cluster 라는걸 알아서 인식하나 .. ?
  • 23.
    Minikube, Kubectl start -Minikube 는 host OS에 guest OS VM으로 떴다. - Q. Kubectl에 master node 에 대한 정보를 준적이 없는데, - Kubernetes master 에 속한 cluster 라는걸 알아서 인식하나 .. ?
  • 24.
    Minikube, Kubectl start -Kubectl 로 container 를 run 하긴 했는데, 정확히 뭘 한지는 모르겠다.
  • 25.
    Minikube, Kubectl start -Kubectl 에서는 pod 단위로 관리. Container 단위로 관리하지 않음. - Pod 은 ip가 분리되어있어서 pod 이 다르면 다른 서버에 떠있는 듯한 느낌.
  • 26.
    - 이런 일이일어난 것이었다고 함. Minikube, Kubectl start
  • 27.
    - Scaling 해보자. -Pod 이 3개 됨 Minikube, Kubectl scaling
  • 28.
    - Service, Pod,ReplicationController 3가지 개념. Minikube, Kubectl scaling