전체 글 586

kubernetes in action - 03. Pods: running containers in Kubernetes

03. Pods: running containers in Kubernetes Introducing pods pod is a co-located group of containers and represents the basic building block in Kubernetes container를 직접 띄우는 대신에 pod of containers로 배포하게 된다. 항상 하나의 node 위에서만 뜸 (ex. 두 개의 노드에서 한 pod가 같이 뜰수 없음) 왜 pod가 필요할까? 왜 pod가 필요할까? 왜 container를 직접 사용하면 안될까? 왜 multiple container를 같이 띄워야할까? 만약 같은 machine 안에서 multiple process를 띄워야 한다고 생각해보자. containe..

kubernetes in action - 02. First steps with docker and kubernetes

2. First steps with Docker and Kubernetes 도커에 대한 기본적인 설명. 도커 사용법을 안다면 생략해도 될듯하다. kubenertes 띄우기: minikube 설치 및 사용법에 대한 설명 minikube나 GKE(Google Kubernetes Engine)으로 설명이 되어있다. GKE는 GKE Quickstart를 따라하면 됨. google은 12 month free trial를 제공하지만 이미 사용하였을 경우에는 금액이 청구된다. 이후에 kubernetes 명령어에 사용할 docker image를 빌드해서 push 해주어야한다 app.js에 다음 내용을 추가 const http = require('http'); const os = require('o..

kubernetes in action - 01. Introducing Kubernetes

Kubernetes in action 1. Introducing Kubernetes 단일규모의 큰 앱의 다양한 단점 마이크로서비스들의 등장 이들을 오케스트레이션해줄 기능이 필요 적은 수일 경우에는 VM으로도 가능 hardware resources human resources VM 대신 Linux container technologies run multiple services on the same host machine isolating environment like VM; less overhead container는 host의 OS에서 작동하지만 각 프로세스들은 isolated VM과 비교하면? single isolated process running in the host OS, consuming onl..

kubernetes docs: 클러스터 아키텍쳐 - 컨트롤러 (controller)

Controller Kubernetes에서 controler는 클러스터의 상태를 관찰한 후 필요한 경우에 생성 혹은 변경을 요청하는 컨트롤 루프이다. Controller pattern controller는 한개 이상의 리소스 유형을 추적한다. 해당 오브젝트들은 의도하는 상태를 표현하는 필드를 가지고 있고, 이들의 컨트롤러는 그 상태를 의도한 상태에 가깝게 만드는 역할을 한다. 다음와 같은 방법으로 제어 가능 API 서버를 통한 제어 Job controller는 Kubernetes 내장 컨트롤러의 예시. job은 하나 또는 여러 파드를 실행하고, 작업을 수행한 다음 중지하는 Kubernetes 리소스이다. job controller가 새로운 작업을 확인 -> kubelet이 적합한 수의 pod를 실행하게 ..

Kubernetes docs: Cluster Architecture - Node

Cluster Architecture Node 하나의 노드는 Kubernetes에서 하나의 워커 머신이다. (이전에는 minion으로 불림) 노드는 클러스터에 따라 VM 또는 물리 머신이 될 수 있음 Node status 노드의 상태는 주소, 컨디션, 용량과 할당가능, 정보 등을 포함한다. kubectl escribe node 주소 제공 사업자 또는 구성에 따라 다양한 용법이 쓰임 HostName: 노드 커널에 알려진 호스트명. --hostname-override로 override 가능 ExternalIP: 클러스터 외부로 라우트 가능 InternalIP: 클러스터 내부에서만 라우트 가능 컨디션 모든 Running중인 노드의 상태를 기술. Node condition에는 다음 종류 등이 있음 Ready: ..

Kubernetes object - 쿠버네티스 오브젝트

Kubernetes object 쿠버네티스 오브젝트 이해하기 쿠버네티스 오브젝트 는 쿠버네티스 시스템에서 영속성을 가지는 개체 쿠버네티스 오브젝트는 하나의 “의도를 담은 레코드"이다. 오브젝트를 생성하게 되면, 쿠버네티스 시스템은 그 오브젝트 생성을 보장하기 위해 지속적으로 작동 생성이든, 수정이든, 또는 삭제든 쿠버네티스 오브젝트를 동작시키려면, 쿠버네티스 API를 이용해야 한다. 예를 들어, kubectl 커맨드-라인 인터페이스를 이용할 때, CLI는 여러분 대신 필요한 쿠버네티스 API를 호출 오브젝트 명세(spec)와 상태(status) spec을 가진 오브젝트는 오브젝트를 생성할 때 리소스에 원하는 특징(의도한 상태)에 대한 설명을 제공해서 설정한다. status는 오브젝트의 현재 상태 를 기술..

쿠버네티스 기본 개념 (kubernetes conecpt)

개념 쿠버네티스란 무엇인가? 쿠버네티스는 다음을 제공한다. 서비스 디스커버리와 로드 밸런싱: 쿠버네티스는 DNS 이름을 사용하거나 자체 IP 주소를 사용하여 컨테이너를 노출할 수 있다. 컨테이너에 대한 트래픽이 많으면, 쿠버네티스는 네트워크 트래픽을 로드밸런싱하고 배포하여 배포가 안정적으로 이루어질 수 있다. 스토리지 오케스트레이션: 쿠버네티스를 사용하면 로컬 저장소, 공용 클라우드 공급자 등과 같이 원하는 저장소 시스템을 자동으로 탑재 할 수 있다. 자동화된 롤아웃과 롤백: 쿠버네티스를 사용하여 배포된 컨테이너의 원하는 상태를 서술할 수 있으며 현재 상태를 원하는 상태로 설정한 속도에 따라 변경할 수 있다. 예를 들어 쿠버네티스를 자동화해서 배포용 새 컨테이너를 만들고, 기존 컨테이너를 제거하고, 모든..

k8s 문서 - 튜토리얼; 쿠버네티스 기초 학습

https://kubernetes.io/ko/docs/tutorials/kubernetes-basics/ Tutorial: 쿠버네티스 기초 학습 Assumming that minikube is successfully installed Deploying app Create deployment using kubernetes pod는 isolated, private network 되어있기 때문에 proxy를 통해 debug, interact 가능하다. $ minikube start $ kube kubectl create deployment kubernetes-bootcamp --image=gcr.io/google-samples/kubernetes-bootcamp:v1 # starting proxy echo -..

Learn Vimscript The Hard Way - 56. What Now?

What Now? 여기까지 모든 예시와 exercise를 풀었다면 이제 꽤 기본적인 vimscript를 알게 되었을 것이다. 아직 배울 게 많으니 걱정하지 마라 (?) 더 공부하고 싶은 사람들을 위한 몇몇 토픽을 소개한다. Color Schemes 이 책의 앞 장에서 우리는 Potion 파일에 대한 syntax highlighting을 추가하였다. syntax highlighting의 짝은 각 syntax가 어떤 색깔이 될 것인지에 대한 custom color scheme을 만드는 것이다. vim의 color scheme 꽤 직관적이고, 약간은 반복적이다. :help highlight를 읽어보자. 몇몇 built-in coloer scheme을 보고 구조가 어떤지 확인할 수 있을 것이다. 도전할 것을 찾..

tools/vim 2020.05.12

Learn Vimscript The Hard Way - 55. Distribution

distribution 이제 당신은 다른 많은 사람들이 유용하다고 생각갈 만한 빔 플러그인을 만들 수 있는 vimscript skill을 익혔다. 이 챕터는 그 플러그인을 어떻게 올려 다른 사람들이 쉽게 사용할 수 있게 할지에 관해 다룰 것이다. Hosting 가장 먼저 할 일은 플러그인을 온라인에 올려 사람들이 다운로드 할 수 있게 하는 것이다. vim plugin이 사는 canonical place는 vim 웹사이틔의 scritp secion이다 웹사이트를 위해서는 계정이 필요하다. 이는 아주 간단하다. 최근 몇 년 간 플러그인을 배포하는 트렌드는 Bitbucket이나 Github같은 퍼블릭 레파지토리에 배포하는 것이다. 이른 방식이 유행이 된 데에는 두가지 이유가 있다. 먼저 pathogen같은 플..

tools/vim 2020.05.11