OpenStack Magnum 설치
·
Cloud Infrastructure/OpenStack Magnum
OpenStack : 데이터센터 수준의 인프라(IaaS, Infrastructure as a Service)를 자동화 및 관리를 위한 오픈소스 클라우스 플랫폼주요 기능은 다음과 같다.Nova : 가상머신 관리Glance : 이미지 저장소Neutron : 네트워크 관리Cinder 블록 스토리지Keystone : ID 및 인증 관리Heat : 오케스트레이션Horizon : GUI 대시보드...OpenStack Magnum : OpenStack 위에서 Kubernetes 같은 컨테이너 클러스터를 자동으로 생성/관리할 수 있게 하는 오픈소스 서비스즉, OpenStack의 자원(Nova, VM, Neutron 등)을 기반으로 Kubernetes, Docker Swarm, Mesos 같은 COE(컨테이너 오케스트레..
쿠버네티스 서비스 사용하기
·
Cloud Infrastructure/Kubernetes
파드 간 네트워크 연결을 담당하는 쿠버네티스 서비스(Service) 리소스를 알아보자. 먼저 쿠버네티스 환경에서 파드 간 연결을 담당하는 서비스가 왜 필요한지 알아보자.쿠버네티스는 파드에 문제가 발생하면 문제가 발생한 파드를 수정하지 않고 문제가 생긴 파드를 곧바로 종료하고 새로운 파드를 만든다. 이것으로 애플리케이션의 장애 대응 시간을 감소시킨다.쿠버네티스 서비스(Service)는 실시간으로 파드가 종료되고 생성되는 환경에서 파드 간 연결을 자동으로 가능하게 한다. 서비스는 동적으로 각 파드 간 연결을 제공한다. IT 업계에서는 이러한 개념을 서비스 디스커버리(Service Discovery, 서비스 발견)라고 한다. 쿠버네티스는 클러스터 내부/외부 연결에 따라 서비스 타입을 구분한다.클러스터 내부에서..
헬름(Helm) 기반으로 애플리케이션 설치하기
·
Cloud Infrastructure/Kubernetes
현업에서 애플리케이션을 실행하기 위해서 쿠버네티스 리소스가 여러 개 필요한 경우가 많다.파드의 노출을 담당하는 서비스(Service), 애플리케이션 설정에 관련된 컨피그맵(ConfigMap), 기밀 정보를 다루는 시크릿(Secret) 등을 하나의 애플리케이션에 포함하는 것이 대표적이다.이런 다양한 리소스를 각각 관리하지 않고 하나의 패키지로 관리하는 도구가 헬름(Helm)이다.헬름의 주요 구성 요소 : 헬름 차트, 헬름 리포지토리, 헬름 템플릿헬름을 이용해 쿠버네티스 환경의 애플리케이션을 설치하려면 먼저 헬름의 주요 구성 요소를 이해해야 한다.헬름 차트헬름 차트 : 애플리케이션 설치에 사용되는 네트워크, 스토리지, 보안과 관련된 여러 쿠버네티스 리소스를 묶어놓은 패키지헬름 차트를 통해 애플리케이션을 설치..
쿠버네티스 트러블슈팅
·
Cloud Infrastructure/Kubernetes
쿠버네티스 트러블슈팅의 기본 프로세스를 알아보자.일반적으로 쿠버네티스 작업 순서는 아래와 같다.Apply → Get → Describe → Logs → Get EventYAML 파일을 이용해 오브젝트를 생성(apply)하고 생성한 오브젝트 리스트는 get 명령어로 확인만약 파드가 정상적으로 생성되지 않으면 상세한 설정 정보를 describe 명령어로 확인이후 애플리케이션 관련 에러는 logs 명령어로 확인하고 쿠버네티스 클러스터 관련 메세지는 이벤트 명령어 get event로 확인기본 트러블슈팅 프로세스 이해YAML 파일에서 이미지 버전을 임의로 수정해 에러 상황을 만들어보자.# nginx-error-pod.ymlapiVersion: v1kind: Podmetadata: name: nginx-19spe..
YAML 파일을 이용한 쿠버네티스 오브젝트 관리
·
Cloud Infrastructure/Kubernetes
이전에 kubectl 명령어로 쿠버네티스 오브젝트를 관리하는 방법을 알아봤다.하지만 복잡한 옵션을 사용해야 할 때는 명령어로 오브젝트를 관리하기가 쉽지 않아서 코드로 구현하는게 더 좋다. 특정 노드에 파드가 실행되지 않고 여러 노드에 파드를 분산해서 배치하는(anti-affinity) 설정 예시를 보자.affinity: podAntiAffinity: preferredDuringSchedulingIgnoredDuringExecution: - podAffinityTerm: labelSelector: matchExpressions: - key: app operator: In valu..
kubectl 명령어로 익히는 쿠버네티스의 주요 오브젝트
·
Cloud Infrastructure/Kubernetes
kubectl의 주요 명령어와 쿠버네티스의 주요 오브젝트(파드, 디플로이먼트, 네임스페이스 등)를 알아보자.쿠버네티스에서는 kubectl 명령어로 쿠버네티스 오브젝트를 생성하고 생성한 리스트들을 확인할 수 있다. 이번에 알아볼 kubectl 주요 명령어들은 다음과 같다.run, create : 파드와 디플로이먼트 생성get, exec : 생성된 파드 현황 조회 및 파드 내 bash 스크립트 실행(파드 접속)scale, delete : 파드의 수량 증가/감소 및 오브젝트 삭제create namespace : 네임스페이스 생성쿠버네티스 오브젝트란 쿠버네티스 API 서버로 생성하는 영속성을 가지는 모든 실체를 말한다.애플리케이션을 실행하고 애플리케이션에 필요한 추가 리소스를 지정하고 고가용성 관련 설정을 하는..
쿠버네티스 클러스터 관리를 위한 kubectl CLI 환경 최적화
·
Cloud Infrastructure/Kubernetes
kubectl 자동 완성과 명령어 alias 활용kubectl 관련 명령어는 자동 완성 기능을 지원한다.나는 zsh 환경에서 진행했고, 다른 쉘(bash 등)을 사용하는 경우 과정이 살짝 다를 수 있으나 비슷할 거라고 생각한다. 또한, alias 설정으로 kubectl을 다 치지 않고 'k'만으로 kubectl 명령어를 사용할 수 있다.echo 'source >~/.zshrcecho 'alias k=kubectl' >>~/.zshrcsource ~/.zshrcapi- 만 입력하고 tab키를 누르면 관련 명령어가 자동으로 완성되는 것을 확인할 수 있다. 자주 사용하는 kubectl 명령어도 alias 등록을 해두자.cat > ~/.zshrcalias ka="kubectl apply --recursive -..
쿠버네티스 개요와 클러스터 설치
·
Cloud Infrastructure/Kubernetes
[24단계 실습으로 정복하는 쿠버네티스] 책 내용을 공부하며 정리하려고 한다.실습 환경 세팅Vmware에 Ubuntu 24.04 3대를 설치한 뒤 진행했다.각 가상 머신의 사용자 이름은 kube1, kube2, kube3으로 설정했다. 그 후 각 가상 머신에서 /etc/hosts 파일에 아래 3라인을 추가했다.127.0.0.1 localhost...xxx.xxx.xxx.xxx kube1xxx.xxx.xxx.xxx kube2xxx.xxx.xxx.xxx kube3ssh 접속 시 비밀번호를 입력하지 않고 암호화 키를 이용해 접속하도록 설정했다.ssh-keygen -t rsa -b 4096ssh-copy-id kube1ssh-copy-id kube2ssh-copy-id kube3위 명령어들을 3대의 가상 머신에..