전체 글 464

[javascript] 변수 형식 정리(var, let ,const)

개요 var, let, 그리고 const는 JavaScript (및 Node.js)에서 변수를 선언할 때 사용하는 키워드들입니다. 이들의 주요 차이점을 아래에 정리하였습니다: Scope (범위): var Function scope입니다. 즉, 변수는 선언된 함수 내에서 액세스할 수 있습니다. 함수 외부에서 선언된 경우 전역 범위를 갖습니다. let과 const Block scope입니다. 즉, 중괄호 {} (예: if 문, for 루프 등) 내에서 선언된 변수는 해당 블록 내에서만 액세스할 수 있습니다. Reassignment (재할당): - var와 let: 변수에 새로운 값을 재할당할 수 있습니다. - const: 한 번 값을 할당하면 재할당할 수 없습니다. 그러나 const로 선언된 객체의 프로퍼티..

[CKA] 32. docker의 image layer관리 (storage driver)

개요 docker를 기반으로 container image구조 및 container image가 어떻게 관리되고 image layer의 실제 정보를 어디에 존재하는지 알아보겠습니다. 목차 container 구조 image layer 관리 image layer의 실제 위치 image layer 관리 ID 관계 정리 image layer의 ID 간 관계 검증 image layer의 실제 파일 위치 검증 container 구조 우선 container의 구조를 살짝 보겠습니다. container는 image laygers + container layer 구조로 되어있습니다. 아래 그림은 docker 공식 site에 가면 나와있는 그림입니다. https://docs.docker.com/storage/storaged..

Cloud/k8s-CKA 2023.08.15

[docker] docker registry-image 서버 구축

개요 docker image는 저장 관리 해주는 사설 private registgry 구축 해보겠습니다. 구성 registry : docker image를 보관하는 용도 joxit/docker-registry-ui : registry를 web에서 볼수 있게 해주는 UI 실행 아래 site에서 "Recommended Docker Registry Usage" 부분을 찾아서 image를 push 가능하게 설명하면 하면 끝입니다. https://hub.docker.com/r/joxit/docker-registry-ui Docker hub.docker.com docker-compose.yaml 수정 버전 docker registery에 push 하기위해서 registry-server에 docker registry..

Cloud/Docker 2023.08.10

[CKA] 31. service - plugin

개요 k8s에서 지원하지 않는 service인 LoadBalancer와 ingress를 알아보겠습니다. Loadbalancer 목적 NodePort로는 해결할 수 없는 단일 URL를 사용하여 Pod를 외부로 노출하고 싶을 때 사용합니다. Loadbalancer - Metal Lb 설치 개요 Loadbalancer의 목적은 service에 external ip를 할당하는 것입니다. 여기서 external ip는 어느 곳에서도 사용하지 않으면서 외부와 통신이 가능한 IP여야 합니다. 그러나 k8s에서는 기본적으로 loadbalancer를 제공하지 않고 있기 때문에 plug-in을 따로 설치해야 합니다. 여러 가지 plugin 중 CNCF에서 제일 유명한 것이 metal lb입니다. 그래서 우리는 이걸 설치할..

Cloud/k8s-CKA 2023.07.27

[CKA] 30. CoreDNS

개요 kubernetes에서 DNS가 어떻게 동작하는지 알아보겠습니다. DNS Record 할당 범위 k8s에서는 Service와 POD를 위해서 DNS Record를 생성합니다. Core DNS의 동작 범위 Core DNS Record 규칙 전체 그림 DNS Recor설정 상세 Service가 생성되면 CoreDNS에 아래와 같은 DNS Record가 자동으로 생성이 됩니다. 그래서 DNS Record 덕분에 namespace를 분리하면 동일한 이름의 service를 생성 가능 합니다. 첫 번째 줄을 풀어서 설명하면 web-service는 apps라는 namespace에 있고 type은 svc(service)이고 cluster.local에 존재하며 IP를 10.107.37.188이라고 해석을 할 수 있..

Cloud/k8s-CKA 2023.07.25

[CKA] - network 문제 해결 tip

node가 속한 network range 찾기 1. kubectl get node -o wide 로 internal IP 확인 2. ifconfig로 internal ip 확인 및 대역대 확인 POD를 위해서 사용되는 IP 대역대 찾기 1. cni 의 log 확인 #kubectl logs -n kube-system 2. ipalloc-rage 에서 POD의 ip 대역대 확인 service를 위한 IP 대역대 찾기 1. kube-apiserver.yaml에서 확인 가능 #cat /etc/kubernetes/manifests/kube-apiserver.yaml 2. - --service-cluster-ip-range 항목으로 확인 - --service-cluster-ip-range=10.96.0.0/12 k..

Cloud/k8s-CKA 2023.07.25

[CKA] 29. service - default

개요 k8s에서 service의 개념이 무엇인지 알아보고 어떻게 구현이 되는지 알아보겠습니다. Serivce란? pod들을 Network에 노출시키는 Object입니다. 그리고 개념적으로 virtual server와 비슷하다고 생각하면 더 쉽게 이해할 수 있습니다. 이를 그림으로 표현하면 아래와 같습니다. Service 영향 범위 service의 설정은 cluster 전체에 적용이 됩니다. 그래서 cluster node 어디서나 접근이 가능합니다. Service 종류 크게 2개의 분류로 나눠지고 각 분류 별로 4개 및 2개의 종류가 존재합니다. 분류방식은 k8s에서 기본 제공 하는 Default Service와 plugin으로 제공되는 Service로 구분이 됩니다. 이는 공식적인 것은 아니고 제가 생각..

Cloud/k8s-CKA 2023.07.23

[program의 삶] 1. program이 process가 되는 과정

개요 여러분은 program과 process의 차이를 아시나요? program이란? 저장소(HDD, SSD)등에 존재하는 Code들의 덩어리를 말합니다. Process란? Code 덩이가 Memory에 올라가면 Process라고 합니다. 어떻게 Memory 올라가는가? program은 어떻게 memory에 올라가는가가 궁금해질 수 있습니다. "program은 관리를 위해서 여러 section으로 나눠져 있고 운영체제에 의해서 memory에 복사되어 올라갑니다." 결론적으로 program이 process가 되는 과정을 알기 위해서는 program의 section 구조와 각 section이 memory에 어떻게 mapping 되어서 cpu의 관리는 받는지입니다. 그래서 우리는 제일 먼저 program의 se..

[CKA] 28. Pod의 Networking 과 Weave CNI

개요 k8s에서 Pod 간에 networking이 어떻게 구성이 되는지 알아보겠습니다. Pod의 Networking 구성의 핵심 Pod 간의 Networking의 구성은 [CKA] 24. k8s network를 위한 기초에서 배웠던 기술에 Overlay Network 기술을 합치면 완성이 됩니다. [CKA] 24. k8s network를 위한 기초에서는 단일 node안에서 container가 아래의 3개의 기술을 사용하여 통신 가능하다는 것을 배웠습니다. ip link container를 bride에 연결하기 위해서 사용 bridge container을 연결하는 용도 ip route 내부 container 간의 통신 의해서 사용 iptables의 masquerade 외부 통신을 위햇 사용 Overlay ..

Cloud/k8s-CKA 2023.07.20