# kubernetes

[CKA] CKA 시험 후기 및 Tips!
1) 체크인 체크인 과정 : pc setting 점검 → 본인인증할 수 있는 신분증 촬영 (한국국적을 인증 필요하기 땜누에 여권 준비 권장) → 본인 얼굴 촬영 → 책상 위, 아래, 시험 장소 내부 확인, 녹화 → 주의 사항 숙지 후 시험 시작 시험은 PSI Bridge Secure Browser 이라는 프로그램을 설치한 후, 설치된 VM 내부 환경에서 진행됩니다. 시험 30분 전에 시험 환경에 입장할 수 있는 버튼이 나타난다. 시험 환경에 입장하여 시험에 필요한 프로그램을 설치하고 실행하면 잠시 후 시험관과 연결됩니다. 시험 시간 15분 전까지 입실하면 되지만, 시험 전 점검에 시간이 많이 소요되므로 30분 전에 입실하여 환경을 점검하는 것을 추천합니다. 책상 위, 아래, 주변 환경, 휴대폰 위치 등을 감독관에게 보여줘야 하기 때문에 웹캠을 미리 준비하는 것이 좋습니다. 귀, 손목 등에 전자기기 착용을 금지하기 때문에

Kubeflow On-prem 세팅
회사 서버망에 kubeflow를 세팅하기 위한 기나긴 삽질의 여정을 기록 minikube를 이용한 세팅(사용x) minikube를 사용하여 kubernetes cluster를 생성한다. https://github.com/kubeflow/manifests 에서 manual install https://github.com/kubeflow/manifests 의 리드미에 설치 관련된 더 자세한 정보들이 적혀있다. 리드미에서 하라는 대로 확인해보자. Error가 난 pod 없이 다 제대로 돌아가면 된 것인데 여기까지 하고 보니 minikube에서 docker driver 쓰면 호스트 gpu를 못 쓴다카네.. 아니 gpu없이 어떻게 학습을 하란 말이오 그래서 으로 했는데 뭔 설정이 꼬인

Pod HealthCheck
probe에 대해 공부한 내용을 정리한 글입니다. 쿠버네티스 실제로 사용한 적이 없으므로 최대한 하나씩 공부중입니다. 참고해주세요 > 가능하면 쿠버네티스 공식 홈페이지(https://kubernetes.io/)를 참고하여 진행하였습니다. 또한, 마스터 노드1, 워커노드 2로 실습 진행하였습니다. 🤣🤩😊CKA 자격증 준비 및 쿠버네티스 공부 정리입니다. 이번 포스팅은 쿠버네티스 안내서 subicura를 참고하며 작성합니다.
Kubernetes Pod 생성 과정
Pod 생성 과정 관리자가 kubectl 명령어로 Pod 생성을 요청한다. 요청은 API Server를 통해 Control-Plane에 전달된다. etcd에 저장된 메타데이터를 Scheduler에게 전달한다. Scheduler는 메타데이터를 읽어 Pod가 생성되기 적합한 Node를 선정한다. API Server를 통해 각 노드의 kubelet에 Pod 생성 명령을 전달한다. Node의 kubelet은 요청 받은 container image를 docker 등 container engine에게 생성하도록 전달한다. container engine에서는 image hub(registry 또는 repository)에 저장된 container image를 불러와(Pull) Node의 저장 공간에 저장한 후, Pod를 생성한다. Pod 수 유지 과정 Control-Plane의 Controller는 관리자가 요

쿠버네티스를 왜 알아야 하나요?
서론 > 쿠버네티스에 대해 랩실 사람들에게 소개할 일이 생겼었습니다. 하지만, 서버, 네트워크 쪽에 사람들은 관심이 크게 없었고 그에 대한 배경도 무후한 상태였습니다. 저도 자세하게는 몰랐기 때문에 ppt로 발표하면서 공부했던 내용을 기록하려고 합니다. 가상화? 여기 한 대의 컴퓨터가 존재합니다. 한 컴퓨터에 다양한 프로그램들을 설치하게 되었습니다. 모든 프로그램을 실행시킨다면, 컴퓨터의 자원은 한정적이기 때문에 성능이 저하될 수 있고 심각하게는 시스템에 이상이 생길 수 있게됩니다. 우리는 컴퓨터를 한

쿠버네티스 환경에서 nodejs 어플리케이션 배포해보기
nodejs 설치 우선, nodejs 어플리케이션을 배포하기 위해선, docker, nodejs가 설치되어있어야 한다. docker 설치 nodejs 설치 nodejs 공식홈페이지 원래는 linux binarycode로 최신버전인 v18.18.0 버전으로 다운을 받아서 진행을 해보았지만, 이런 에러가 발생해서 알아보았다. [참고자료](https://www.pabburi.co.kr/content/javascrip
K8S Install with Kubeadm
purpose To summerize How to install k8s with kubeadm on ubuntu It refer from below: k8s install: https://kubernetes.io/ko/docs/setup/production-environment/tools/kubeadm/install-kubeadm/ Runtime(crio): https://github.com/cri-o/cri-o/blob/main/install.md cni install: https://docs.tigera.io/calico/latest/getting-started/kubernetes/self-managed-onprem/onpremises prerequistes net.ipv4.ip_forward=1 ` kubectl install First install the kubectl, kubeadm, kubelet for using kubernete

[Kubernetes] Concept
🧭 쿠버네티스 공식 문서 https://kubernetes.io/docs/home/ ☸️ 쿠버네티스(kubernetes)란? 컨테이너화된 애플리케이션의 배포, 확장, 관리를 자동화하기 위한 오픈 소스 컨테이너 오케스트레이션 엔진 리눅스 재단 산하의 CNCF(Cloud Native Computing Foundation)에서 호스팅하는 프로젝트

[K8s] VirtualBox에서 VM 기반의 Kubernetes 클러스터 구축
실무과정에서 VirtualBox의 VM기반 환경에서 Kubernetes 클러스터를 구축할 때 겪었던 경험, 과정을 StackOverflow나, 공식문서, 여러 블로그들을 바탕으로 가이드를 작성합니다. Kubernetes 클러스터를 구축하기 위해서 VM을 4개를 생성하여 1대, 3대로 구성했습니다 `kubeadm과 kubelet, kubectl`에 대한 기본적인 이해도가 있으면 해당 가이드의 난이도가 쉬워집니다. > #### 목차 Container Runtime 설치 (Master & Worker Node) Kubernetes 구성 패키지 설치 (Master & Worker Node) Master Node Control Plane 구성 Worker Node 클러스터 Join K8s 클러스터 구축 Kubernetes 클러스터 구축 과정을 진행한 VirtualBox와 VM 환경은 다음과 같습니다. Ubunt
[Kubernetes] crictl과 ctr로 컨테이너 이미지 다루기 (+ 내보내기/가져오기)
Kubernetes는 가장 널리 사용되는 컨테이너 오케스트레이션 플랫폼 중 하나이며 Kubernetes v1.24부터는 docker-shim 지원이 중단됨에 따라 CRI(Container Runtime Interface)를 통한 컨테이너 제어가 필수가 되었다. 이 글에서는 crictl 및 ctr을 사용하여 컨테이너 이미지를 내보내고 가져오는 방법에 대해 설명한다. 기본 개념 컨테이너 이미지 내보내기 및 가져오기에 대해 자세히 알아보기 전에 먼저 CRI, crictl 및 ctr과 관련된 몇 가지 기본 개념에 대해 살펴본다. CRI(Container Runtime Interface)는 Kubernetes가 Docker, CRI-O 및 containerd와 같은 컨테이너 런타임과 통신할 수 있도록 하는 인터페이스 입니다. 이미지 관리, 컨테이너 수명 주기 관리 및 네트워크 구성을 포함하여 컨테이너 런타임 작업을 위한 표준화된 인터페이스를 제공한다. crictl은 CRI 호환

주식회사 엔아이 개발팀 시작
서버 관제 2년에 풀스택 개발자 3년차에 스타트업 팀장으로 들어와 개발팀을 처음 꾸리면서 어떤 기술을 사용하고 어떻게 개발을 진행해 나갈 것인지 고민하면서 생각한 것들을 정리할 예정 1. 개발 환경 세팅 github, aws(ec2,eks,ecr,s3), github action ,watchtower 2. 사용 툴 vscode, github coplit, figma , notion... 이외 google docs로 공유 및 정리 3. 사용할 수 있는 기술 프론트 - react, next, storybook  Injection 제거 enabled 상태에서 pods을 recreate 시키면 envoy가 injection 됨

[Kubernetes] API Server 에 SAN(Subject Alternative Name)추가
클라우드에 KubeSpray로 구축한 클러스트를 로컬 PC에서 접근하여 사용하려고 하는중에 문제 발생 ~/.kube 하위에 config 값을 로컬 PC에 붙여넣어 두니 연결은 잘 되었다 그러나 kubectl 명령어를 칠 때마다 라고 에러가 뜸 이런식으로 인증을 skip하는 형식으로 하면 잘 됨 이런 경우엔 클러스터 API 서버의 인증서에 PublicIp가 등록되어 있지 않아서 발생하는 이슈이다. 내용을 보면 x509v3 Subject Alternative Name에 등록되어 있는 IP 중 Public

[쿠버네티스] - Deployment
[ 개요 ] 시간이 지남에 따라 어플리케이션 버전 관리 필요 -> 은 어플리케이션 업데이트에 관한 기능을 제공하지 않는다. 이를 해결하기위해 사용하는 것이 [ Deployment ] 와 에 대한 선언적 업데이트를 제공한다. 의 상위 개념으로, 와 에 대한 배포를 관리한다. -> 즉, 롤백하거나 특정 버전으로 돌아갈 수 있는 기능을 제공한다. [ Deployment Update ] 는 다양한 방식의 배포 전략이 있다. Rolling Update (Default) > 설명 : 기존 버전 Pod을 하나씩 삭제하고 새로운 버전 Pod 생성, 순차적(점진적) 교체 장점 다운타임 발생 안함 구버전의 환경을 재활용하거나 롤백하기 쉬움 단점 기존 버전의 Pod과 새로운 버전의 Pod 공존하는 시간 발생 사용중인 인스턴스에 트래픽이 몰리는 문제 가능성 존재 버전 호환성 문제 가능성 존재 Recreate > 설명
Letsencrypt 인증서 발급받기
Let’s Encrypt라는 비영리 기관을 통해 루트 도메인, 서브 도메인, 와일드 카드 도메인까지 무료로 발급 받을수 있음. 인증서 발급을 위해 certbot을 사용함. 참고 - https://www.vompressor.com/tls1/ 3가지 방법 1. Standalone - 가상 웹서버를 가동하여 도메인소유주 확인 certbot이 인증서를 발급할때 도메인의 소유주를 확인하기 위해 80 Port를 사용하는 간이 웹서버를 가동함. 80, 443 port 개방되어 있어야 함 자동 갱신 가능 와일드카드 서브도메인 불가 도메인이 자신의 서버에 연결되어야 함.(A record) 도메인 입력시 여러개를 space로 구분하여 입력할 수 있음. 2. webroot - 자신의 웹서버가 제공하는 특정 파일로 도메인 소유주 확인 certbot이 서버의 웹서버에 특정 파일을 요청하여 인증함. 인증에 사용할 특정 폴더를 만들고 .wel

Service
Service에 대해 공부한 내용을 정리한 글입니다. > 쿠버네티스 공식 홈페이지 - Service and Expose (https://kubernetes.io/docs/concepts/services-networking/service/)를 참고하여 진행하였습니다. 또한, 마스터 노드1, 워커노드 2로 실습 진행하였습니다. 🤣🤩😊CKA 자격증 준비 및 쿠버네티스 공부 정리입니다. 1. Service > Kubernetes에서 서비스는 하나 이상의 서비스로 실행되는 네트워크 애플리케이션을 노출하는 방법입니다. 
쿠버네티스 용어 정리집 > Upstream 업스트림 쿠버네티스 업스트림 : 코어 쿠버네티스(포크된 저장소) : 쿠버네티스 커뮤니티에서는 해당 단어를 주로, 보편 생태계, 다른 코드, 서드파티 도구에 의존하는 '코어 쿠버네티스 코드베이스'를 의미한다, git이랑 반대! git에서는 원본소스 저장소를 업스트림이라고 하고, 포크된 저장소는 다운스트림이라고 부름!! > k3d : 도커 컨테이너에 k3s가 설치되어 쿠버네티스를 구축하는 형태 > k3s : 쿠버네티스 경량화된 버전 : etcd 관리 필요없음 > microk8s : 우분투 사용자를 위한 Canonical에서 제공하는 쿠버네티스 배포판 추후 지속적으로 추가 예정!

Docker(도커)와 Kubernetes(쿠버네티스)
1. 애플리케이션 실행(배포) 환경의 변화 Traditional Deployment(전통적 배포) 물리적인 컴퓨터 한 대에 하나의 OS를 깔고 여러 가지 프로그램을 설치하는 방식이다. PC 한 대에 윈도우를 하나 설치하고, 여러 가지 프로그램을 깔아서 사용하는 방식이라고 생각하면 된다. 가장 오래되고 단순한 방식이다. 하지만 한 대의 컴퓨터에서 모든 것을 처리하려고 하면 어떤 프로그램 동작이 다른 프로그램의 동작을 간섭하거나, 특정 프로그램이 성능을 독점할 경우 또 다른 프로그램의 성능이 떨어지는 단점이 있다. 성능
kubernetes shell-operator
1. 개요 BM이나 VM에 kubernetes 관리 tool로 사용되는 kubesphere(https://kubesphere.io)를 설치 tool로 사용되는 ks-installer(https://github.com/kubesphere/ks-installer) 의 기능을 확인하던 중에, shell-operator를 사용하여 kubesphere workload를 operator로 처리하는 부분이 있어서 분석해 본다. shell-operator(https://github.com/flant/shell-operator)는 "A tool for running event-driven scripts in a Kubernetes cluster", 즉 k8s event에 동작하는 shell script를 실행한다. 2. Hooks Hook은 kubernetes event를 받았을 경우 실행되는 bash script 또는 실행파일이다. shell-operator가 최초