전체 글 463

[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 Docs API Overview Welcome to the Kubernetes API. You can use the Kubernetes API to read and write Kubernetes resource objects via a Kubernetes API endpoint...

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 대칭키 개요 암호화와 복호화에 같은 키를 사용하는 방식입니다. 장점 효율성 대칭키 암호화는 비대칭키 암호화에 비해 연산이 빠르며 효율적입니다. 단점 키 관리 대칭키는 둘 이상의 통신 참가자가 동일한 키를 공유해야 합니다. 많은 참가자가 있는 경우 키 관리가 복잡해집니다. 키 교환 안전한 키 교환 메커니즘이 필요합니다. 중간자가 키를 가로채면 통신이 노출될 수..

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 개념 volume container의 data를 container가 종료돼도 유지할 수 있게 해주는 기능입니다. Temp 전용 volume EmptyDir Pod가 생성될 때마다 새로운 빈 디렉터리를 생성합니다. Pod 내의 모든 container에서 공유될 수 있습니다 apiVersion: v1 kind: Pod metadata: name: my-pod spec..

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

[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로 선언된 객체의 프로퍼티..