
개요 Kubernetes는 수 많은 객체들의 집합으로 구성되어 있으며, 이는 확장성 가능하게 구성되어 클러스터 내 장애 상황을 식별하는 것은 굉장히 번거로운 일이라고 볼 수 있다. 이로 인해 Kubernetes 클러스터 내의 다양한 각도에서 모니터링할 수 있는 환경을 구성하는 것은 장애 발생으로 인한 가동 중지 시간을 줄이거나 피할 수 있다. 대표적인 장애 상황은 다음을 예로 들 수 있다. 노드 문제 : 실패 상태의 Docker 데몬/Kubelet, CNI 실패로 인한 할당되지 않은 IP 주소 등 포드 문제 : Health Check 실패, Running 상태가 아닌 포드 등 네임스페이스 문제 : Pod를 배치할 수 없는 Namespace DNS 확인 문제 : CoreDNS lookup 실패 네트워크 문..

개요 Kubernetes가 대세로 자리 잡은 이후 다양한 3rd Party 솔루션과의 연동이슈는 끊임없이 발생하고 있다. Container Orchestrator(CO)와의 단일화된 인터페이스를 제공하기 위해 CRI(Container Runtime Interface), CNI(Container Network Interface), CSI(Container Storage Interface)가 등장하고 발전해 오고 있다. CSI의 등장이전에는 특정 볼륨에 대한 연결 방식을 Kubernetes가 제공하는 방식으로 구현되었다. 하지만 새로운 볼륨 플러그인이 지속적으로 추가되고, 특히 특정 볼륨을 제공하는 솔루션의 버전 변화에 일일이 대응하기에는 어려움이 있었다. 또한 볼륨 스토리지와의 연결을 위해 SDK 코드가 ..

개요 기본적으로 Kubernetes는 클러스터 내에서 실행되는 Pod 간 트래픽을 제한하지 않는다. 이와 같은 특징은 때때로 보안과 성능 또는 장애와 연관이 되는 문제들이 발생할 수 있다. NetworkPolicy는 Pod간 통신을 제어하는 오브젝트이다. 통신이 허용되는 네임스페이스를 지정하거나 더 구체적으로 각 정책을 적용할 수 있다. 즉 NetworkPolicy는 Pod 간 ACL을 수행하는 Kubernetes 오브젝트이다. NetworkPolicy는 실시간으로 적용되며, Pod 간에 연결이 열려 있는 경우 해당 연결을 방지하는 NetworkPolicy를 적용하면 연결이 즉시 종료된다. 제약조건 NetworkPolicy는 Inbound 트래픽과 Outbount 트래픽을 구분하여 정의할 수 있으며, 사..
개요 Kubernetes는 강력한 확장성과 안정성을 제공하는 Container Management Platform으로 이미 대표적인 클라우드 컴포넌트로 자리를 확고히 하고 있다. 많은 기업에서 Kubernetes를 활용하고 있지만, 정작 Container에 대한 보안이나, Kubernetes에 대한 보안 정책은 자리잡지 못하고 있으며, 이로 인해 보안 침해 사고가 터져 나오고 있는 실정이다. 보안문제는 개인이나, 중-소 규모의 기업에서 온전히 대응하는 것은 조직을 구축하는 것부터 체계를 수립하는 것까지 쉽지 않은 일이라는 점때문에 여전히 대응 방안을 수립하기 어려운 실정이다. 이에 여러 오픈소스 소프트웨어들의 조합으로 최소한의 문제들을 진단하고 사전에 검증할 수 있는 방법을 살펴보도록 하자. 지금부터 프..

개요 Polaris는 Kubernetes Pod 및 Controller가 모범 사례를 사용하여 구성되었는지 확인하기 위해 다양한 검사를 실행하여 향후 발생 가능한 문제를 사전에 방지하는데 도움을 주는 도구이다. Polaris는 세 가지 모드로 실행할 수 있다. 대시보드로 클러스터 내에서 실행 중인 항목을 감사할 수 있다. 승인 컨트롤러로서 조직의 정책을 준수하지 않는 워크로드를 자동으로 거부할 수 있다. CLI로 CI/CD 프로세스의 일부로 로컬 YAML 파일을 테스트할 수 있다. 설치 대시보드는 아래와 같이 yaml 파일을 통해 다운로드 받아 설치 할 수 있다. yaml 파일위치는 각 최신 버전을 기준으로 아래 경로에서 다운로드 받을 수 있다. https://github.com/FairwindsOps/..
Kubernetes Tools 활용 Kubernetes는 수많은 api의 조합으로 이뤄져 있다. 이를 조합하여 Kubernetes를 효율적으로 운영할 수 있는 다양한 도구를 만들어 낼 수 있다. 이미 수많은 플러그인이 개발되어 활용되고 있으며, 개발환경은 물론 운영환경에서도 효과적으로 사용할 수 있다. 지금부터는 Kubernetes를 사용하는 환경에 적용하기 용이한 플러그인들을 소개하고 직접 구축해 보도록 하자. kubectl krew 먼저 살펴볼 내용은 kubernetes cli 도구 kubectl의 플러그인을 관리하는 패키지 매니저 krew에 대해 알아보자. krew를 사용하면, 손쉽게 kubernetes 관련 플러그인들을 설치할 수 있다. https://github.com/kubernetes-sig..

개요 Pod는 Kubernetes에 어플리케이션을 배치하기 위한 최소 오브젝트 단위이다. 하나 이상의 컨테이너를 가질 수 있고, 짧은 라이프사이클을 통해 생성되고 삭제된다. 마이크로서비스와 같은 분산 환경에서 수 많은 Pod 들의 상태를 관리하는 것은 굉장히 어려운 일이다. 컨테이너로 세분화 된 어플리케이션은 잦은 상태 변화(Pod의 동작에 이상이 발생하거나, 상태가 변화할 경우)가 발생되며, 이에 따른 변화 요소를 수동으로 찾아가기 어렵기 때문에, 시스템이 스스로 감지하고 해결해야 하며, 이 모든 작업은 자동으로 수행될 수 있도록 구축해야 한다. 또한, 분산 시스템의 경우 실패 처리가 핵심이다. Container Management Platform은 시스템 상태를 감시하고 수행이 중지된 서비스를 다시 ..

개요 Kubernetes는 Cluster, User, Namespace를 조합한 Context라는 오브젝트를 제공한다. Context는 독립적인 단위로 흔히 우리가 생각하는 클러스터를 Context 단위로 볼 수도 있지만, 사실 그보다 더 세분화된 단위라고 볼 수 있다. 이번 포스팅에서는 멀티 Cluster 환경에 각 클러스터에 보다 빠르게 접근하여 변경을 관리할 수 있는 Context 적용 방법에 대해 알아보도록 하자. 멀티 클러스터 접근 구성 Kubernetes 클러스터를 처음 설정할 때 $HOME/.kube 디렉토리에 config 파일이 생성된다. config 파일은 우리가 흔히 이야기 하는 kubeconfig 파일이며, Kubernetes 클러스터와의 연결에 대한 정보를 저장하는데 사용된다. ku..

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에 빠르게 이식..
- Total
- 1,557,314
- Today
- 32
- Yesterday
- 383
- API Gateway
- jeus
- k8s
- OpenStack
- SA
- aa
- nodejs
- aws
- kubernetes
- 아키텍처
- Architecture
- openstack token issue
- MSA
- 마이크로서비스
- JEUS6
- apache
- SWA
- JEUS7
- 쿠버네티스
- Da
- 오픈스택
- 마이크로서비스 아키텍처
- git
- openstack tenant
- node.js
- wildfly
- Docker
- TA
- JBoss
- webtob