
3. 한장으로 이해하는 쿠버네티스 리소스 쿠버네티스 리소스들을 개발 측면과 운영 측면으로 나누어 설명 하겠습니다. 개발자 분들은 개발 측면의 쿠버네티스 리소스만 이해해도 쿠버네티스를 사용하시는데 큰 불편은 없으실 겁니다. 이 장의 목적이 개발자를 위한 쿠버네티스 핵심을 전달하는 것이기 때문에 운영 측면의 쿠버네티스 리소스들에 대해서는 간략하게만 소개하겠습니다. 개발 측면의 쿠버네티스 리소스들은 이어지는 각 절에서 실습을 하면서 배워보도록 하겠습니다. 쿠버네티스 리소스Resource와 오브젝트Object 차이 많은 사람들이 쿠버네티스 리소스와 오브젝트라는 용어를 명확히 구분하지 않고 사용하고 있습니다. 리소스와 오브젝트간의 관계는 자바에서 클래스Class와 오브젝트(객체)의 관계와 정확히 동일 합니다. 클..

2. 쿠버네티스 아키텍처 쿠버네티스를 처음 설치 하시는 분들은 가이드 대로 따라하기는 하는데 왜 이 작업을 해야 하는지 이해가 안되는 게 있을 겁니다. 그 궁금증들은 앞으로 과정을 진행하면서 자연스럽게 풀리게 될 겁니다. 쿠버네티스를 본격적으로 공부하기 전에 다른 제품들처럼 쿠버네티스도 아키텍처부터 이해할 필요가 있습니다. 먼저 쿠버네티스를 구성하는 컴포넌트들에 대해 이해하도록 하겠습니다. 컨테이너를 실행하고 관리하기 위해 어떻게 각 컴포넌트가 역할을 나눠서 하는지를 이해하면 이후에 쿠버네티스 리소스를 학습할 때 동작 원리가 좀 더 명확히 이해 됩니다. 두번째로 클러스터Cluster, 컨텍스트Context, 노드Node, 네임스페이스Namespace의 개념에 대해 배우도록 하겠습니다. 이 개념에 대해 이..

일단 쿠버네티스 설치부터 해 보겠습니다. 쿠버네티스를 싱글노드에 설치할 수도 있고 멀티노드에 설치할 수도 있습니다. 가상머신을 한대만 구할 수 있다면 싱글노드에 구성 하셔도 되나 실무 환경에 보다 가까운 멀티노드에 구성하실 것을 권고 합니다. 아래와 같은 순서로 설치 하시면 됩니다.(VM은 IBM Cloud가 아닌 AWS, Azure, Google 등 다른 곳에서 구매하셔도 됩니다.)실습을 위한 시스템 아키텍처는 아래와 같이 PC에 만든 가상머신을 배천노드로 사용하고 IBM 퍼블릭 클라우드에서 구매한 두대의 가상머신에 쿠버네티스를 설치하는 구성 입니다. 위 아키텍처 그림에 어플리케이션을 쿠버네티스 클러스터에 컨테이너로 배포하는 절차를 단순화하여 표시하였습니다. ❶ 개발 및 소스 업로드: 개발한 어플리케이..

쿠버네티스 소개 쿠버네티스는 “여러 서버에 분산된 서비스를 통합 지휘하는 컨테이너 관리 플랫폼"입니다. 여러분들이 마이크로서비스를 컨테이너화 하여 제공하고 싶다면 도커Docker와 더불어 쿠버네티스Kubernetes에 대해서도 반드시 알아야 합니다. 왜일까요 ? 다른 여러 이유가 있겠지만 가장 기본적인 이유는 도커는 한대의 머신 또는 가상머신에서만 컨테이너를 관리할 수 있기 때문입니다. 거의 대부분의 서비스는 여러 대의 머신 또는 가상머신에서 서비스 되야 하고 여러 대에 컨테이너를 배포하고 운영하려면 쿠버네티스가 반드시 필요 합니다. 쿠버네티스는 도커에 비하면 훨씬 복잡하고 제공하는 기능도 많습니다. 그만큼 배워야 할 것도 많고 다루기도 까다롭습니다. 쿠버네티스Kubernete는 그리스어이며 ‘조정', ..

학습 목표 마이크로서비스는 ‘Time to market을 달성하는 ‘Speedy’한 서비스, 수익 창출하는 ‘Service Always’한 서비스, 비용 최적화하는 ‘Save Cost’한 서비스를 보장해 기업의 성공 확률을 높여주는 강력한 수단입니다. 이러한 ‘3S’를 보장하는 서비스는 마이크로화, 독립적 빌드/배포/스케일, 반복/순환적인 발전이 되어야 합니다. 그러려면 마이크로서비스 간의 독립성을 유지해야 하는데, 독립성 유지는 컨테이너로 격리하는 방법이 가장 좋습니다. 그래서 마이크로서비스에 컨테이너 기술이 많이 이용되고 있습니다. 마이크로서비스의 컨테이너화에 가장 많이 사용하는 제품 중 도커Docker를 알아보겠습니다. 이 장의 목표는 도커 그 자체에 대한 깊이 있는 기술 지식을 전달하는것이 아니라..
혹시 시크릿이 쿠버네티스 저장소인 etcd에 저장되지 않는다고 생각하시는 분이 계신가요 ? 아닙니다. 시크릿 데이터도 etcd에 저장됩니다. 그것도 무려 평문으로 저장됩니다. 하긴 base64로 인코딩되어 저장되도 쉽게 디코딩이 되니 그게 그거겠지만 말입니다. 쿠버네티스에서는 etcd에 저장되는 시크릿 데이터를 암호화 하는 방법을 제공 합니다. etcd를 암호화 하는 이유는 컨트롤 플레인 노드의 루트 권한을 가진 사람은 etcd를 접근하여 시크릿 데이터를 볼 수 있기 때문입니다. https://kubernetes.io/docs/tasks/administer-cluster/encrypt-data/ Encrypting Secret Data at Rest This page shows how to enable ..
리눅스에서는 vi나 vim 에디터를 많이 사용하기 때문에 이 에디터에 익숙해지면 편합니다. vim이 좀 더 편한 버전인데 vi와 쓰는 방법은 동일 합니다. 많은 기능들이 있지만 아래 기능 정도만 이해해도 쓰는데는 크게 불편하지 않을 겁니다. - 파일 열기: vim {파일명} - 커서 이동: 화살표 버튼 이용 - 라인 이동: 콜론 누르고 이동할 라인 번호 입력 후 엔터. 마지막 라인은 ‘$’ 이용 - 파일 저장: 콜론 누르고 ‘w’입력 후 엔터 - 파일 닫기: 콜론 누르고 ‘q’입력 후 엔터. 저장&닫기는 ‘wq’이고 저장 취소 후 닫기는 ‘q!’ 이용 - 글자 삽입과 추가: ‘i’와 ‘a’ - 빈라인 삽입과 추가: ‘O’와 ‘o’ - 글자 삭제: ‘x’ - 라인 텍스트..

container image는 내부적으로 잘게 쪼개진 layer들로 구성되어 만들어집니다. 아래는 registery로 push할때의 결과 화면입니다. 앞에 id처럼 나오는것들이 layer입니다. 이 layer들의 정체는 무엇일까요 ? 예를 들어 user.js라는 어플리케이션의 image를 build하는 Docker파일을 한번 봅시다. FROM에 명시된 node:carbon이 COPY문에 있는 user.js를 구동시켜주는 nodejs WAS입니다. WAS가 구동 되려면 OS가 있어야 합니다. 그래서 users-img라는 Image는 아래와 같이 구성됩니다. * Core Linux는 최소한의 OS기능 수행을 위한 매우 가벼운 OS입니다. VM의 Guest OS와는 비교가 안될 정도로 매우 작은 크기입니다. ..

안녕하세요 ? 제가 KB와 함께 만든 "머니크루"라는 마이데이터 기반 자산관리 서비스를 소개합니다. EKS 위에 3개의 마이크로서비스로 개발하였고 Jenkins를 이용하여 배포하고 있습니다. 머니크루는 닉네임 기반으로 누구나 포트폴리오 공유에 참여할 수 있으며, 자산 고수들의 금융생활을 구경할 수 있는 서비스입니다. 관심이 가는 머니크루를 팔로우하고 벤치마킹해 자신의 금융생활과 비교할 수 있습니다. 또한 머니크루에는 전문가 그룹이 고객 분석을 통해 최상의 관리 가이드를 제시하는 '자산역경매' 서비스도 포함 되어 있습니다. 과거에는 MVP고객이 영업점이나 PB센터를 통해 제안받았던 서비스를 KB마이데이터를 통해 이용할 수 있습니다. 앱스토어에서 KB스타뱅킹을 설치하시고, 아래 경로로 접근하시면 머니크루를 ..

IBM Cloud Virtual Box 신청 가이드 https://cloud.ibm.com IBM 계정 작성 IBM계정이 없는 경우 IBM 계정 작성 버튼을 클릭 하여 회원 가입을 합니다. 입력한 메일 계정으로 들어가, 수신된 확인 메일에서 [Confirm account]을 클릭합니다. 계정 업그레이드 VM을 만들려면 계정을 업그레이드 해야 합니다. 카드 정보를 입력하고 [다음]버튼을 누르면 카드정보가 올바른 경우 아래와 같은 확인 페이지가 나옵니다. 가끔 Validation 에러가 나는데 여러번 시도하면 됩니다. VM 작성 VM 작성을 시작합니다. VM의 종류를 선택합니다. 임시 Virtual Server 옵션을 선택한 경우 VM을 Power Off 시키면 비용 청구는 안되지만, 사전 예고 없이 VM이..

openssl은 테스트나 학습 목적으로 SSL을 사용할 때 테스트 인증서를 만드는 유틸리티입니다. 실제 SSL로 서비스를 하기 위해서는 공인된 루트 인증기관(CA: Certification Authority. Verisign, Comodo)으로 부터 유료 인증서를 받아야 합니다. SSL 인증서 만들기 인증서를 만드는 과정은 3단계입니다. 인증서 key 만들기 -> CSR(Certificate Signing Request)파일 만들기 -> 인증서(.pem 또는 .crt) 만들기 각 단계의 명령은 아래와 같습니다. - 인증서 key 만들기: openssl genrsa -out {인증서 이름}.key {인증서 암호화 bit} - CSR 만들기: openssl req -new -key {key파일명} -out ..

kubernetes의 리소스를 CRUD할때 kubectl명령으로 할 수도 있지만, 이를 좀더 편하게 할 수 있는 유틸리티가 있어 소개합니다. k9s라는 툴이고, 실제 해외에서는 많이 사용하고 있다고 하네요. https://k9scli.io/ K9s - Manage Your Kubernetes Clusters In StyleWho Let The Pods Out? K9s is a terminal based UI to interact with your Kubernetes clusters. The aim of this project is to make it easier to navigate, observe and manage your deployed applications in the wild. K9s con..

퍼블레싱은 온라인 화면설계 툴입니다. https://publessing.io 퍼블레싱 - 웹 퍼블리싱이 어려울 땐 퍼블레싱! 퍼블레싱은 명령어를 사용하여 웹 페이지를 빠르게 그릴 수 있는 개발자 친화적인 도구입니다. publessing.io 온라인 화면설계 툴에는 카카오오븐, Just In Mind, 스케치와 같은 툴이 있는데 퍼블레싱은 개발에 바로 사용할 수 있는 html, js, css와 같은 소스까지 제공해 준다는 강점이 있습니다. 이 툴은 아프리카도서관이라는 국내 개발자분이 개발하신겁니다. 좋은 툴 만들어 공개해주신 아프리카도서관님에게 너무 감사드립니다. 주요 명령어 아래는 주요 명령어들입니다. 페이지 관리 페이지 리스트 보기: ls 페이지 복사: cp {소스 페이지명} {대상 페이지명} 페이지명..

k8s cluster를 설치할 때 API server의 IP는 보안 때문에 보통 private IP를 지정합니다. 아래와 같이 말입니다. kubeadm init --pod-network-cidr= --apiserver-advertise-address= 어떠한 이유로 외부에서 k8s의 API server로 접근해야 한다면 kubernetes cluster를 다시 설치해야 할까요 ? 예를 들어 본인 PC에 Oracle VirtualBox같은걸로 Centos를 설치하고, 그 VM에서 kubectl로 k8s cluster를 접근하고 싶을때 말입니다. 아래 글에 그 방법을 자세하게 설명하고 있습니다. https://blog.dudaji.com/kubernetes/2020/04/08/add-ip-to-kube-ap..
VM이 여러대인 경우 각 VM 접근할 때 마다 암호를 입력하는 매우 귀찮은 일입니다. 암호 입력 없이 쉽게 로그인 시키면서도, 보안을 보장할 수 있는 SSH key 구성 방법을 소개 합니다. https://kubepia.github.io/cloudpak/cp4app/install/infra08.html#ssh-key-%EC%83%9D%EC%84%B1 Infra Servers-SSH Key 구성 | Kubepia Documents Infra Servers-SSH Key 구성 SSH Key 생성 Terminal 또는 ssh명령으로 bastion VM을 접근합니다. Test용 SSH Key를 생성합니다. 현재 user의 HOME디렉토리 하위에 '.ssh'라는 디렉토리가 생깁니다. 그 디렉토리에 private ..

1. 목적 본 문서는 학습 목적으로 Oracle Virtualbox를 이용하여 VM을 자신의 PC에 만드려는 사람들을 위해 제작되었습니다. 사전준비사항 - Oracle Virtualbox 설치: https://www.virtualbox.org/wiki/Downloads - MobaXTerm 설치: https://mobaxterm.mobatek.net/download-home-edition.html MobaXTerm은 Window 전용 원격 터미널 프로그램입니다. Portable edition은 무설치 버전으로 압축만 해제하면 됩니다. 2 VM 만들기 2.1 VM Image 다운로드 VM image는 osboxes.org에서 무료로 다운로드 합니다. Step 설명 VM 다운로드 압축풀기 적절한 디렉토리에 ..

2021년 8월 13일부터 github는 보안을 강화하기 위해 ID/PW로 push를 더 이상 못하도록 변경하였습니다. 대신에 Access Token을 이용하여야 합니다. Token발급 방법은 아래 글을 참조하십시오. https://firstquarter.tistory.com/entry/Git-%ED%86%A0%ED%81%B0-%EC%9D%B8%EC%A6%9D-%EB%A1%9C%EA%B7%B8%EC%9D%B8-remote-Support-for-password-authentication-was-removed-on-August-13-2021-Please-use-a-personal-access-token-instead [Git] 토큰 인증 로그인 + 자격 증명 - remote: Support for passw..

아래와 같은 에러가 발생하는건 eclipse 또는 STS의 maven indexer 버그 때문입니다. Maven repository indexing error: java.nio.channels.OverlappingFileLockException 새로운 버전으로 업그레이드 하시면 해결됩니다. Eclipse 또는 STS의 Help > Check for Updates를 눌러 업그레이드 한 후 restart하십시오.

1. 설치 $ dnf install mysql-server 2. 서버 시작 $ systemctl start mysqld $ systemctl status mysqld 3. VM재시작 시 자동 mysql 서버 시작 하게 설정 $ systemctl enable mysqld 4. 보안설정 $ mysql_secure_installation 초기 암호는 없으므로, 그냥 엔터 치면 됩니다. 암호의 validation policy level은 테스트시에는 쉬운 암호를 지정하기 위해 0으로 하세요. 단, 실제 운영시에는 2로 하셔야 합니다. [root@ondal ~]# mysql_secure_installation Securing the MySQL server deployment. Connecting to MySQL ..

롬복은 테이블을 구조화한 도메인 클래스(Entity 또는 DTO, VO)에서 getter/setter 메서드와 toString, equals, hashCode 등의 메서드를 애너테이션으로 사용할 수 있도록 해주는 라이브러리입니다. 아래를 참조하여 설치하세요. 아래 링크에서 최신 버전을 받으세요. https://projectlombok.org/download Download projectlombok.org 이 이후 설치는 아래 글 참고하세요. * 주의) 반드시 최신 버전의 lombok.jar를 설치하세요. https://congsong.tistory.com/31 이클립스(Eclipse & STS)에 롬복(Lombok) 설치하기 롬복은 테이블을 구조화한 도메인 클래스(Entity 또는 DTO, VO)에서 g..
- Total
- Today
- Yesterday
- 분초사회
- Event Sourcing
- agile
- AXON
- micro service
- 리퀴드폴리탄
- 디토소비
- CQRS
- 스포티파이
- 돌봄경제
- SAGA
- API Composition
- 버라이어티가격
- 마이크로서비스
- spotify
- 육각형인간
- 스핀프로젝트
- 마이크로서비스 패턴
- 도파밍
- 요즘남편 없던아빠
- 애자일
- 호모프롬프트
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |