배포환경이 구성되기 전에 개발환경 세팅부터 하기로 한다. 현재까지 express 와 Socket.IO 간 통신한 것을 Github 에 연동하기로 하고, 명세서 작성을 위한 Swagger 세팅을 작성한다. 1. Github 연동일단 먼저 Github 에 Repository 를 생성한다. 나는 채팅서비스를 담당하고 있기 때문에 chat 이라는 Repository 를 생성하였다. 1. 이미 만들어져 있는 디렉토리를 서로 연결해줘야 하기 때문에 다음 명령어를 통해 저장소를 연결한다.$ git remote [깃허브 레포지토리 주소] 2. gitignore 을 작성하여 git 에 올라가지 않을 파일들을 작성한다. 아래의 링크를 통해 gitignore 를 작성하였다. 자신이 사용하는 운영체제 및 툴 을 작성하면 ..
전체 글
이번 글은 프로젝트 진행 과정을 기록으로 남기는 글이 될 것 같다. RKE2 Rancher 를 설치하는 과정에서 해결하지 못했던 과정과 원인, 그리고 앞으로의 방향성에 관해서 작성하기로 한다. 1. RKE2 Rancher 설치 실패맥북 로컬 자원을 활용하여 RKE2 Rancher 를 직접 설치하는 과정을 진행하였다. 해당 과정에서는 오류 없이 Rancher 가 정상적으로 설치되어 작동 되는 것을 확인하였다. 하지만 네트워크 대역이 다른 두 VM 간에서의 설치는 실패하였다. 문제는 Rancher 의 Webhook 이 정상적으로 동작하지 않아 cert-manager 를 인증받는 과정에서부터 동작하지 않았다. 원인으로는 RKE2 는 기본적으로 모든 통신을 localhost 로 바라보고 있었고, 이를 해결하기..
·개인공부
1. RancherRancher 는 Kubernetes 클러스터를 편리하게 관리하고 운영하기 위한 오픈소스로, 웹 UI 를 통해 Kubernetes 를 더 쉽게 구축하고 관리할 수 있도록 도와주는 도구이다. 따라서 Kubernetes 클러스터의 생성, 관리, 모니터링, 그리고 사용자 관리 기능 등을 제공하여 운영 및 관리의 편의성을 높여주는 관리 인터페이스 역할을 한다. 1.1 Rancher 의 주요 기능Rancher 는 클러스터 관리, 사용자 및 접근제어, 애플리케이션 관리, 모니터링 및 로깅, 하이브리드 및 멀티 클라우드를 지원하는 역할을 한다. 주요 기능은 다음과 같다.멀티 클러스터 관리 : 단일 대시보드에서 여러 Kubernetes 클러스터를 관리할 수 있다. 클러스터의 상태 확인, 워크로드 배포..
·개인공부
1. 마스터 노드Kubectl : 쿠버네티스 클러스터에 명령을 내리는 역할을 한다. 다른 구성 요소들과 다르게 바로 실행되는 명령 형태인 바이너리(binary) 로 배포되기 때문에 마스터 노드에 있을 필요는 없으나 통상적으로 API 서버와 주로 통신하기 때문에 API 서버가 위치한 마스터 노드에 표현한다.API 서버 : 쿠버네티스 클러스터의 중심 역할을 하는 통로이다. 주로 상태 값을 저장하는 etcd 와 통신하지만, 그 밖의 요소들 또한 API 서버를 중심에 두고 통신하기 때문에 API 서버의 역할이 매우 중요하다. etcd : 구성 요소들의 상태 값이 모두 저장되는 곳이다. etcd 외의 다른 구성 요소는 상태 값을 관리하지 않기 때문에 etcd 의 정보만 백업되어 있다면 긴급항 장애 상황에서도 쿠버..
1. 이슈RKE2 클러스터 연결시 워커 노드에서 NotReady 이슈.워커 노드 RKE2-Canal 파드 CrashLoopBackOff 이슈. (install-cni 컨테이너)RKE2-Server 와 RKE2-Agent 간 내부 통신 이슈. 2. 구성 환경마스터 노드를 담당하고 있는 VM은 Oracle Cloud 에 올라가있고 워커 노드를 담당하고 있는 VM 은 GCP 에 올라가 있는 상태이다.따라서 각 노드는 다른 네트워크 대역에 있으며 공인IP 도 다른 상황이다. 따라서 RKE2 에서 제공하는 가이드에 의한 config 설정은 server 의 주소인 공인IP 로 설정하였다. 또한 인증서 발급은 정상적으로 이루어진 상황이었다. 3. 원인 RKE2-Agent 가 API-Server 와 연결하지 못하는 문..
지금까지 GCP에서 제공하는 콘솔창에서 SSH로 접근하는 방식을 사용하였다. 하지만 이제 RKE2 을 사용하기로 방향이 잡혀졌고, 서비스를 구축하는데 콘솔창에 접근해야 하는 경우가 많아지기 시작했다. 매번 콘솔창에 접근하여 접속하는 방법이 귀찮아지고, 추후 접근을 더 용이하게 하기 위해 SSH 키를 등록하여 외부터미널에서 접근하고자 한다. 1. 새로운 PEM 키 준비기존에 저는 라즈베리파이에 접근하기 위해 PEM 키를 다운받은 경험이 있습니다. 해당 키를 이용하여 접근해도 괜찮지만, GCP 용 PEM 키를 하나 더 생성하여 사용하기로 하였습니다. 클라이언트에서 새로운 PEM 키를 생성하기위해 다음 명령어를 실행한다.$ ssh-keygen -t rsa -b 2048 -f ~/.ssh/gcp -C "you..
·개인공부
이전 글에서 RKE2 Master Node 를 설치하였다. 이번에는 Work Node 를 설치하는 과정을 정리한다.https://jeenukchung.tistory.com/51 VMware Fusion, RKE2 Master Node 설치 (1)0. 공부 목적ST00CK 에 RKE2 를 기반으로 프로젝트를 개발하기로 위해 직접적인 구성 전에 간단한 설정을 하기 위해 연습 목적으로 작성하게 되었다. GCP 의 무료 크레딧을 활용하고 있기 때문에 크jeenukchung.tistory.com 1. Worker NodeWorker Node 는 클러스터 내에서 컨테이너화된 애플리케이션을 실행하는 역할을 하며, Master Node 와 통신하여 작업을 수행한다. 그렇기 때문에 당연하게도 Master Node 가 정..
·개인공부
0. 공부 목적ST00CK 에 RKE2 를 기반으로 프로젝트를 개발하기로 위해 직접적인 구성 전에 간단한 설정을 하기 위해 연습 목적으로 작성하게 되었다. GCP 의 무료 크레딧을 활용하고 있기 때문에 크레딧이 소진되면 개인 리소스에 이사를 해야하고, Docker 기반으로 K8S 를 설정하는 것 보다 Containerd 기반으로 설정하는것이 더 리소스적으로 효율적이기 때문에 해당 기술을 채택하게 되었다. 1. REK2 RKE2는 Rancher Kubernetes Engine 2의 약자로, Rancher에서 제공하는 엔터프라이즈급 Kubernetes 배포 도구이다. RKE2는 표준 Kubernetes와의 호환성을 유지하면서 보안과 안정성을 강화한 Kubernetes 배포판이다. 다음은 RKE와 RKE2의..