2023/07 15

[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

[CKA] 27. CNI란?

개요 CNI(Container Network Interface)가 무엇인지 알아보겠습니다. CNI 정의 Container 간의 networking을 구현을 어떻게 구현할지를 표준화한 것입니다. CNI의 필요 이유 container들이 networking을 하기 위해서 하기 위해서 필요한 사항이 모두 개별적으로 개발이 된다면 container 들간의 network 통신은 거의 불가능할 것입니다. 그래서 이를 편하게 하기 위해서 공통사항을 표준으로 정리한 것이 CNI입니다. 아래 그림은 각종 오케스트레이션 도구에서 CNI를 어떻게 구현하는지 간단한 절차를 설명 한 것입니다. CNI 동작 방식 CNI를 기반으로 하여 만들어진 Plugin은 container runtime에 의해 호출된 binary 파일의 실행..

Cloud/k8s-CKA 2023.07.16

[DNS] ubuntu 22.04에 DNS서버 구축 하기

개요 DNS 서버를 ubunu 22.04에 구축 해보겠습니다. 설치 tool DNS 서버를 설정하려면 BIND (Berkeley Internet Name Domain)와 같은 DNS 소프트웨어를 설치하고 구성해야 합니다. 설치 sudo apt update sudo apt install bind9 bind9utils bind9-doc 사전 설정 관리하지 않는 domain을 google DNS에 물어보기 위해서 다음과 같을 설정을 하겠습니다. allow-query : 허용 IP 처리 recursion : DNS 실패시 재귀처리 설정 forwarders : DNS 실패시 DNS를 물어볼 다른 DNS Server 설정 dnssec-validation no; 사설 dns와 또 연동시에는 이걸 no로 설정해야 정상..

서버 구축 2023.07.15