Cloud 105

[CKA] 2. pod 란

개요 k8s의 기본 배포 단위이 Pod에 대하여 알아 보겠습니다. Pod란? continer들을 포장한 Object(객체) 입니다. 여기서 Object라고 표현한 이유는 k8s는 항상 목표로 하는 상태를 etcd에서 저장하고 관리하는데, 이 저장되는 단위가 object단위 이기 때문입니다. 그래서 k8s에서는 모든것이 object입니다. Pod 구성 pod는 container를 가질수 있는데 1개 이상의 container를 가질 수 있습니다. 이말은 즉, pod는 2개의 container도 가질 수 있다는 말입니다.단 제약 사항으로 같은 port를 open하는 container는 가질 수 없습니다. 그이유는 pod내의 container들 간의 통신은 localhost로 이루어기 지기 때문에 port가 중..

Cloud/k8s-CKA 2022.11.26

[k8s] k8s 관련 지식

1. k8s가 뭔지 아는가? 1) k8s란? container를 관리하는 ochestration tool 입니다. 2) k8s의 핵심 개념? 쿠버네티스에서 가장 중요한 것은 desired state 라는 개념입니다. desired state란 운영자가 원하는 시스템의 상태를 설정해 놓으면 k8s가 끊임없이 current state를 체크해서 desired state를 맞추는 것입니다. 3) k8s는 desired state를 어떻게 구현하였는가? (1) api-server - kubelet과 kubeproxy의 요청을 처리 합니다. - kube-apiserver는 etcd에 접근할 수 있는 유일한 Component로, K8s 클러스터의 상태를 Key-Value 형식으로 etcd 저장소에 관리 합니다. (..

Cloud/k8s 2022.11.26

[k8s] 2. 네트워크의 종류 및 CNI

개요 k8s의 네트워크 종류에 대하여 살펴 보겠습니다. 네트워크 종류 1. node network master node와 worker node간의 물리적으로 구성된 network를 말합니다. 2. pod network Pod간의 network를 말하며, Pod간의 network는 CNI를 통하여 구현됩니다. CNI의 역활은 pod가 생성/삭제 될 때 마다 IP를 할당 및 제거하는 것입니다. 3. cluster network k8s에서 제공하는 service들을 통해서 이루어지는 network를 말합니다. k8s에서의 network 통신 1. Pod 내부에서의 통신 Pod에는 한개의 IP만 할당이 됩니다. 그렇게 때문에 Pod내부의 container간 통신은 localhost를 사용하여 통신을 합니다 그래..

Cloud/k8s 2022.11.22

[k8s] 1. 네트워크 구현 방식

개요 k8s에서 network 통신이 어떻게 이루어지는 알아 보겠습니다. 핵심원리 k8s는 network namespace라는 기술을 사용하여 network를 분리 합니다. 그리고 분리된 network에 가상의VNIC(Virtual Network Interface Card)를 할 당하고 이를 virtual swich에 연결하는 방식으로 구현이 됩니다. 구성 2개의 물리 서버 4개의 network namespace basic turnnel 구성 script #################################################################### #environment variable ##################################################..

Cloud/k8s 2022.11.19

[급한 k8s] 2. k8s 설치

설치 과정 요약 k8s의 설치 과정은 3개(환경 설정 / container runtime 설치 / CNI 배포) 로 나눠집니다. 1. 환경 설정 아래 두개의 설정은 필수 입니다. 1) 방화벽 해제 2) swappof -a 2. container runtime 설치 k8s가 container를 생성하고 실행하는 것이 아니기 때문에 container runtime을 설치해 주어야 합니다. 1) k8s는 container runtime 별로 설치 방법이 다르기때문에 k8s.io 사이트에서 매번 확인을 하는 것으르 추천 합니다. https://kubernetes.io/docs/setup/production-environment/container-runtimes/ 2) cri-o 설치 가이드 https://www..

Cloud/k8s 2022.11.12

[CKA] 1. k8s가 뭔가?

개요 본 post는 실무에 급히 k8s를 배워서 써먹기 위한 사람을 위한 post 입니다. k8s 뭔가 container를 여러 node(컴퓨터)배포하여 맘대로 관리 하기 위한 도구 입니다. 전문용어로 k8s를 container ochestration(=container 지휘자) 도구 라고 합니다. * container : 특정 program를 실행 하기 위해 program과 실행 환경 까지 함께 묶어 놓은 패키지 * node : 개별 컴퓨터 (있어보이게 "개별 서버") k8s 목적 - 무중단 service - 빠른 sevice 배포 - 장애 최소화 k8s의 동작 핵심 - 끊임 없는 설정의 동기화 - k8s는 system에 배포된 object를 이용하여 k8s system 자체를 배포된 object의 상..

Cloud/k8s-CKA 2022.11.11

[kubernetes] cheat sheet

특정 node 스케쥴링 막기 - kubectl cordon은 지정된 노드에 더이상 포드들이 스케쥴링되서 실행되지 않도록 합니다 1) 설정 #kubectl cordon "node이름" # kubectl get nodes NAME STATUS ROLES AGE VERSION master Ready,SchedulingDisabled control-plane 21h v1.25.2 worker Ready 5h49m v1.25.3 2) 해제 #kubectl uncordon "node이름" 특정 node의 pod를 다르 node로 옮기기 #kubectl drain docker-for-desktop --ignore-daemonsets=true --ignore-daemonsets=true 은 daemonsets이 있어도..

Cloud/k8s 2022.10.14

[kubernetes] kubernetes의 Object

개념 1. 요약 - kubernetes는 cluster의 상태를 표현 하기 위해서 Object라는 것을 사용합니다. - kubernetes는 Object에 명시된 데로 cluster의 상태를 지속적으로 동기화 합니다. - Object는 kubernetes를 구성하는 요소를 의도를 기록해 놓은 것입니다. - Object를 kubernetes에 반영 하기위해서는 kubectl (kubernetes CLI) 를 사용 합니다. 2. 상세 설명 kubernetes Object는 kubernetes시스템에서 영속성을 가지는 Object이다. kubernetes는 클러스터의 상태를 나타내기 위해 이 Object를 이용한다. 구체적으로 말하자면, 다음같이 기술할 수 있다. 어떤 컨테이너화된 애플리케이션이 동작 중인지 ..

Cloud/k8s 2022.08.08

[kubernetes] service, deployment, pod, Loadbalancer 삭제

개요 본 post는 인프런의 "쿠버네티스-쉽게시작"을 기반으로 작성 되었습니다. Service삭제 1. service확인 #kubectl get service 2. service 삭제 #kubectl delete service chk-hn Deployment 삭제 1. deployment 확인 #kubectl get deployments.apps 2. deployment 삭제 #kubectl delete deployments.apps deploy-nginx Pod삭제 1. pod확인 #kubectl get pod 2. pod 삭제 #kubectl delete pod nginx LoadBalancer 삭제 1. 삭제 - 파일을 이용하여 설치 하였으니 파일을 이용하여 삭제 합니다. #kubectl delet..

Cloud/k8s 2022.05.24

[kubernetes] Deployment외부 노출 방법 NodePort, LoadBalancer

개요 본 post는 인프런의 "쿠버네티스-쉽게시작"을 기반으로 작성 되었습니다. Deployment외부 노출 방법인, NodePort와 LoadBalancer를 알아 보겠습니다. NodePort 사용 1. 배포 명령 #kubectl expose deployment deploy-nginx --type=NodePort --port=80 2. 단점 NodePort를 사용하면 외부에서 접속 하기 위해서 실제 Node의 IP와 Port를 알아야하는 번거로움이 생긴다. LoadBalancer 사용 k8s에서 기본적으로 제공하지 않는 type입니다. 그래서 LoadBalancer를 사용하기 위해서는 CNCF에서 제공하는 MetalLB를 사용하겠습니다. 1. 장점 - 외부에 Node의 실제 IP를 노출 할 필요 가 없..

Cloud/k8s 2022.05.23