Cloud/k8s-CKA 52

[CKA] 40. API 그룹과 목적

개요k8s에서 제공하는 apiserver의 api 그룹과 api 사용 시 필요한 인증을 알아보겠습니다. API 그룹k8s에서는 cluster관리를 위해서 다양한 API를 제공합니다. 그리고 이러한 API를 용도에 맞게 분류해 놓았습니다. https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.28/#api-overview Kubernetes API Reference DocsAPI Overview Welcome to the Kubernetes API. You can use the Kubernetes API to read and write Kubernetes resource objects via a Kubernetes API endpoint. Re..

Cloud/k8s-CKA 2023.10.28

[CKA] 39. kubeconfig 구조 분석 및 관리

개요 k8s의 설정 파일인 kubeconfig의 구조 분석 및 필요 성을 알아보겠습니다. 파일의 위치 kubeadmn으로 설치를 하였다면 kubeconfig파일의 위치는 아래와 같습니다. 원본 파일 /etc/kubernetes/admin.conf 복사된 파일 kubectl은 기본적으로 아래 경로에있는 설정 파일을 사용합니다. 그래서 kubeadm로 설치시 마지막에 원본파일을 아래 경로에 복사하게 합니다. $HOME/.kube/config kubeconfig 목적 kubectl이 다양한 사용자 및 cluster의 조합을 사용하여 k8s 접근을 위해서 사용하는 설정 파일입니다. kubeconfig 주요 정보 cluster 연결 정보 제공 cluster의 API 서버 주소 및 CA 인증서 정보를 제공합니다. ..

Cloud/k8s-CKA 2023.10.26

[CKA] 38. k8s에서 사용자 추가 및 권한 제어

개요 k8s에서 사용자를 추가하는 방법을 알아보고 사용자의 권한을 제한하는 방법을 알아보겠습니다. 그럼 사용자를 생성하는 방법부터 시작하겠습니다. 핵심 csr을 이용하여 CertificateSigningRequest를 적용한 후 승인 한다. 이때 csr은 base64로 인코딩된것을 사용한다. 사용자 추가 절차 1. 개인키 생성 2. csr 생성 3. CertificateSigningRequest Object 생성 이때 csr을 base64 로 인코딩한 값을 사용합니다. 4. CertificateSigningRequest Object 승인 승인은 contoller-manager에서 담당합니다. 5. 승인된 CertificateSigningRequest Object에서 승인된 인증서 가져오기 6. 승인된 인..

Cloud/k8s-CKA 2023.10.15

[CKA] 37. k8s에서의 상호 인증 원리

개요 k8s에서 어떻게 상호 인증을 하는지 알아보겠습니다. 사전 필수 지식 [CKA] 35. Security - TLS통신 이해를 위한 PKI 기본 지식 상호 인증 원리 k8s에 있는 여러 service(apiserver, etcd, kubelet ...) 들은 상호 인증을 위해서 인증서와 개인키를 사용합니다. service 별 인증서 아래 그림은 service별 인증서(*.crt) 및 개인키(*. key)를 분리해 놓은 자료입니다. 위 그림에서 모든 인증서 admin.crt, scheduler.crt, controller-manager.crt, kube-proxy.crt 등등은 모두ca.crt 와 ca.key를 사용하여 전자 서명이 되어있습니다. admin.crt 생성 과정 모든 인증서 생성과정은 이름..

Cloud/k8s-CKA 2023.10.13

[CKA] 36. Security - TLS 통신과정

개요 Transport Layer Security로써 L4 Layer위에 올라가는 보안을 위한 통신 Protocol입니다. 원리 Client와 Server간에 "비대칭키를 사용하여 대칭키 암호화 키를 교환한" 후 이후 통신부터는"대칭키를 사용하여 암호화 통신"을 하는 방식으로 Client와 Server 간의 데이터 통신을 보호합니다. 여기서 암호화 통신을 위해서 비대칭키과 대칭키를 사용하는 이유는 아래와 같습니다 비대칭키만 사용하게 되면 "대칭키 암호화 방식에 비해 비대칭 키 암호화는 계산이 복잡하고 느리기 때문에 대량의 데이터를 암호화하거나 복호화하는 데 사용하기에는 부적합합니다." 그래서 대칭키교환을 위해서만 비대칭키를 사용합니다. 검증 환경 구성 목차 TLS 통신을 위한 인증서 생성 인증서를 ngn..

Cloud/k8s-CKA 2023.09.21

[CKA] 35. Security - TLS통신 이해를 위한 PKI 기본 지식

개요k8s의 security를 다루기 위해 기초가 되는 인증서의 생성과정을 알아보겠습니다.목차 순서대로 대칭키과 비대칭키가 무엇이고 왜 필요한지 그리고 비대칭키의 "공개 키"가 PKI에서 어떻게 사용되며 마지막으로 PKI 기반으로 인증서가 어떻게 만들어지는지 까지 알아보겠습니다. 목차1. 대칭키2. 비대칭기3. 개인키 / 공개키 4. PKI대칭키개요암호화와 복호화에 같은 키를 사용하는 방식입니다.장점효율성대칭키 암호화는 비대칭키 암호화에 비해 연산이 빠르며 효율적입니다.단점키 관리대칭키는 둘 이상의 통신 참가자가 동일한 키를 공유해야 합니다. 많은 참가자가 있는 경우 키 관리가 복잡해집니다.키 교환안전한 키 교환 메커니즘이 필요합니다. 중간자가 키를 가로채면 통신이 노출될 수 있습니다.이를 위해서 TLS..

Cloud/k8s-CKA 2023.09.17

[CKA] 34. volume 과 PV 그리고 PVC

개요k8s에서 volume을 어떻게 관리하는지 알아보겠습니다. 본 글에서 k8s에서 volume의 사용법, 그리고 Persistent Volumes과 Persistent Volume Claims 대하여 알아보겠습니다.목차volume 개념volume 사용법Persistent Volumes 개념Persistent Volume Claims 개념volumecontainer의 data를 container가 종료돼도 유지할 수 있게 해주는 기능입니다.Temp 전용 volumeEmptyDirPod가 생성될 때마다 새로운 빈 디렉터리를 생성합니다. Pod 내의 모든 container에서 공유될 수 있습니다apiVersion: v1kind: Podmetadata: name: my-podspec: containers:..

Cloud/k8s-CKA 2023.09.03

[CKA] 33. docker의 volume관리 (volume driver)

개요 docker에서 외부에 저장하고 싶은 data를 어떻게 관리하는지 알아보겠습니다. volume고 bind mount에 대하여 알아보겠습니다. 목차 volume의 목적 docker에서 volume 사용법 bind mount의 목적 bind mount의 사용법 volume과 bind mount의 차이점 volume driver의 역할 volume driver의 종류 volume의 목적 Docker 볼륨 (Volume)은 컨테이너화된 애플리케이션의 데이터를 저장하거나 공유하기 위한 목적으로 사용됩니다 docker에서 volume 사용법 생성 docker volume create my-volume volume 확인 명령어로 확인 docker volume ls 실제 위치 확인 {Docker Root Dir}..

Cloud/k8s-CKA 2023.08.30

[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

[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