반응형 전체 글1065 [Kubernetes] : Configmap과 Secret 쿠버네티스 YAML 파일과 설정값을 분리할 수 있는 Configmap과 secret이라는 오브젝트가 있다. Configmap에서는 설정 값을 저장하고, Secret에서는 노출되면 안 되는 값을 저장한다. 이 두 개를 사용하면 애플리케이션과 설정값을 별도로 분리해 관리할 수 있는 장점이 생기게 된다. 📖 ← [ 시작하세요! 도커/쿠버네티스 ] 책을 참고하여 공부하였습니다. 2022. 3. 24. [Kubernetes] : 네임스페이스에 종속되는 쿠버네티스 오브젝트와 독립적인 오브젝트 네임스페이스를 사용하면 쿠버네티스 리소스 사용 목적에 따라 논리적 격리가 가능하지만 모든 리소스가 네임스페이스에 의해 구분되진 않는다. A 네임스페이스에서 포드를 만들면 A 네임스페이스에만 보인다. 이것을 오브젝트가 네임스페이스에 속한다고 하는데 이 반대로 속하지 않는 오브젝트도 있다. Nodes가 그 중 하나이다. Nodes는 쿠버네티스 클러스터에서 사용되는 저수준의 오브젝트이며, 네임스페이스에 의해 구분되지 않는다. kubectl api-resoucres --namespaced=false 네임스페이스에 속하지 않는 오브젝트의 종류는 위 명령어로 확인이 가능하다. 확인해 보면 Nodes는 물론이고 네임스페이스 자체도 네임스페이스에 종속되지 않는다는 것을 확인할 수 있다. 📖 ← [ 시작하세요! 도커/쿠.. 2022. 3. 24. [Kubernetes] : 네임스페이스의 서비스에 접근하기 쿠버네티스 클러스터 내부에서는 같은 네임스페이스 내의 서비스에 접근할 때에는 서비스 이름으로만으로 접근할 수 있다. 다른 네임스페이스에 존재하는 서비스에는 서비스 이름만으로는 접근이 불가능하다. 다른 네임스페이스에 존재하는 서비스에 접근하는 방법은 다음과 같다. ..svc처럼 서비스 이름 뒤에 네임스페이스 이름을 붙이면 다른 네임스페이스의 서비스에도 접근이 가능하다. kubetcl delete namespace 이름 kubectl delete -f YAML파일명 두 명령어로 네임스페이스를 삭제할 수 있다. 네임스페이스를 삭제하면 모든 리소스도 같이 삭제된다. 📖 ← [ 시작하세요! 도커/쿠버네티스 ] 책을 참고하여 공부하였습니다. 2022. 3. 24. [Kubernetes] : 네임스페이스 사용하기 네임스페이스는 YAML 파일에 정의해 사용이 가능하다. apiCersion: v1 kind: Namespace metadata: name: production YAML 파일을 적어준다. kubectl apply -f production-namespace.yaml kubectl create namespace production 둘 중 하나의 명령어로 생성이 가능하다. kubectl get ns | grep production production이라는 네임스페이스가 정상 생성이 되었는지 체크한다. kubectl get pods --all-namespaces 모든 네임스페이스의 리소스를 확인할 수 있다. 📖 ← [ 시작하세요! 도커/쿠버네티스 ] 책을 참고하여 공부하였습니다. 2022. 3. 24. [소경관] : 개발 설계 산출물 작성(2) 개발 설계 산출물 작성기.. 아이디어 체크 ! 교수님에게 아이디어 체크를 받았다. → “아, 그러면 자동차 번호판을 인식하는 이미지 인식을 넣으면 될까요?”→ “네, 알겠습니다.” → “그 정도는 되도 생각해 볼까, 말까인데 일단 해 봐.” → “기능이 부족하다, 거의 게시판이잖아” 간단한 대화를 통해 기능 부족 판정을 받고 기능을 추가했다. 기능 추가 번호판 이미지 인식 엑셀 파일을 불러와 차량 정보 등록 이렇게 두 가지 기능을 넣기로 했다. 개발 설계 산출물 다시 작성!? 기능이 바뀌면서 어제 조금 작성한 메뉴구조도, 프로그램명세서가 바뀌었다. 메뉴구조도, 프로그램명세서, WBS를 작성했다. 기능을 추가하고 기능 이름을 살짝 정비했다. 기간은 일단 임의로 작성해 두긴 했는데 하면서 수정을 거쳐야 할 .. 2022. 3. 24. [TIL] : 148 일일 배움을 위한 Today I Learned ! 소경관 이제 본격적으로 프로젝트를 시작하기 앞서 먼저 개발 설계 산출물을 작성하고 있다. 학교에서 프로젝트로 평가를 진행하는데 중간고사 전 까지 개발 산출물 작성이 목표이다. 또, 어떤 글을 읽어보니 이런 설계를 잘 해야 코딩하는 시간도 줄어들고 코드의 질도 높아진다고 해서 천천히 작성하면서 실 개발 시작 전 까지 내용을 업그레이드 할 생각이다. 2022.03.23 - [Project/소경관] - [소경관] : 개발 설계 산출물 작성(1) 멘토링 학교 후배에게 멘토링 수업을 진행했다. 부탁 받은 것은 Java 기초부터 배열까지였고 오늘은 과제를 체크하고 Scanner 사용법에 대해 알려주었다. 다음 주에 마지막이 될 것 같다. R 데이터 프레임을 다뤄보고.. 2022. 3. 23. [Kubernetes] : 네임스페이스 기본 이해 네임스페이스를 간단하게 사용해 본다. 네임스페이스는 쿠버네티스에서 namespace 또는 ns라는 이름으로 사용할 수 있고 kubectl get namespaces 명령어로 확인이 가능하다. kubectl get namespaces kubectl get ns 둘 중 아무거나 사용해도 상관없다. 기본적으로 네임스페이스는 생성하지 않아도 3개가 존재한다. 각 논리적인 리소스 공간이라서 각 네임스페이스에는 포드, 레플리카셋, 서비스 같은 리소스가 따로 존재한다. kubectl get pods --namespace default default라는 이름의 네임스페이스에 생성된 포드를 확인해 본다. 이 default 네임스페이스는 쿠버네티스를 설치하면 자동으로 사용되도록 설정되어 있는 네임스페이스이다. —names.. 2022. 3. 23. [Kubernetes] : 네임스페이스(Namespace) 언급. 도커, 도커 스웜 모드는 컨테이너를 논리적으로 구분하는 방법이 없었다. 용도에 따라 컨테이너와 그에 관련된 리소스를 구분해 관리할 수 있는 논리적 그룹이 있으면 좀 더 편할 것이다. 쿠버네티스에서 이런 일을 네임스페이스(Namespace)가 해준다. 네임스페이스는 포드, 레플리카셋, 디플로이먼트, 서비스와 같은 쿠버네티스 리소스들이 묶여 있는 하나의 가상 공간이나 그룹으로 이해하면 된다. 여러 개의 네임스페이스를 사용하면 마치 하나의 클러스터에서 여러 개의 가상 클러스터들을 동시에 사용하는 것 처럼 느낄 수 있다. 📖 ← [ 시작하세요! 도커/쿠버네티스 ] 책을 참고하여 공부하였습니다. 2022. 3. 23. [JPA] : 엔티티 매핑과 매핑 종류 엔티티 매핑 매핑 종류는 여러 종류가 있다. 객체와 테이블 매핑 @Entity, @Table 필드와 컬럼 매핑 @Column 키본 키매핑 @Id 연관관계 매핑 @ManyToOne, @JoinColumn @Entity @Entity가 붙은 클래스는 JPA가 관리하는 엔티티이다. JPA를 사용해 테이블과 매핑할 클래스는 @Entity가 필수이다. 주의사항도 있다. 기본 생성자가 필수이다. 파라미터가 없는 public, protected 생성자 final 클래스, enum, interface, inner 클래스를 사용하면 안된다. DB에 저장하고 싶은 필드에는 final을 사용하면 안된다. name 속성이 있는데 기본적으로 클래스 명과 동일한 name가 설정된다. 기본 값은 Member여서 Member 테이블.. 2022. 3. 23. [JPA] : 준영속 상태 지금은 어렵다. 나중에 실전에서 웹 애플리케이션을 만들 때 배우는 게 더 좋다. 추후에 다시 다룬다. 영속에서 준영속으로 가는 게 em.persist(member); 이렇게 사용하거나 em.find(member)로 가져올 수 있다. 영속 상태의 엔티티가 영속성 컨텍스트에서 detached 되는 것 즉, 다 떼어 버리는 것이다 영속에서 준영속으로 빠진 상태를 준영속 상태라고 하는 것이다. //영속 Member member = em.find(Member.class, 150L); // member는 영속 상태이다. member.setName("AAAA"); //데이터 변경 em.detach(member); //영속성 컨텍스트에서 관리하지 마! 해버린 것이다. 영속성에서 빠지게 된다. System.out.pri.. 2022. 3. 23. [JPA] : Flush(), 플러시에 대해서.. 플러시, flush 간단 설명 영속성 컨텍스트의 변경 내용을 데이터베이스에 반영 변경 사항과 데이터베이스를 맞추는 것으로 쿼리를 날려주는 것이라고 보면 된다. 플러시가 발생하면 어떻게 되나? 변경 감지가 일어나고 수정된 엔티티가 쓰기 지연 SQL 저장소에 등록한다. 쓰기 지연 SQL 저장소의 쿼리를 데이터베이스에 전송한다. ( 등록, 수정, 삭제 쿼리 등) 플러시가 발생된다고 Commit 되는 것은 아니다. 영속성 컨텍스트를 어떻게 플러시하나? em.flush() 직접 호출한다. 트랜잭션을 커밋하면 자동으로 호출된다. 플러시를 실행해도 1차 캐시가 지워지지는 않고 쓰기 지연 SQL 저장소에 있는 것들이 데이터베이스에 반영이 되는 과정이다.데이터베이스에 쿼리가 즉시 나가고 그 다음에 Commit된다. Me.. 2022. 3. 23. [소경관] : 개발 설계 산출물 작성(1) 이 전의 소경관에 대한 기록은 혼자 공부하면서 정리해 둔 것에 불과하지만 이제는 진짜 해야 할 때가 왔다. 오늘은 개발하기 앞서 개발 설계 산출물을 먼저 작성했는데 완성하지도 못 했고 아직 작성하지 못 한 서류도 있다. 메뉴구조도와 프로그램명세서를 작성했다. 메뉴 구조도에는 메뉴에 어떤 탭이 들어갈지 생각하면서 적었는데 아직 디테일하진 않다. 프로그램 명세서는 메뉴 구조를 참고해서 적었다. 나중에 화면 설계서 작성을 위해 프로그램ID를 설정하고 어떤 DB Transaction을 수행하는지 간단히 체크했다. 업그레이드를 통해 추후에 조금 더 뚜렷하게 구체화 작업이 필요할 것 같다. 메뉴 구조도에는 메뉴에 어떤 탭이 들어갈지 생각하면서 적었는데 아직 디테일하진 않다. 프로그램 명세서는 메뉴 구조를 참고해서 .. 2022. 3. 23. [R] : 기술 통계 값 구하기 library("data.table") DF 2022. 3. 23. [R] : 데이터 프레임 다루기(4) DF 2022. 3. 23. [TIL] : 147 일일 배움을 위한 Today I Learned ! JPA 영속성 컨텍스트에 대해 코딩하며 공부하고 있다. 처음 접해보는 기술이라 한 번에 이해가 되지는 않는다. 추가로 책을 구매해서 살펴봐야 할 것 같다. 2022.03.22 - [Data Base/JPA] - [JPA] : JPA 영속성 컨텍스트(2) Kubernetes Service 종류마다 설정하는 법을 읽고 온프레미스 환경에서 LoadBalancer 타입의 서비스를 사용할 수 있다는 것을 캐치했다. 2022.03.22 - [Server & System/Kubernetes] - [Kubernetes] : 온프레미스 환경에서 LoadBalancer 타입의 서비스 사용 오류 노트 MongoDB를 외부접속하여 사용하려고 하다 오류가 생겨 기록했다. 202.. 2022. 3. 22. [Kubernetes] : 온프레미스 환경에서 LoadBalancer 타입의 서비스 사용 LoadBalancer 타입의 서비스는 클라우드 플랫폼에서 사용되지만 필요에 따라 직접 보유하고 있는 온프레미스 서버에서도 LoadBalancer 타입을 사용할 수 있다. 쿠버네티스가 직접 제공하는 기능은 아니고 MetaILB라는 오픈소스 프로젝트를 사용하면 된다. 단, 유지보수가 지속적이지 않을 수 있으므로 유의해야 하고 공식 문서를 참고하면 된다. 📖 ← [ 시작하세요! 도커/쿠버네티스 ] 책을 참고하여 공부하였습니다. 2022. 3. 22. [JPA] : JPA 영속성 컨텍스트(2) 영속성 컨텍스트의 이점은 동일성을 보장하고 트랜잭션을 지원하는 쓰기 지연과 변경 감지, 지연 로딩이다. Member member1 = em.find(Member.class, "member1"); Member member2 = em.find(Member.class, "member2"); 동일성을 비교했을 때 true가 나온다 1차 캐시로 반복 가능한 읽기 등급의 트랜적션 격리 수준을 데이터베이스가 아닌 애플리케이션 차원에서 제공한다. transaction.begin(); em.persist(member1); em.persist(member2); transaction.commit(); 트랜잭션을 시작하고 em.persist를 해도 INSERT SQL을 데이터베이스에 보내지 않는다. 마지막에 commit을 진.. 2022. 3. 22. [오류 노트] : detecting mongodb server feature compatibility version failed와 mongo server error (mongoqueryexception): query failed with error code 13 and error message 'command find requires authentication' on server IP:27017 문제 CentOS에서 MongoDB를 설치하고 Studio 3T에 외부접속을 하려고 했는데 detecting mongodb server feature compatibility version failed 오류와 mongo server error (mongoqueryexception): query failed with error code 13 and error message 'command find requires authentication' on server IP:27017 이런 오류가 떴다. 해결 vi /etc/mongod.conf 파일에서 #security: #authorization : enabled security 부분을 주석처리하고 MongoDB PID를 조회하여 kill하고 다시 재실행 해주고.. 2022. 3. 22. [TIL] : 146 일일 배움을 위한 Today I Learned ! Kubernetes 디플로이먼트 사용법에 대해 알아보고 Service 종류 중 자주 사용하는 것을 체크해 봤다. 2022.03.21 - [Server & System/Kubernetes] - [Kubernetes] : 디플로이먼트 사용하기 2022.03.21 - [Server & System/Kubernetes] - [Kubernetes] : 디플로이먼트를 사용하는 간단한 이유 2022.03.21 - [Server & System/Kubernetes] - [Kubernetes] : Service : 포드를 연결하고 외부에 노출하기 2022.03.21 - [Server & System/Kubernetes] - [Kubernetes] : Service 종류 .. 2022. 3. 21. [Kubernetes] : Service 종류 포드에 접근할 수 있는 규칙을 정의하는 서비스 리소스를 생성해야 하는데 어떻게 접근할 것인지에 따라 종류가 여러 개로 세분화 된다. 자주 사용되는 서비스 타입은 아래와 같다. ClusterIP 타입 쿠버네티스 내부에서만 포드에 접근할 때 사용한다. 외부에 노출하지 않아 클러스터 내부에서 사용되는 포드에 적합하다. NodePort 타입 포드에 접근할 수 있는 포트를 클러스터의 모든 노드에 동일하게 개방해 외부에서 포드에 접근할 수 있다. 접근 가능한 포트는 랜덤이고 특정 포트로 접근하게 설정도 할 수 있다. LoadBalancer 타입 클라우드 플랫폼에서 제공하는 로드 밸런서를 동적으로 프로비저닝해 포드에 연결한다. 외부에서 포드에 접근할 수 있지만 AWS, GCP 등 클라우드 플랫폼에서만 사용이 가능하다.. 2022. 3. 21. [Kubernetes] : Service : 포드를 연결하고 외부에 노출하기 디플로이먼트를 통해 생성된 포드에 접근하기 위해 kubectl describe 명령어로 포드의 내부 IP를 직접 확인해 포드로 직접 접근을 할 수 있었지만 문제가 있다. 먼저, 로컬 개발 환경이나 쿠버네티스 클러스터 내부에서만 사용할 수 있다는 점하고 영속적이지 않아 항상 변할 수 있따는 점이다. 때문에 여러 개의 디플로이먼트를 하나의 애플리케이션으로 연동하기 위해 서로를 발견(Discovery)할 수 있는 방법이 필요하다. YAML 팡리 중 containerPort 항목이 포드 애플리케이션이 사용할 내부 포트를 정의하는데 이 항목을 정의했다고 해서 포드가 외부로 노출되는 것은 아니다. 노출되기 위해서는 Service 오브젝트를 생성해야 한다. 이 Service 오브젝트는 여러 기능이 있지만 핵심 기능은.. 2022. 3. 21. 이전 1 ··· 12 13 14 15 16 17 18 ··· 51 다음 반응형