kubernetes에서 object란 spec과 status 등의 값을 포함한 파드, 디플로이먼트 등을 부르는 단위이다. Pod 쿠버네티스에서 실행되는 최소 단위 독립적인 공간과 사용 가능한 IP를 가짐 하나의 파드는 1개 이상의 컨테이너를 가지지만 보통 파드 1개당 1개의 컨테이너를 적용 run으로 파드를 생성하면 단일 파드 1개만 생성되고, create deployment로 파드를 생성하면 deployment라는 그룹 내에서 파드가 생성되고 deployment에 의해 파드가 관리된다. [root@m-k8s ~]# kubectl run nginx-pod --image=nginx pod/nginx-pod created [root@m-k8s ~]# kubectl get pod NAME READY STATU..
전체 글
짱이 될 거야kubernetes에서 object란 spec과 status 등의 값을 포함한 파드, 디플로이먼트 등을 부르는 단위이다. Deployment 파드에 기반을 두고 있으며, 레플리카셋 오브젝트를 합친 상태 API 서버와 컨트롤러 매니저는 단순히 파드가 생성되는 것을 감시하는 것이 아니라 디플로이먼트처럼 레플리카셋을 포함하는 오브젝트의 생성 감시 [root@m-k8s ~]# kubectl create deployment dpy-hname --image=sysnet4admin/echo-hname deployment.apps/dpy-hname created [root@m-k8s ~]# kubectl get pod NAME READY STATUS RESTARTS AGE dpy-hname-59778b9bb-7kcz4..
[kubernetes] kubectl 동작 방식 확인 [kubernetes] kubelet 동작 방식 확인 [kubernetes] kube-proxy 동작 방식 확인 kube-proxy 파드의 통신을 담당한다. 이를 증명하기 위해 파드의 통신에 문제를 발생시켜 본다. 가상머신에서 br_netfilter 모듈을 사용해 네트워크를 연결시킨 로컬 클러스터를 사용중이다. [root@m-k8s ~]# kubectl get pod -o wide NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES nginx-pod 1/1 Running 0 5s 172.16.132.2 w3-k8s [root@m-k8s ~]# curl 172.16.132.2 We..
[kubernetes] kubectl 동작 방식 확인 [kubernetes] kubelet 동작 방식 확인 [kubernetes] kube-proxy 동작 방식 확인 kubelet kubelet은 쿠버네티스에서 파드의 생성과 상태 관리 및 복구를 담당한다. kubelet에 문제가 생기면 파드가 정상적으로 관리되지 않는다. [root@m-k8s ~]# kubectl get pods -o wide NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES nginx-pod 1/1 Running 0 16s 172.16.132.4 w3-k8s 마스터 노드에서 pod를 생성한다. pod는 현재 w3-k8s 노드에서 동작 중이다. [root@w3-k..
1. kubectl을 통해 API 서버에 파드 생성 요청 2. 업데이트가 있을 때마다 내용을 API 서버를 통해 etcd에 기록함 3. API 서버에 파드 생성이 요청된 것을 컨트롤러 매니저가 인지하면 컨트롤러 매니저가 파드를 생성하고 상태를 API 서버에 전달, 어떤 워커 노드에 파드를 적용할지는 결정되지 않은 채로 파드만 생성 4. API 서버에 파드가 생성됐다는 정보를 스케줄러가 인지, 스케줄러는 생성된 파드를 어떤 워커 노드에 적용할지 조건을 고려해 결정, 해당 워커 노드에 파드를 띄우도록 요청 5. API 서버에 전달된 정보대로 지정한 워커 노드에 파드가 속해 있는지 스케줄러가 kubelet으로 확인 6. kubelet에서 컨테이너 런타임으로 파드 생성 요청 7. 파드 생성 8. 파드가 사용 가..
[kubernetes] kubectl 동작 방식 확인 [kubernetes] kubelet 동작 방식 확인 [kubernetes] kube-proxy 동작 방식 확인 kubectl 쿠버네티스 클러스터에 명령을 내리는 역할 다른 구성 요소들과 다르게 바로 실행되는 명령 형태인 바이너리로 배포되기 때문에 마스터 노드에 있을 필요는 없음 [vagrant@w3-k8s ~]$ kubectl get nodes The connection to the server localhost:8080 was refused - did you specify the right host or port? 클러스터의 정보가 저장되지 않은 워커 노드에서 클러스터의 정보를 가져오려고 시도할 경우 실패한다. kubectl이 어떤 노드에 있더라도..
마스터 노드 0. kubectl 쿠버네티스 클러스터에 명령을 내리는 역할 다른 구성 요소들과 다르게 바로 실행되는 명령 형태인 바이너리로 배포되기 때문에 마스터 노드에 있을 필요는 없음 1. API 서버 쿠버네티스 클러스터의 중심 역할을 하는 통로(백본처럼) 2. etcd 구성 요소들의 상태 값이 key-value형태로 저장되는 곳 etcd를 제외한 다른 구성 요소들은 상태 값을 따로 관리하지 않음 따라서 etcd의 정보만 백업되어 있으면 클러스터 복구 가능 key-value는 분산 저장이 가능하여 복제해 여러 곳에 저장하면 한 곳에서 장애가 발생해도 시스템의 가용성 확보 가능 리눅스의 구성정보를 가지는 etc 디렉터리 + distributed 3. 컨트롤러 매니저 클러스터의 오브젝트 상태 관리 노드 컨..
VirtualBox를 실행하던 중 다음과 같은 에러가 발생했다. 찾아보니 윈도우 관련 문제같은데, 해결방법은 간단하다. There was an error while executing `VBoxManage`, a CLI used by Vagrant for controlling VirtualBox. The command and stderr is shown below. Command: ["startvm", "2124a378-b53a-4e4e-90ce-dda35a160461", "--type", "headless"] Stderr: VBoxManage.exe: error: Failed to open/create the internal network 'HostInterfaceNetworking-VirtualBox ..
Node.js 설치 https://nodejs.org/ko Node.js Node.js® is a JavaScript runtime built on Chrome's V8 JavaScript engine. nodejs.org 안정화버전으로 다운받았다. 다 Next 해서 설치 Finish 하고 cmd에서 node가 동작하는지 확인한다. Node.js 실행 방법 두 가지 REPL Read: Read User Input Eval: Evaluate User Input Print: Print Output(Result) Loop: Wait for new Input REPL 방식을 사용하면 코드가 파일로 저장되지 않고 한 줄씩 작성한다. 따로 저장되지 않기 때문에 시험용으로 사용하기에 좋다. 파일 실행 코드를 미리 작..
기본 Vagrantfile # -*- mode: ruby -*- # 파일이 루비임을 인식하게 하는 호환 코드 # vi: set ft=ruby : # ft = file type Vagrant.configure("2") do |config| # API version=2 # vagrant config 시작 config.vm.define "m-k8s" do |cfg| # 가상머신 이름을 m-k8s로 정의하고 config 시작 config.vm.box = "sysnet4admin/CentOS-k8s" # cfg 내용들을 box에 저장 cfg.vm.provider "virtualbox" do |vb| # virtual box에서 필요한 cfg 시작 vb.name = "m-k8s(github_SysNet4Admin)..