ConfigMap and Secret
·
Kubernetes
ConfigMap과 Secret이란?ConfigMap 과 Secret은 쿠버네티스에서 Pod에 동적으로 환경변수를 제공하거나, 설정 파일을 전달하기 위한 리소스라고 할 수 있다. 이 두 리소스는 애플리케이션 설정 값이나 보안 자격증명을 분리해 관리하기 위해 사용된다. 얘네는 PVC와 같은 레벨의 스토리지에 해당하기 때문에 미리 준비시키는게 아니라 쓰는 입장에서 가상으로 준비된다ConfigMap📌목적비밀정보가 아닌 애플리케이션의 환경설정 데이터(DB 위치, API key)를 Pod에 전달하기 위해서이다.📌특징암호화 없이 평문으로 저장된다. 그리고 etcd에 Key:Value 형식으로 저장된다. 뭐 예시라고 한다면 Pod의 환경변수로 참조, 파일 형태로 마운트 이런 사용 예시가 있다.📌활용 예시Mong..
K8S API Server
·
Kubernetes
K8s API Server 개요일단 API Server라고 한다면 우리가 클러스터와 상호작용하기 위한 모든 요청을 처리하는 핵심 컴포넌트라고 할 수 있다. 사용자가 kubectl 명령을 입력하거나, 클러스터 내의 Pod가 네트워크 요청을 보낼 때 모든 요청은 다 API Server로 들어가게 된다. 여기서 3단계 프로세스를 통해서 요청이 처리된다. 이 3단계 프로세스는 다 플러그인이라서 설치해서 쓰는 거다. (minikube나 k3s 에는 없다)자 그림을 한 번 살펴보자.Authentication너 누구야? 를 확인하는 단계이다. 사용자나 Pod가 요청을 보낼 때, 자신이 누구인지를 증명해야 한다.사용자: 아이디, 패스워드로 인증Pod: ServiceAccount와 연결된 JWT 토큰을 통해 인증Pod는..
Resource 중간정리
·
Kubernetes
지금까지 배운 내용을 간단하게 요약해보고, 앞으로 배울 내용을 정리해보는 중간 점검시간을 가져보자.지금까지 배운 것일반 Pod 리소스를 통한 Container를 K8S Cluster에 deploy하기였다. Pod 리소스를 생성할 때 우리는 여태까지 **deployment**라는 리소스를 생성시키는 방법을 사용하였다.그리고 여기에 추가적으로 컨테이너에 스토리지를 마운트시키는 작업을 진행했다. Volume을 만들기 위해 PV 리소스를 생성시켜 준비하고,(인프라엔지니어가 하는 일) 이를 추상화해서 사용하기 위해 PVC 리소스를 생성했고, pod가 이용할 수 있게 deployment resource에 반영했다.또한 일반정보 또는 중요정보를 컨테이너를 통해 실행되는 프로그램에서 이용할 수 있게 하고자 ETCD를 ..
volume(emptyDir&hostPath)
·
Kubernetes
emptyDir and hostPathemptyDir: pod 내에서 컨테이너들이 데이터를 공유하고 서로 readwrite할 수 있게 만든 “임시”저장소, pod가 사라지면 볼륨도 사라지기 때문에 임시저장소임hostPath: pod내에 볼륨을 만드는 것이 아닌 노드의 파일시스템을 볼륨으로 만들어서 이걸 pod에 mount시켜주는 것. pod의 lifecycle을 따르지 않음emptyDir다음과 같이 emptyDir.yaml 작성해준다.vi emptyDir.yamlapiVersion: v1kind: Podmetadata: name: test-podspec: containers: - name: container1 image: kubetm/init volumeMounts: ..
Kubernetes Volumes
·
Kubernetes
기초용어Drive: 저장장치Volume: 논리적인 저장장치 ex. Window의 C:, D:, 독자적인 단일 스토리지 영역볼륨은 논리적인 저장장치라고 할 수 있음. 우리는 볼륨을 가지고 뭘할거냐?pod를 보면 스토리지 관련된게 있었지만 이게 어떻게 설치된건지 몰랐음. 포드 안에 볼륨 없이 그냥 웹서버로 기초적으로 deploy를 했지만 실제 포드는 스토리지 기능이 묶여져있다. 볼륨을 붙여준다. Mount Volume이라고 부름. 우린 이 방법에 대해 학습할 거임즉 pod에 스토리지를 붙이는 것을 배운다.How to persist data in Kubernetes using volumes? 🧩kubernetes.io 가서 좀 모르는 개념들을 찾아보기!‼️ Documentation에 모든 문서들이 다 들어가..
Kubectl
·
Kubernetes
1. kubectl이란?kubectl은 Kubernetes 클러스터를 제어하기 위한 명령줄 도구야.Kubernetes 클러스터 안에서 자원을 만들고 수정하거나, 삭제하고 상태를 확인하는 등의 작업을 할 수 있어.주로 다음과 같은 기능을 수행해:Kubernetes 리소스에 대한 설정 변경 적용.실행 중인 컨테이너에 접속하거나 명령어를 전달.로그 확인 및 특정 이미지를 클러스터에 배포.2. kubectl의 동작 원리kubectl은 사용자가 입력한 명령어를 Kubernetes API 서버로 전달하고, 해당 요청을 처리한 결과를 받아와서 출력해. 이를 통해 사용자는 Kubernetes 클러스터 안에서 원하는 작업을 수행할 수 있어.3. 기본 개념 재확인Deployment: Kubernetes에서 애플리케이션을 ..
Kubernetes의 Networking과 Service
·
Kubernetes
Private IP와 Public IPprivate IP: 로컬 네트워크 내에서만 유효하고 외부 인터넷에서 직접 접근할 수 없다.(NAT를 통해 public IP로 전환해야함)public IP: 인터넷 상에서 고유하게 식별되며, 외부에서 직접 접근할 수 있다.⭐️ 쿠버네티스 같은 환경에서는 내부 네트워크에서 private IP를 사용하지만, 외부 네트워크로의 접근은 public IP를 통해 이루어진다!!!Container Network NamespaceNetwork Namespace를 통해서 고립성을 보장한다. 서로 다른 네임스페이스의 파드들은 소통하기 위해서 bridge를 사용한다.Kubernetes Network Basic 📢핵심만 말하면 쿠버네티스는 NAT를 쓰지 않음!!!모든 컨테이너는 NAT ..
Application Deployment
·
Kubernetes
배포방법pod 타입으로 배포ReplicaSet 타입으로 배포: 실행되는 pod개수를 지정한만큼 항상 실행될 수 있게한다.Deployment 타입으로 배포: 우리가 흔히 사용한다. replicaset resource를 생성시키고 그 후 생성된 replicaset resource 정보에 따라 pod resource가 해당 개수만큼 생성되어 최종적으로 실제 pod가 생성되게 한다.Pod 타입으로 배포내피셜이긴한데 2개가 있는듯? 물론 더 있을 수도 있어.Run 명령어를 이용하여 pod 배포하기kubectl run [pod name] --image=[container image name] --port=[port number]이렇게 입력한다. 근데 쿠버네티스에서 pod는 기본적으로 IP주소를 가지고 있어야 통신을..
코코자
'분류 전체보기' 카테고리의 글 목록