본문 바로가기

자바 , 기타 공부34

레플리카 실제 제작에선 , POD를 직접적으로 사용하기보단 1. 레플리카를 사용하거나 2. 배포 방식을 활용한다. 그 중, 레플리카 방식을 활용해보자 POD는 NODE가 실패하면 POD가 같이 종료된다. 또한 CPU가 부족해도 POD가 종료될 수 있다. 즉 여태까지 했던 것처럼 YAML에 POD를 정의하고 KUBECTL APPLY를 진행하면, 포드가 사망하면 돌리기가 힘들다. 이러한 예시를 생각해보자 EX) POD의 실행이 어떠한 이유로 종료되었다. 그렇다면 현재 SERVICE는 남아있지만, POD는 동작이 멈추었기 때문에 웹사이트는 동작하지 않는다. 그러므로 주로 POD를 그대로 배포하기보단 레플리카 SET를 배포한다. 레플리카 세트는 , K8S의 추가 구성에서 코어 기능으로 진화했다. 포드 실행시 레플리카 몇.. 2024. 2. 4.
배포 실습/ 쿠버네티스를 활용한 배포 DockerHub에서 img파일을 가져와서 , 이를 다시 배포하는 실습을 진행하자. 방금 전 받아왔던 release 0에 대해 queue를 추가하는 내용을 실습해보자. 1. POD 정보 추가 한 YAML파일에 정리한 이유는, 이 POD 들이 같은 K8S 클러스터에서 작동됨을 표현하기 위해서이다. 2. SERVICE 작성 동일하며, nodePort만 변경하였다. kubectl apply -f . 로 모든 yaml파일을 적용시켰으며, 잘 동작한다. 현재 30010으로 localhost로 접근하면 불가능해서, 자체적으로 포트포워딩을해서 동작시키고 있다. 해당 문제가 service를 사용하고는 있지만 내부 port 포워딩 까진 되지 않으므로.. 고민이 필요하다. 포트포워딩을 하지 않아도 원래의 service의 .. 2024. 2. 4.
Docker, Docker를 활용해 상대방의 image를 보고 container를 생성 Docker는 컨테이너 형성에 도움을 주는 것임을 기억하자. 컨테이너는 linux 전체를 포함한다. ubuntu,application등을 포함한다. 남이 처음 생성한 application은, 내 컴퓨터에서 바로 작동되지 않는 경우가 많다. 해당 application의 서버가 내 컴퓨터에 설치 되어 있지 않거나, tomcat과 같은 것이 설치되어 있지 않을 경우가 있다. 또, python의 버전이 다를 수도 있다. (이전, 동기형에게 mysql server를 설치하지 않아도 된다.. 라는 의미를 물어봤을때 너가 application을 만들고 이를 배포하였는데, 사용하는 사람이 mysql이 깔려있지 않다면 해당 mysql이 없기때문에 동작하지 않을 것이다 라고 얘기했던 내용을 기억하자) 이때 containe.. 2024. 2. 3.
K8S (쿠버네티스란?) 사람들이 docker가 무엇이냐고 물어보면? 가장 유명한 컨테이너화 시스템이라고 설명하면 간단하다. docker container로 application을 관리할 수 있다. 허나, 수많은 docker container들을 관리해야할 필요 또한 있을 것이다. 이 관리는, 단순히 관리 정리 뿐만 아니라 자동화 개념을 포함한다. AWS를 사용한다는 의미가 KUBERNETES도 사용하지 않고 그냥 AWS 그 자체로 컨테이너 관리 등 모든 것을 진행함이 아님에 주의하자. 구글 클라우드, 혹은 애저 등 다양한 클라우드 환경에서 동작할 수 있음에 주의하자. DOCKER 내부에도 이러한 관리 프로그램인 DOCKER SWARM이 존재한다. SWARM은 K8S보다 작업이 간단하다. 허나 K8S로 할 수 있는 것이 더욱 많.. 2024. 2. 3.
명령어 실습 KUBCTL : 개념의 복습 KUBCETL -> POD형태로의 배포는 지양하는 것이 옳지 않을까. POD형태의 배포는 , 가용성이 크게 감소한다. DEPLOYMENT 형태로 배포하는 것이 옳지 않을까 YML단위 배포시 DEPLOYMENT가 옳을 수 있다. 실습시 주의 KUBECTL이 메인이 된다. (쿠버네티스의 리소스 리스트를 출력) -O WIDE를 통해서, 해당 리소스와 관련된 추가적인 정보가 나온다. KUBECTL DECRIBE 혹은 KUBECTL LOG를 통해 문제를 해결할 방법을 찾는다. 대부분의 배포는 KUBECTL APPLY를 통해서 진행한다. 그 이유는 생성, 혹은 이미 리소스가 존재할때 수정까지 가능하다. KUBECTL EXEC 를통해서 POD에서 실행되는 APPLICATION에 들어가 명.. 2024. 1. 31.
GIT REBASE / GIT을 이용한 흐름 파악 MERGE를 먼저 생각해보자 . 간단하게 생각하면, 1 ,2 COMMIT 이후 FEATURE BRANCH를 파서 3 ,4 COMMIT을 진행하고 2COMMIT에서 다시 MASTER BRANCH의 5 ,6 COMMIT을 진행한 상태이다. * MASTER의 내용을 FEATURE로 가져오려면? GIT CHECKOUT FEATURE, GIT MERGE MASTER 을 진행하면 기타 사항으로 ,아마도 5 6 3 4 가 거의다 반영된 형태가 등장할 것이다. 이제, REBASE를 고려하자 . BASE는 MASTER가 된다 ( FEATURE 입장에서 , 내 근간은 MASTER에 있기 때문에 ) 이 BASE를 변경하겠다는 것이, REBASE라고 볼 수 있다. 내 시작점을. 현재의 master로 바꾸겠다! git chec.. 2024. 1. 21.
깃 활용 2 , GITHUB 충돌을 해결하는 좋은 방법! git config --global merge.tool kdiff3 -> kdiff3를 설치할 수 있다 . (병합을 전문적으로 사용하는 도구이다 ) git mergetool -> tool을 사용해서, 병합에 대한 문제를 해결한다 . base - local - remote 로 이어진다. *충돌이란 것은, master와 exp의 변경사항이 달라지는 상황을 의미한다. (그 대상은 같은 파일 같은 줄 이다 ) 이때 원하는 파일 변경을, tool로 진행함으로써, 문제를 쉽게 해결할 수 있다. 2way merge는, base를 보지 않는 합병, (직접 CONFLICT를 내준다) 3way merge는 me, base, other을 모두 확인하고 병합하는 방식이다. -> 2개만 다르다면? .. 2024. 1. 20.
GIT BRANCH BRANCH ? = 나무의 가지라고 할 수 있다. EX) REPORT.XSL이라는 파일이 있다. 이는 1,2,3버전으로 막 수정되었다. 현재 REPORT3.XSL이 되었다! . 이를 고객들에게 제공하려면 REPORT3_CLINET.XSL이 되었다. 그이후, 그건 두고 REPORT3을 REPORT4로 바꾸고 싶다. .. 1) 그렇다면 REPORT3_CLIENT는 수정되면서, REPORT3는 REPORT4로 수정되는 요구가 존재할 것이다. 2) 그러다보면, REPORT3_CLINET+REPORT4 -> REPORT5인 경우도 존재할 것이다. 이 과정에서, 작업이 분기되는 현상 -> REPORT3,REPORT3_CLINET 이걸 BRANCH 라고 한다. --실제 예시 -- 고객들에게 기능은 냅두고, 내 기능을.. 2024. 1. 16.
깃 개념 버전이란, 어떠한 작업이 완결된 상태를 의미한다. GIT INIT (시작을 알리자) GIT ADD (폴더 OR 전체'.')를 통해서 원하는 파일들을 올린다. (이 2개의 파일을, 깃에게 올렸습니다! 란 뜻) GIT ADD는 왜 할까? 수많은 1~200개의 파일을 만들었다. 생각해보니 COMMIT을 까먹었다! 그중 1~50만 ADD를한다면, 그 파일들만 COMMIT이 된다. hello의 생성까지만, add가 되어있고 hello2 는 add되지 않았다. 이는 곧, hello2는 변경되지 않을 것이고, hello는 변경의 대상이다! 라는 뜻이다. 즉, 파일이 변경될때마다, add도 필요하다. GIT CONFIG --GLOBAL user.name 임지혁 -> 임지혁이 해당 git을 사용했다는 것을 표현한다. c.. 2024. 1. 16.
5장 정보시스템 구축 관리 126 . 소프트웨어 개발 방법론 소프트웨어의 개발, 유지 보수 등에 필요한 수행방법과 수행과정에서의 기법과 도구를 정의 . 구조적 방법론 -> 타당성 검토, 계획, 요구,설계, 구현, 시험 ,운용 단계를 거친다 (DIVIDE AND CONQUER)로, 복잡한 문제를 다룬다 . 정형화된 분석 정보공학 방법론 -> 계획, 분석, 설계 구축에 정형화된 기법들을 통합 적용한다. (ERD를 활용해, 정보 전략으로 시스템을 구축한다) . 대형 정보 시스템 객체 지향 방법론 -> ENTITY를 활용하여 , 각 객체로 만들어 객체들을 조립하는 방법론이다 컴포넌트 기반 -> 컴포넌트(문서,파일,라이브러리등 자원)의 조합으로 애플리케이션을 만든다. 애자일 방법론 -> 기억나지? 애자일? 일정 한 주기마다 개발 과정을 반.. 2024. 1. 11.