본문 바로가기
728x90

분류 전체보기54

[11] 쿠버네티스 ConfigMap & Secret 보통 애플리케이션을 배포하면 하나의 환경에서만 배포하는 것이 아니라 여러 환경에서 배포를 하게 될 수도 있다. 그러면 환경마다 달라지는 것들이 있는데, 이런 것들을 보통 환경변수나 설정 파일 등으로 관리한다. 쿠버네티스에서는 이런 환경변수나 설정 파일 등을 저장하는 용도로 ConfigMap과 Secret을 제공해준다. ConfigMap ConfigMap은 Key-value 쌍의 형태로 데이터를 저장하는 데 사용하는 쿠버네티스 오브젝트이다. 보통 ConfigMap에 저장된 값을 파드에서 사용하는데, 파드의 환경변수에 ConfigMap의 값을 바인딩하거나 ConfigMap으로 파드 볼륨을 생성하여 볼륨 마운팅을 통해 파드 내부에서 파일의 형태로 ConfigMap을 사용할수도 있다. 선언 및 생성 Config.. 2023. 8. 27.
[2] 쿠버네티스 클러스터 설치 쿠버네티스 클러스터 설치 쿠버네티스 클러스터는 물리머신이나 가상머신에 모두 설치할 수 있다. 설치 방법은 여러가지가 있는데 minikube, kubeadm, k3s, microk8s 등이 있지만 minikube와 쿠버네티스 공식 홈페이지에 있는 kubeadm에 대한 설치만 다룰 것이다. minikube도 공식 홈페이지에서 지원하지만, 공식 홈페이지에 튜토리얼로 완전 잘 나와있다. 그리고 minikube는 로컬 머신에 VM을 만들고 하나의 노드로 구성된 간단한 클러스터를 생성한다. 하나의 노드로만 구성되어있어서 쿠버네티스에 대해 간단히 알아보는 정도?로만 가능할 것 같고 제약사항도 분명 있을거로 보인다. (지극히 개인적인 생각..) 그래서 여러 노드를 구성할 수 있는 kubeadm을 다뤄볼 것이다. min.. 2023. 2. 25.
[1] Spring WebFlux 시작하기 Spring Framework에서 지원하는 리액티브 웹서버 프레임워크인 Spring WebFlux에 대하여 알아보자. Spring WebFlux 기존 SpringFramework의 웹 프레임워크인 Spring MVC는 서블릿 API와 서블릿 컨테이너용으로 만들어졌다. 그런데 점차 Reactive stack이 발전하면서 SpringFramework 5.0 버전 이상 부터는 Reactive stack의 웹 프레임워크인 Spring WebFlux를 개발하였다. Spring WebFlux는 완전한 non-blocking을 지원하며 Reactive stream의 back pressure를 지원하고, Netty, Undertow, Servlet 3.1+ 컨테이너와 같은 서버에서 실행된다. Spring MVC vs .. 2022. 10. 6.
CKA 합격 후기 안녕하세요! 저는 작년 10월부터 회사에서 VM 기반 MSA 환경을 쿠버네티스 환경으로 이전하는 프로젝트를 맡아서 진행하면서 쿠버네티스를 시작하였습니다. 그러는 도중 쿠버네티스에 대해 더 깊이 알고 싶었고, 실제로 쿠버네티스 운영자가 갖춰야 할 최소한의 지식 범위가 어느정도인지 알기 위해 CKA 시험을 준비하였고 95점으로 합격하였습니다! 시험 합격한 기념 + 저 뿐만 아니라 쿠버네티스를 공부하는 다른 개발자분들을 위해 CKA 준비 과정을 공유하고자 이 글을 작성하였습니다. CKA 준비 과정 저는 2022년 5월 말부터 CKA를 준비하였고, 2022년 9월 4일에 시험을 쳤습니다. 제가 시험을 칠 때는 1.24 버전이었습니다. 시험 준비하는 데 약 3달이 걸렸는데 요약하자면 다음과 같습니다. 강의 (약 .. 2022. 9. 14.
[10] 쿠버네티스 Ingress 쿠버네티스에서 파드를 외부로 노출시키기 위해서 서비스를 사용하였다. 만약에 쿠버네티스 클러스터 내의 여러 애플리케이션을 외부로 노출시켜야 한다고 가정하자. 그러면 우리는 배운대로 애플리케이션을 디플로이먼트로 띄우고, 서비스를 통해 외부로 노출시킬 것이다. 운영 환경에서는 아래 그림과 같이 서비스를 LoadBalancer 타입으로 노출시킬 것이다. 하지만 이런 방식을 사용할 경우 애플리케이션 종류별로 로드밸런서를 구축해야 한다는 단점이 있다. 간단한 서비스의 경우, 비용적인 측면에서 효율적이지 못할 수도 있다. Ingress 다행히도 쿠버네티스에서는 이러한 측면을 보완해주는 쿠버네티스 오브젝트를 제공해주는데 그것이 바로 Ingress이다. Ingress는 간단히 말하면 Host, Path기반으로 애플리케이.. 2022. 7. 21.
쿠버네티스 Static Pods 쿠버네티스의 컨트롤 플레인 노드에 있는 kube-scheduler 는 파드가 생성되면 파드를 적절한 노드로 스케줄링한다. 하지만 kube-scheduler가 없다면(장애가 난다면), 또는 kube-apiserver가 없다면 파드를 생성하거나 스케줄링을 할 수 없다. 하지만 kube-scheduler, kube-apiserver 의 도움 없이 파드를 배포할 수도 있다. 실제로 파드를 직접 배포하는 컴포넌트는 각 노드에서 구동 중인 kubelet이기 때문이다. (사실은 kube-apiserver가 kubelet 에게 파드가 생성되었으니 파드를 배포시키라고 지시한다.) kube-apiserver 가 시키지 않고도 kubelet 이 스스로 파드를 배포하게 만들 수 있다. 노드의 /etc/kubernetes/ma.. 2022. 7. 16.
TLS & HTTPS (2) CA 이전 글에서는 TLS의 기반이 되는 Asymmentric encryption을 사용하는 통신이 어떻게 이루어지는지, Asymmentric encryption을 사용하는 통신이 어떤 면에서 안전한지와 문제점에 대하여 다뤄보았다. 2022.07.15 - [Networking/일반] - TLS & HTTPS (1) TLS & HTTPS (1) TLS TLS(Transport Layer Security)는 컴퓨터 네트워크에 통신 보안을 제공하기 위해 설계된 암호 프로토콜이다. 이 프로토콜은 TCP/IP 네트워크를 사용하는 통신에 적용되며 통신 과정에서 Transport Layer 종 beer1.tistory.com 이전 글에서 Asymmentric encryption 통신의 문제점으로는 서버가 실제로 신뢰할 수.. 2022. 7. 16.
TLS & HTTPS (1) TLS TLS(Transport Layer Security)는 컴퓨터 네트워크에 통신 보안을 제공하기 위해 설계된 암호 프로토콜이다. 이 프로토콜은 TCP/IP 네트워크를 사용하는 통신에 적용되며 통신 과정에서 Transport Layer 종단간 보안과 데이터 무결성을 확보해준다. TLS는 인코딩, 암/복호화 압축 및 코드 변환을 하는 OSI Layer 6에 속한다. TLS를 사용하는 대표적인 프로토콜은 HTTPS이다. HTTPS는 HTTP + Secure로 HTTP 내부에서 TLS가 보안통신을 처리한다. TLS 프로토콜이 어떤 방식으로 이루어지는지에 대하여 알아보자. TLS Certificate TLS Certificate는 트랜잭션 동안 두 party 간의 신뢰를 보장하기 위해 사용된다. 예를 들어 .. 2022. 7. 15.
Linux 행 갯수 세기 특정 파일의 행 갯수를 세고 싶을 때가 있다. 그럴 때는 아래 명령어를 사용하면 된다. $ wc -l test.txt 7 test.txt test.txt 1 2 3 4 5 6 7그리고 특정 명령어 결과값의 행 갯수를 세고 싶다면 파이프라이닝을 활용하면 된다. # command | wc -l $ kubectl get clusterrole | wc -l 70 2022. 6. 18.
728x90