DevOps
-
K3S로 프로젝트 구성하기 - 5DevOps/K8s 2023. 6. 8. 22:34
1. ArgoCD로 k8s 자동 배포 1-1 레포등록 ( 깃 허브에서 도커 이미지레포를 별도로 생성했다. ) https://github.com/JEONSEUNGREE/ecommerce-image-k3s GitHub - JEONSEUNGREE/ecommerce-image-k3s: ecommerce-image-k3s ecommerce-image-k3s. Contribute to JEONSEUNGREE/ecommerce-image-k3s development by creating an account on GitHub. github.com 1-2 ArgoCD 어플 생성 배포 전략은 자동 혹은 수동으로한다. (원하는 방식으로) 아래 네임스페이스는 미리 생성해둬야한다. 어플리케이션 이름은 대문자사용 불가이다. 마스..
-
K3S로 프로젝트 구성하기 - 4DevOps/K8s 2023. 6. 8. 18:54
1. 젠킨스로 스프링 자동 빌드 1-1 스프링부트 프로젝트 생성(3.X) intellij 혹은 https://start.spring.io/ 에서 스프링 프로젝트 생성 디펜던시는 자주 사용하는 lombok, web, devTool로만 사용하였다. (스프링 부트 3.X부터 빌드시 jdk가 17이상이어야한다. 이에 따라서 2.X와 설정이 조금 다르다) 테스트용 컨트롤러 생성 yaml파일에 서버 포트 지정 깃허브에 dev 브랜치에 commit, push 한 후 확인 1-2 젠킨스 로그인 후 플러그인 설치 3가지 (github, post build, gradle) 설치할 플러그인은 Dashboard -> Manage Jenkins -> Plugin Manager -> Available Plugins 에서 검색후 ..
-
k8s 트러블 슈팅 - Failed to create pod sandboxDevOps/K8s 2023. 6. 8. 17:46
calico-node 인증만료 문제 Failed to create pod sandbox: rpc error: code = Unknown desc = failed to setup network for sandbox "9a156e211630d14eb7488c4f2236b76a8f034b20fef7541dd25edd0e5b09d204": plugin type="calico" failed (add): error getting ClusterInformation: connection is unauthorized: Unauthorized 아래 파드를 전부 제거해준다. 인증문제로 calico 사용 인증이 만료되서 발생한다고 한다. 인증이 만료되면 지속적으로 발생할텐데 좀 더 확인 해봐야할것같다. // system 네임..
-
K3S로 프로젝트 구성하기 - 3DevOps/K8s 2023. 5. 23. 23:10
1. 로컬 PC를 NFS 설정 하기 (Multipass NFS용으로 추가생성하여 설정가능) // 로컬 PC에 nfs 서버 구성 - multipass로 새로 생성하여 사용 가능 sudo apt install nfs-kernel-server // 공유할 디렉토리 생성 sudo mkdir /sharedir/k8s // 권한 부여 sudo chmod 777 /sharedir/k8s // 공유 디렉토리 목록에 추가 sudo vi /etc/exports // 맨 아래 다음 줄 추가 (아이피는 master-node 아이피) /sharedir/k8s 10.199.74.0/24(rw,sync,no_subtree_check) // 디렉토리 내보내기 및 재시작 sudo exportfs -a sudo systemctl res..
-
K3S로 프로젝트 구성하기 - 2DevOps/K8s 2023. 5. 23. 00:33
로컬 우분투 서버 -> VM 우분투 서버로 요청 ( 노드 포트 사용 ) VM 우분투 서버 -> 로컬 우분투 서버로 응답 노드포트로 서비스를 생성하면 설정된 노드포트를 통해서 어떤 노드 아이피의 포트로 요청해도 생성된 파드로 가는 단일 진입점으로 만들수 있다. 예 ) 하나의 클러스터 즉 마스터와 워커 노드들 중 아무 노드에게 노드 포트에 설정된 포트로 요청을 보내면 설정된 서비스 파드로 응답해준다. 외부 접속시 공유기 dhcp를 막기위해서 서버 아이피는 공유기를 통해 mac 주소를 등록하고 고정아이피로 설정해둔다. 1. 구조 2. 로컬 PC에서 VM 서버로 포트 포워딩 nginx 설정 예시 현재 로컬 우부툰 서버에 도커로 nginx를 설치한 뒤 l4 역할을 부여한다. 도커는 네트워크를 호스트로 사용한다. ..
-
K3S로 프로젝트 구성하기 - 1DevOps/K8s 2023. 5. 20. 15:51
구성하고자 하는 환경 위처럼 설계하고 진행하려고 한다. 실제로 같은 종류의 자원이 허용되는 범위내에서 인스턴스 갯수는 줄이거나 늘일수있을것같다. 1. 프로세스 1.1 개발자가 프로젝트 코드를 수정 한후 깃허브에 commit, push 1.2 젠킨스 또는 깃허브 액션을 통해서 도커이미지를 생성 후 docker hub에 push (서버 자원이 넉넉하다면 깃랩과 하버를 설치하여 전체적으로 온프레미스 환경으로 구성할수있다.) 1.3 argoCD를 통해서 관련 pod를 배포한다. 1.4 배포시 K3S를 통해서 생성된 노드중 하나에 배포된다. Storage는 로컬 저장소를 NFS를 만들어 PV,PVC를 구성한다. 2. K3S 구성하기 https://heehee-myblog.tistory.com/5 Kubespray..
-
Kubespray 우분투 서버환경 구성 - 2DevOps/K8s 2023. 5. 17. 23:24
kubespray 설치 전에 사전작업 1. 모든 노드에서 설정 1. 메모리 스왑 비활성화 swapoff -a && sed -i '/swap/d' /etc/fstab 2. K8s 네트워크 사용을 위해 ipforward 활성화 sudo sh -c 'echo 1 > /proc/sys/net/ipv4/ip_forward' cat /proc/sys/net/ipv4/ip_forward 1이 출력되어야한다. 3. 방화벽 해제 (모든 노드해당) sudo ufw disable 2. 마스터 노드에서 설정 4. multipass focal 버전 설치시 파이썬이 설치되었음 -> 설치되어있지않은경우 설치 필요 5. kubespray 받기 // 컨테이너가 cri-o 버전으로 사용 하기위해서 최신 버전으로 한다. // 도커의 경우..
-
Kubespray 우분투 서버환경 구성 - 1DevOps/K8s 2023. 5. 13. 12:59
GUI 환경에서 구성하는 경우 메모리 사용량이 높아지기때문에 서버버전으로 설치하였다. 서버로 구성한 노트북 사양 CPU : i5 11세대 MEMORY : 16GB SSD : 512GB i5는 4코어 4스레드로 구성되어 각 가상머신에 가상코어 포함 2코어씩 분배하도록 설정한다. 우분투 서버는 설치는 부팅디스크하나를 만들어서 노트북에 설치하였다. (구글에 설치 관련 정보가 많아 어렵지않다.) 현재 노트북에 설치한 버전은 Ubuntu 20.04.5 LTS으로 되어있다. Multipass 공식 문서 https://multipass.run/docs/installing-on-linux How to install Multipass on Linux | Multipass documentation multipass.run..