Kubeflow 란? Kubeflow는 Kubernetes 환경에서 머신러닝을 분석할 수 있는 오픈소스 기계 학습 플랫폼이다. Kubeflow를 이용하면, 손쉽게 분석환경을 구축할 수 있으며, 직접 커스터마이징한 이미지를 구동하여 접속할 수 있는 대시보드 환경을 제공한다. kubeflow가 제공하는 다양한 기능에 대해서는 하나씩 구축해 나가면서 알아보기로 하자. Minimum system requirements 먼저 Kubeflow 구축 과정이다. 앞서 이야기한데로 Kubeflow가 구성되기 위해서는 Kubernetes 환경이 사전에 구축되어 있어야 한다. 실제로 Kubeflow는 복잡한 시스템을 배포, 확장 및 관리하기 위해 Kubernetes를 기반환경으로 사용한다. Kubeflow는 Kubernet..
서론 Legacy 환경에서 각 환경별(개발, 테스트, 운영)로 설정을 구분하기 위해 우리는 Property를 활용해 왔다. Property를 적용하기 위해 application.properties나 application.yml과 같은 설정 파일 기반으로 적용하거나 @Configuration 어노테이션을 사용하여 각 환경 별 구분된 환경 정보를 가져갈 수 있었다. 이러한 방식은 모두 애플리케이션 레벨에서 환경 설정을 관리하는 방법이라 할 수 있다. 최근 애플리케이션은 Cloud Native하게 개발하기 위해 개발방식도 변화되어 가고 있다. 특히 Spring Boot 기반의 가볍고 빠른 개발을 지원하는 Runtime Framework의 활용도가 높아지고 있으며, 이는 Cloud Platform에 빠르게 이식..
서론Docker는 Container를 기동하는 표준으로써 오랜기간 자리잡아 왔다. 특히 Kubernetes가 Docker를 Runtime Container로 활용하면서 그 위상은 점점 커져왔다. 그 위상은 지속될 것이라 생각해 왔고, 여전히 최선의 방법이자, 최고의 방법이지만, 최근 Docker의 CE 버전 중단 선언, 무거운 기능, SPOF 등의 문제들이 계속 대두되며, 다양한 Runtime Container 들이 대안으로써 떠오르고 있다. 특히 Kubernetes에서 정식으로 Docker 이외에 RKT, Containerd 그리고 오늘 알아볼 CRI-O 등을 Runtime Container로 채택하며, Docker의 자리를 위협하고 있다. Docker 단점1) High & Low Level Runti..
서론 Knative는 Kubernetes 환경에서 동작하는 서버리스 클라우드 네이티브 애플리케이션(Severless CNA)을 배포, 실행, 관리하기 위한 오픈소스 소프트웨어이다. Knative의 구성 요소는 Kubernetes를 기반으로 구축되어 복잡한 세부 사항을 추상화하고 개발자가 비즈니스 개발에만 집중할 수 있도록 하여, 개발자의 생산성을 높일 수 있다. 또한 Knative는 Serverless Computing으로 요청이 있을 때만 코드를 실행하고, 요청이 많을 경우에는 그에 비례하는 자원을 동적으로 Scale In-Out 또는 Zero 상태까지 유지하도록 하여 사용률과 확장성을 극대화할 수 있으며, 인프라 비용을 효과적으로 절감할 수 있다. Public Cloud의 대표적인 Serverless..
Kubernetes에는 Linux / Unix Operation System에 존재하는 CronTab을 구현한 CronJob이 존재한다. CronJob은 반복적이고 Scheduling 된 업무를 동작하게 하는 방법 중 하나로 CronTab이 항상 OS Level의 Configuration으로 남아 있는것과 달리 휴발성 있는 컨테이너에서 Job을 실행하고 종료하는 방식으로 보다 안전한 관리 방식을 제공한다. 또한 OS 외 Kubernetes Level의 RBAC 권한 관리 방안으로 보다 안전하게 명령어 레벨을 실행할 수 있도록 제한할 수 있다. CronJob 먼저 CronJob에 대해 알아보자. CronJob은 CronTab에 정의된 한 줄의 Scheduling과 같다고 볼 수 있다. CronTab과 같이..
Kubernetes는 배포 최소단위로 Pod를 사용한다. Pod는 하나 이상의 Container를 포함하는 배포 단위이다. 이때, 컨테이너는 여러 형태로 존재할 수 있는데, 기동 시점에 처리하고 종료되고 Init Container 실제 업무를 처리하는 Runtime Container 보조 역할로써 배포되는 SideCar Container 등이 존재한다. 우리는 일반적으로 생각하는 Runtime Container만 다루곤 하는데, 때로는 다른 형태의 컨테이너를 이해하고 있어야 실제 장애에 대응할 수 있는 상황이 주어지기도 한다. 예를 들어 다음과 같은 상황을 살펴보도록 하자. 앞서 다음 포스팅에서 트러블슈팅을 진행하는 몇가지 방법에 대해 알아보았다. (참조) Kubernetes - 장애 발생 시 진단 Pr..
지금까지 Helm 사용법 및 Helm Customizing 방법에 대해 알아보았다. 자세한 내용은 아래를 참조한다. Helm3 기본 명령어 확인 및 Kubernetes deploy Helm3 Chart 커스터마이징 Helm의 사용법에 대해 알아보았으니, 이제 이를 활용한 Best Practice를 알아보고, 효과적으로 적용해 보도록 하자. 본 포스팅은 Helm 공식 사이트인 아래 URL을 참고하였다. https://helm.sh/ Helm Helm - The Kubernetes Package Manager. helm.sh 공통 규칙 1. Chart Name - Chart 이름은 소문자 + 숫자의 조합으로 구성되며, 두개 이상의 단어는 대시(-)로 구분한다. - Chart 이름은 대문자, 밑줄(_), 점(..
"Helm Chart를 활용하여 MSA 기반의 복잡하고 많은 yaml 파일들을 관리하는 것은 당연하면서도 필수적인 방법이다. 이를 통해 유연한 변경관리, 버전관리, 즉각 대응, 가독성 향상, 불필요한 설정 파일 최소화 등 많은 이점을 가져갈 수 있다." 앞선 포스팅에서는 Helm3를 이용한 다양한 CLI 명령어 활용법과 Kubernetes에 배포하는 방법에 대해 알아보았다. 다시한번 확인하고 할 경우 다음을 참조한다. Helm3 기본 명령어 확인 및 Kubernetes deploy 이번 포스팅에서는 Helm 기반 실제 프로젝트 환경에서 chart를 관리하는 과정에 대해 본격적으로 살펴보도록 하자. helm chart 생성 chart를 생성하는 방법은 크게 2가지 방법이 있다. 하나는 helm create..
"Helm은 Kubernetes의 yaml 파일을 관리하는 Chart 관리 매니저이다. 복잡한 Yaml 파일을 Chart 단위로 관리하며, Chart는 각 서비스 별 정의되는 value 파일을 기반으로 디플로이를 실행한다." helm을 기반으로 배포를 진행하기 위해서는 먼저 사전 준비해야 하는 작업이 있다. - kubernetes install - kubeconfig 파일을 로딩할 수 있도록 workstation server에 credential 구성 그럼 지금부터 Helm 3의 Chart 관리 프로세스에 대해 살펴보고 Kubernetes 배포 과정에 대해 알아보자. Helm 3 기본 명령어 Helm 3는 Chart라는 하나의 배포 단위를 생성하여 동일한 deployment를 갖고 있는 여러 서비스 집합..
개요 Kubernetes는 Pod 간 또는 다른 네트워크와 통신할 수 있도록 네트워크 Policy를 정의할 수 있다. Kubernetes는 네티워크 정책을 지정하기 위해 NetworkPolicy 리소스를 사용하며, Label을 사용하여 Pod를 지정하고 해당 Pod로 유입되는 모든 네트워크 트래픽을 구성한다. 네트워크 정책은 네트워크 플러그인으로 구현된다. Kuberentes 는 CNI와 Kubenet 네트워크 플러그인을 지원한다. Kubernete를 통해 구현되는 Pod는 기본으로 네트워크가 격리되지 않는다. 즉 Pod는 모든 네트워크에서 들어오는 유입을 허용한다. 이와 같이 유입을 모두 허용하는 Pod는 불 특정 요청에 노출되고 외부로 부터 침입 당할 수 있는 상태가 되어 보안에 유협받을 수 있다. ..
- Total
- Today
- Yesterday
- k8s
- git
- Docker
- SA
- openstack token issue
- jeus
- SWA
- kubernetes
- OpenStack
- node.js
- JEUS6
- openstack tenant
- nodejs
- 오픈스택
- 마이크로서비스
- JBoss
- TA
- webtob
- 쿠버네티스
- JEUS7
- apache
- wildfly
- Architecture
- 아키텍처
- aa
- 마이크로서비스 아키텍처
- API Gateway
- Da
- aws
- MSA
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |