이 가이드는 Ubuntu 기준으로 작성되어 있습니다.CentOS 기반의 가이드는 여기를 참조하세요. 1. 설치apt-get install -y haproxy 2. 설정아래 예제를 참조하여 작성하십시오. sudo cp /etc/haproxy/haproxy.cfg /etc/haproxy/haproxy.cfg.bakvi /etc/haproxy/haproxy.cfgglobal log /dev/log local0 log /dev/log local1 notice chroot /var/lib/haproxy stats socket /run/haproxy/admin.sock mode 660 level admin stats timeout 30s user haproxy group haproxy daemon # Defaul..
이 가이드는 Ubuntu 기준으로 작성되어 있습니다. CentOS 기반의 가이드는 여기를 참조하세요. 1. DNS설치apt-get install -y bind9-utils bind92. DNS설정설정파일 예시를 참고하여 작성하십시오. 1) /etc/bind/named.conf.options options { directory "/var/cache/bind"; recursion yes; // 내부 네트워크에만 재귀 쿼리 허용 allow-recursion { any; }; // 모든 사용자를 허용하려면 { any; }로 설정 listen-on { any; }; // 모든 인터페이스에서 DNS 쿼리를 수신 allow-transfer { none; }; /..
이 가이드는 k8s 1.30이상에 Elasticsearch 8.x를 설치한 경우 Fluent bit를 설치하는 방법을 안내합니다.Elasticsearch 8.x 설치 가이드는 아래 글을 참조하세요.https://happycloud-lee.tistory.com/294 엘라스틱 서치 헬름 저장소 추가아래와 같이 엘라스틱 서치 헬름 차트 저장소를 추가 하고 차트 리스트를 업데이트 합니다.[root@osboxes ~]# helm repo add bitnami https://charts.bitnami.com/bitnami"bitnami" has been added to your repositories[root@osboxes ~]# helm repo updateFluent bit의 헬름 차트명과 버전을 찾습니다...
아래 가이드는 제대로 설치 안되어 보다 경량화된 Fluentd인 Fluentbit를 설치할 것을 권고합니다. https://happycloud-lee.tistory.com/296 이 가이드는 k8s 1.30이상에 Elasticsearch 8.x를 설치한 경우 Fluentd를 설치하는 방법을 안내합니다. Elasticsearch 8.x 설치 가이드는 아래 글을 참조하세요.https://happycloud-lee.tistory.com/294 k8s 1.30이상에서 Elasticsearch 8.x 설치k8s 1.30으로 업그레이드 되면서 elastic에서 제공하는 helm chart도 많은 변화가 있습니다.이 가이드에서는 최신 버전의 elastic helm chart를 k8s 1.30 클러스터에 설치하는 방법..
k8s 1.30으로 업그레이드 되면서 elastic에서 제공하는 helm chart도 많은 변화가 있습니다.이 가이드에서는 최신 버전(2024.10월 현재 8.15.3)의 Elasticsearch와 Kibana를bitnami helm chart를 이용하여 k8s 1.30 클러스터에 설치하는 방법을 다룹니다. 엘라스틱 서치 헬름 저장소 추가아래와 같이 Bitnami 헬름 차트 저장소를 추가 하고 차트 리스트를 업데이트 합니다.[root@osboxes ~]# helm repo add bitnami https://charts.bitnami.com/bitnami"bitnami" has been added to your repositories[root@osboxes ~]# helm repo update엘라스틱 ..
15. 더 알면 좋을 주제들 드디어 쿠버네티스의 마지막 편입니다. 여기까지 학습하신것만으로도 여러분은 쿠버네티스를 이용하시는데 큰 불편은 없을 겁니다. 마지막 편에서는 조금 더 알면 좋을 주제들을 모아서 설명하려고 합니다. 첫번째로는 버전업 시 엔드 유저들이 서비스 중단을 느끼지 않고 무중단으로 파드를 배포하고 문제 발생 시 롤백하는 방법을 알아 보겠습니다. 두번째 쿠버네티스에 배포된 오브젝트들의 사용 현황을 모니터링 하기 위한 통합 모니터링 환경을 구축하는 방법을 배워 보겠습니다. 세번째로는 컨테이너의 꽃이라고 할 수 있는 부하에 따라 파드를 자동 증감 시키는 스케일링에 대해 알아 보겠습니다. 15.1 무중단 배포와 롤백 여러분이 ‘OTT 추천 서비스'를 개발하여 서비스를 시작하였고 사용자들의 피드백을..
14. 인증Authentication과 알백RBAC 방식의 인가Authorization 접근하는 사용자를 인증하고 권한을 부여하는 인가는 안전한 쿠버네티스 운영을 위해 매우 중요 합니다. 먼저 쿠버네티스가 인증과 인가를 처리하는 원리에 대해서 살펴 보겠습니다. 두번째로 알백 방식으로 권한을 부여하는 방법에 대해 알아 보겠습니다. 다음으로 인증 방법 중 서비스 어카운트 인증, X.509 인증서 기반 인증, WebHook 연동 인증을 실습하도록 하겠습니다. 14.1 인증과 인가 방법 이해 사용자, 그룹, 서비스 어카운트의 요청이 쿠버네티스에서 처리되기 위해서는 인증 ⇒ 인가 ⇒ 진입 제어의 세 단계를 통과해야 합니다. 예를 들어 여러분들이 ‘k get po -A’라는 명령으로 모든 네임스페이스의 파드 리스트..
Update History# 2024-10-05 - k8s 1.30 설치 검증- bitnami helm 차트를 이용한 EFK스택 구성으로 변경# 2022-12 최초작성k8s 1.23 기준 작성 13. 통합 로깅을 위한 EFK 스택컨테이너로 서비스 할 때는 로그를 기존 처럼 로그 파일에 기록하는 것이 아니라 표준 출력으로 남기고 EFK스택이나 ELK스택을 이용하여 수집, 저장, 가시화해야 합니다. 그 이유는 컨테이너는 언제라도 없어지거나 재시작할 수 있기 때문입니다. EFK스택은 엘라스틱서치Elasticsearch, 플루언트디Fluentd, 키바나Kibana의 앞자를 모은 용어이고 ELK스택은 엘라스틱서치Elasticsearch, 로그스태시Logstash, 키바나Kibana의 앞자를 모은 용어입니다. Fl..
12. 헬스 체크를 위한 스타트업 프로브, 라이브니스 프로브, 레디니스 프로브 어플리케이션을 운영 할때 가장 운영자를 괴롭히는것 중 하나가 HTTP Hang현상입니다. 어플리케이션을 실행 시키는 물리적인 서버나 WAS는 정상인데 DB락, CPU 사용량 초과, 메모리 과다 사용 등의 이유로 어플리케이션의 응답 속도가 현저히 떨어지는 경우가 종종 있습니다. 문제는 그걸 체크 하기도 어렵고 현상이 벌어진 후에 원인을 찾아 조치하는데 시간이 너무 많이 걸린다는 겁니다. 쿠버네티스는 이 문제를 깔끔하게 해결하는 방법을 제공 합니다. 이번 장에서는 쿠버네티스가 서비스 정상 여부를 체크하고 조치하는 방법에 대해 배웁니다. 먼저 이러한 헬스 체크를 위한 라이브니스 프로브Liveness Probe, 레디니스 프로브Rea..
11. 데이터 저장소 사용을 위한 PV/PVC여러분이 고객을 위해 만드는 애플리케이션은 거의 대부분 파일이나 데이터베이스를 이용하여 데이터를 읽거나 써야 합니다. 파일이나 데이터베이스에 데이터가 저장되기 위해서는 물리적인 스토리지가 있어야 하고요.이러한 물리적인 스토리지를 파티션으로 나눈 후 읽고 쓰기가 가능하게 만든 저장 영역을 볼륨Volume이라고 합니다. 여러분이 스토리지인 하드 디스크를 사서 파티션 C드라이브와 D드라이브로 나누고 포맷하면 볼륨이 만들어 지는 겁니다.이번 장에서는 파드 내의 어플리케이션이 볼륨을 어떻게 사용하는지 좀 더 알아 보겠습니다.스토리지는 짐작 하시겠지만 개발자가 알기에는 너무 방대하고 어려운 영역입니다. 하지만 걱정하실 필요 없습니다. 쿠버네티스는 개발자가 스토리지에 대한..
10. 환경변수 컨피그맵과 시크릿 컨피그맵과 시크릿의 공통점은 파드 내에서 참조할 환경변수를 생성하는 리소스라는 것이고 차이점은 컨피그맵은 평문으로 저장되나 시크릿은 base64로 인코딩되고 추가적인 보안 수단이 있어 더 보안성이 뛰어나다는 것입니다. 사실 base64는 너무나 쉽게 디코딩되어 보안이라고 말할 수 없고 추가적인 보안 수단이 있기 때문에 민감한 정보는 시크릿으로 반드시 만들어야 합니다. 시크릿은 환경변수를 생성하는 기능뿐 아니라 이미지 레지스트리 자격증명과 TLS인증서도 만들 수 있습니다. 컨피그맵과 시크릿을 생성하는 방법에는 Literal, 한줄 컨피그 파일 이용 방식, 여러줄 컨피그 파일 이용 방식이 있습니다. 각 방식을 예제를 통해 배워보도록 하겠습니다. 그리고 파드안에서 컨피그맵과 ..
9. 서비스 로드 밸런서 인그레스 인그레스는 서비스 오브젝트를 로드밸런싱하는 리소스입니다. 우리는 이미 인그레스를 통해 서비스를 로드밸런싱 해 봤습니다. 인그레스에 대해 무엇을 더 알아야 할까요 ? 어떻게 인그레스가 외부의 트래픽을 받는지 원리를 알고 싶지 않나요 ? 또 HTTP 뿐 아니라 HTTPS를 사용하여 TLS 통신을 하는 방법이 궁금하시지 않나요 ? 그래서 이번에는 인그레스의 원리를 먼저 알아보고 인그레스를 이용한 HTTPS 통신 방법을 알아 보겠습니다. 세번째로는 인그레스 없이 별도의 웹서버를 세우고 NodePort서비스를 프락싱하는 방법을 배워 보겠습니다. 인그레스의 목적은 외부 트래픽을 클러스터 내부로 연결해 주는 것이기 때문에 이미지나 자바스크립트와 같은 정적 컨텐츠를 캐싱하는 방법을 제..
8. 파드 로드 밸런서 서비스서비스 리소스는 파드 로드밸런서입니다. 서비스에 대해 여러분이 꼭 아셔야 할 것은 딱 두가지입니다. 파드안에서 다른 파드안의 어플리케이션을 서비스명으로 호출하는 방법과 목적별 네가지 서비스 유형입니다. 먼저 진짜 서비스가 파드 로드밸런싱을 해주는지는 확인해 보겠습니다. 두번째 파드 간 서비스명으로 통신하는 방법에 대해 배워 보겠습니다. 세번째로 목적별 네가지 서비스 유형에 대해 학습하겠습니다.마지막으로 알면 유용할 내용들을 추가로 설명 하겠습니다. 8.1 파드 로드밸런싱 테스트‘member’파드를 3개로 스케일링하고 ‘curl’파드에서 ‘member’파드의 ‘/hostname’이라는 API를 호출합니다. 이 API는 현재 파드의 호스트네임을 리턴합니다. 로드 밸런싱이 된다면 ..
7. 파드 실행 및 통제를 위한 워크로드 컨트롤러7장 부터는 쿠버테니스 리소스별로 추가적인 설명을 하겠습니다. 열심히 개발한 어플리케이션을 컨테이너 이미지로 만들었다면 쿠버네티스 클러스터에 파드로 배포를 해야 합니다.물론 실무에서는 CI/CD파이프라인을 통해 자동으로 배포가 되기 때문에 개발자 여러분들이 직접 워크로드 컨트롤러 오브젝트와 서비스나 인그레스 같은 다른 오브젝트들을 야믈로 정의해서 직접 만들일은 없을 수 있습니다. 하지만 CI/CD 파이프라인을 직접 만들어야 한다면 각 쿠버네티스 리소스를 정의하는 방법에 대해 알고 있어야 합니다. 설사 CI/CD 파이프라인을 이용만 하더라도 생성된 쿠버네티스 오브젝트들을 이해하는 것이 컨테이너화 하는 어플리케이션을 만드는데 많은 도움이 됩니다. 그래서 조금 ..
쿠버네티스 오브젝트를 CRUD(Create, Read, Update, Delete)하기 위해서는 쿠버네티스의 명령어와 옵션에 대해 알아야 합니다. 무수히 많은 명령어와 옵션들이 있지만 가장 자주 사용하는 핵심 명령어는 아래와 같습니다. 이 정도만 알아도 쿠버네티스 오브젝트를 처리하는데는 사실 큰 무리가 없습니다. 아래 명령어들을 CRUD별로 생각하시면 기억하기 쉽습니다. ‘C’는 apply, ‘R’은 get과 describe, ‘U’는 edit, ‘D’는 delete이고 파드 처리 명령어로 logs, exec가 있습니다. 쿠베컨트롤kubectl의 사용 문법은 아래 형식입니다. kubectl {COMMAND} {리소스 종류} {오브젝트명} {Options} 항상 위 4개 부분이 다 필요한게 아니라, 명령어..
쿠버네티스 오브젝트를 생성하기 위해서는 보통 명세Specification를 정의한 야믈 파일을 만들어야 합니다. 공식적인 명칭은 매니페스트(Manifest)파일인데, 대부분 야믈 파일이라고 부릅니다. 여러분들이 직접 오브젝트 정의 파일을 만들어야 할 경우도 많기 때문에 이번에는 오브젝트 정의 파일을 쉽게 만드는 방법을 배워 보도록 하겠습니다. 먼저 오브젝트 정의 파일의 구조와 문법을 이해하고 기존 오브젝트를 이용하여 새로운 오브젝트 정의 파일을 빠르게 만드는 법을 설명하겠습니다. 이전 절에서 실습한 오브젝트 중 네임스페이스, 서비스 어카운트, 컨피그맵, 시크릿, 클러스터롤 바인딩, 롤바인딩은 야믈 파일로도 만들 수 있지만 kubectl로 바로 만들 수 있기도 합니다. 이 방법은 이후 각 리소스에 대해 다..
4. 쿠버네티스 개발에서 배포까지 실습 개발 측면의 쿠버네티스 리소스인 인그레스, 서비스, 파드, 컨피그맵, 시크릿, 퍼시스턴트 볼륨, 퍼시스턴트 볼륨 클레임을 좀 더 확실하게 이해하기 위해 예제를 갖고 실습해 보겠습니다. 예제는 OTT 추천 서비스의 멤버 어플리케이션과 추천 어플리케이션입니다. 이 어플리케이션들은 스프링부트Spring Boot로 개발되어 있습니다. 뭔가 거창한 것 같지만 주소를 치면 결과를 간단하게 보여주는 어플리케이션들입니다. 멤버 마이크로서비스는 사용자ID에 대한 사용자 정보를 제공 합니다. http://{인그레스 주소}/member/members/{user id} 추천 어플리케이션은 사용자 ID에 대한 추천 OTT 정보를 제공 합니다. http://{인그레스 주소}/recommen..
3. 한장으로 이해하는 쿠버네티스 리소스 쿠버네티스 리소스들을 개발 측면과 운영 측면으로 나누어 설명 하겠습니다. 개발자 분들은 개발 측면의 쿠버네티스 리소스만 이해해도 쿠버네티스를 사용하시는데 큰 불편은 없으실 겁니다. 이 장의 목적이 개발자를 위한 쿠버네티스 핵심을 전달하는 것이기 때문에 운영 측면의 쿠버네티스 리소스들에 대해서는 간략하게만 소개하겠습니다. 개발 측면의 쿠버네티스 리소스들은 이어지는 각 절에서 실습을 하면서 배워보도록 하겠습니다. 쿠버네티스 리소스Resource와 오브젝트Object 차이 많은 사람들이 쿠버네티스 리소스와 오브젝트라는 용어를 명확히 구분하지 않고 사용하고 있습니다. 리소스와 오브젝트간의 관계는 자바에서 클래스Class와 오브젝트(객체)의 관계와 정확히 동일 합니다. 클..
2. 쿠버네티스 아키텍처 쿠버네티스를 처음 설치 하시는 분들은 가이드 대로 따라하기는 하는데 왜 이 작업을 해야 하는지 이해가 안되는 게 있을 겁니다. 그 궁금증들은 앞으로 과정을 진행하면서 자연스럽게 풀리게 될 겁니다. 쿠버네티스를 본격적으로 공부하기 전에 다른 제품들처럼 쿠버네티스도 아키텍처부터 이해할 필요가 있습니다. 먼저 쿠버네티스를 구성하는 컴포넌트들에 대해 이해하도록 하겠습니다. 컨테이너를 실행하고 관리하기 위해 어떻게 각 컴포넌트가 역할을 나눠서 하는지를 이해하면 이후에 쿠버네티스 리소스를 학습할 때 동작 원리가 좀 더 명확히 이해 됩니다. 두번째로 클러스터Cluster, 컨텍스트Context, 노드Node, 네임스페이스Namespace의 개념에 대해 배우도록 하겠습니다. 이 개념에 대해 이..
일단 쿠버네티스 설치부터 해 보겠습니다. 쿠버네티스를 싱글노드에 설치할 수도 있고 멀티노드에 설치할 수도 있습니다. 가상머신을 한대만 구할 수 있다면 싱글노드에 구성 하셔도 되나 실무 환경에 보다 가까운 멀티노드에 구성하실 것을 권고 합니다. 아래와 같은 순서로 설치 하시면 됩니다.(VM은 IBM Cloud가 아닌 AWS, Azure, Google 등 다른 곳에서 구매하셔도 됩니다.)실습을 위한 시스템 아키텍처는 아래와 같이 PC에 만든 가상머신을 배천노드로 사용하고 IBM 퍼블릭 클라우드에서 구매한 두대의 가상머신에 쿠버네티스를 설치하는 구성 입니다. 위 아키텍처 그림에 어플리케이션을 쿠버네티스 클러스터에 컨테이너로 배포하는 절차를 단순화하여 표시하였습니다. ❶ 개발 및 소스 업로드: 개발한 어플리케이..
- Total
- Today
- Yesterday
- agile
- 디토소비
- API Composition
- 스핀프로젝트
- 애자일
- Event Sourcing
- 스포티파이
- 돌봄경제
- spotify
- SAGA
- 버라이어티가격
- 마이크로서비스 패턴
- 호모프롬프트
- 요즘남편 없던아빠
- 육각형인간
- AXON
- micro service
- CQRS
- 리퀴드폴리탄
- 도파밍
- 마이크로서비스
- 분초사회
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |