無知

갈 길이 먼 공부 일기

k8s 10

쿠버네티스 (18) | CRD, 서비스 카탈로그, 오픈시프트, Helm

앞으로의 스터디 내용은 을 기반으로 진행합니다. 자세한 내용은, 해당 책을 확인해주세요! http://www.yes24.com/Product/Goods/89607047 1. 사용자 정의 API 오브젝트 1.1 CustomResourceDefinition 1.2. 사용자 정의 컨트롤러 1.3. 사용자 정의 오브젝트 유효성 검증 1.4. 사용자 정의 API 서버 2. 서비스 카탈로그를 통한 셀프 서비스 2.1. 서비스 카탈로그 소개 2.2 서비스 카탈로그 API 서버 및 컨트롤러 매니저 2.3. ServiceBroker와 OpenServiceBroker API 2.4. 프로비저닝과 서비스 사용 2.5. 바인딩 해제와 프로비저닝 해제 3. 쿠버네티스 기반 플랫폼 3.1. 레드햇 오픈시프트 컨테이너 플랫폼 3...

쿠버네티스 (9) | 디플로이먼트

앞으로의 스터디 내용은 을 기반으로 진행합니다. 자세한 내용은, 해당 책을 확인해주세요! http://www.yes24.com/Product/Goods/89607047 파드를 최신 버전으로 교체하고 업데이트하기 파드를 선언적으로 업데이트하기 롤링 업데이트 기능 배워보기 잘못된 버전 롤아웃 방지하기 롤아웃 속도를 제어하기 이전 버전으로 파드 롤백시키기 애플리케이션 변경 시 업데이트하는 방법과, 무중단 업데이트 프로세스의 작동 방식에 대해 공부해보자. 쿠버네티스는 레플리카셋 기능을 활용하는 디플로이먼트 리소스를 통해 선언적으로 업데이트를 진행한다. 실행 중인 애플리케이션 업데이트 파드가 v1 태그 이미지를 기반으로 애플리케이션 버전1을 실행 중이라고 할 때, 최신 이미지인 v2 이미지가 개발되어 이미지 저장..

쿠버네티스 (7) | 컨피그맵, 시크릿

앞으로의 스터디 내용은 을 기반으로 진행합니다. 자세한 내용은, 해당 책을 확인해주세요! http://www.yes24.com/Product/Goods/89607047 애플리케이션은, 빌드된 애플리케이션 자체에 포함해서는 안되지만 필요한 설정 데이터들이 있다. 배포된 인스턴스별로 다른 설정들도 있고, 외부 시스템에 접근하기 위해 필요한 자격증명 관련 데이터도 있다. 이런 설정 옵션을 전달하는 방식에 대해 공부해 볼 예정이다. 컨테이너화된 애플리케이션 설정 일반적인 컨테이너화 애플리케이션은 다음과 같이 설정 옵션을 넘겨줄 수 있다. 명령줄 인수로 애플리케이션 설정 넘겨주기 환경변수 사용하기 볼륨을 통한 마운트 상대적으로 환경 변수의 사용이 더 보편적인데, 그 이유는 도커 컨테이너 내부 설정 파일을 사용하기..

쿠버네티스 (6) | 볼륨, 퍼시스턴트 스토리지

핵심 내용 다중 컨테이너 파드 생성 컨테이너 간 디스크 스토리지 공유용 볼륨 생성 파드 내부 깃 리포지터리 사용 파드 내 GCE 퍼시스턴트 디스크 등 퍼시스턴트 스토리지 연결 사전 프로비저닝된 퍼시스턴트 스토리지 퍼시스턴트 스토리지의 동적 프로비저닝 볼륨 소개 파드는 내부에 프로세스를 실행하고, 여러 리소스를 공유하는 논리적 호스트이지만, 디스크를 공유하지 못한다. 파드 내 각 컨테이너는 컨테이너 이미지에서 제공하는, 고유하게 분리된 파일시스템을 가진다. 새로운 컨테이너가 시작할 때 이미지 빌드 시 추가해둔 파일을 갖고 시작하기 때문에, 재시작시마다 파일시스템이 이미지대로 초기화된다. 즉, 이전에 종료된 컨테이너의 데이터를 가진 디렉터리를 보존하기 위해서는, 쿠버네티스 내에서 스토리지 볼륨을 정의해야 한..

쿠버네티스 (5) | 서비스

앞으로의 스터디 내용은 을 기반으로 진행합니다. 자세한 내용은, 해당 책을 확인해주세요! http://www.yes24.com/Product/Goods/89607047 서비스, 파드의 검색과 통신을 위한 요소 파드가 다른 파드에게 제공하는 서비스를 사용하기 위해서는, 다른 파드를 검색하고 인식할 수 있어야 한다. 쿠버네티스가 나오기 전에는 사용자가 서비스 제공 서버의 주소와 호스트 이름을 지정해 구성해줬지만, 쿠버네티스에는 해당하지 않는다. 서비스를 제공하는 파드 자체가 일시적이라는 특성이 있고, 파드는 시작 직전에 IP 주소를 받기 때문에 미리 주소를 알아 구성해줄 수 없기 때문이다. 나아가, 수평적인 스케일링을 제공하려면, 여러 파드가 동일 서비스를 제공해야 하므로, 여러 병렬적인 파드의 수와 무관하..

쿠버네티스 (4) | 레플리카셋, 데몬셋, 잡, 크론잡

앞으로의 스터디 내용은 을 기반으로 진행합니다. 자세한 내용은, 해당 책을 확인해주세요! http://www.yes24.com/Product/Goods/89607047 이번 챕터의 경우 전체 포스트를 완성하였으나 티스토리 오류로 임시저장본이 초기 작성 시기로 롤백되고, 기존 작성 분이 모두 사라진 관계로... 일단 스터디를 통해 기억나는 개념을 간단히 재정리하면서 간략한 정리본만 남기겠습니다 ㅠㅠ 파드의 안정적인 유지를 위해서, 컨테이너 외부 측면에서도 컨테이너의 상황을 확인하는 장치가 필요한데, 이를 위한 것이 쿠버네티스 라이브니스 프로브이다. 애플리케이션이 정상이라고 간주되는 조건을 http get 등의 방법을 통해 조회하여, 조건 충족 시 성공, 그렇지 않을 경우 실패로 판단한다. $ minikub..

쿠버네티스 (3) | 파드, 레이블, 네임스페이스, 어노테이션

앞으로의 스터디 내용은 을 기반으로 진행합니다. 자세한 내용은, 해당 책을 확인해주세요! http://www.yes24.com/Product/Goods/89607047 1. 파드란 여러 개의 컨테이너가 함께 배치된 컨테이너 그룹이자 쿠버네티스의 기본 빌딩 블록 파드는 논리적인 호스트로, 동일한 파드 내 프로세스는 각각이 컨테이너 형태로 캡슐화되었다는 점을 제외하면 동일한 머신 위에서 동작하는 것과 같다 일반적으로 파드 하나 당 하나의 컨테이너만 포함한다 하나의 파드에 여러 컨테이너가 포함된다고 해도, 그 컨테이너들은 모두 하나의 워커 노드에서 실행된다 1개의 워커노드에 여러 개의 파드가 포함되고, 각 파드에는 1개 이상의 컨테이너가 포함된다 하나의 컨테이너에 여러 프로세스를 실행하지 않고 다중 컨테이너를..

쿠버네티스 (2) | 도커와 쿠버네티스 튜토리얼

앞으로의 스터디 내용은 을 기반으로 진행합니다. 자세한 내용은, 해당 책을 확인해주세요! http://www.yes24.com/Product/Goods/89607047 도커를 사용한 컨테이너 이미지 생성, 실행, 공유하기 도커 설치와 Hello World 컨테이너 실행하기 리눅스 머신에 도커 설치하기 도커 설치 + 가상머신 생성 가상 머신 내 도커 데몬 구동 호스트 OS에서 도커 클라이언트 실행 파일 사용 가상머신 내 도커 데몬과 도커 클라이언트 간 통신 Busybox 이미지로 Hello World 컨테이너 실행하기 busybox는 표준 UNIX 명령줄 도구를 합쳐놓은 단일 실행파일 터미널을 통한 실행 > 별도 설치 없이 전체 애플리케이션이 다운로드되어 실행됨. $ docker run busybox ec..

쿠버네티스 (1-6) | 쿠버네티스의 기원과 개념

쿠버네티스의 개념 쿠버네티스란 무엇인가? 쿠버네티스는 컨테이너화된 워크로드와 서비스를 관리하기 위한 이식성이 있고, 확장가능한 오픈소스 플랫폼이다. 쿠버네티스는 선언적 구성과 자동화를 모두 용이하게 해준다. 쿠버네티스는 크고, 빠르게 성장하는 생태계를 가지고 있다. 쿠버네티스 서비스, 기술 지원 및 도구는 어디서나 쉽게 이용할 수 있다. 쿠버네티스란 명칭은 키잡이(helmsman)나 파일럿을 뜻하는 그리스어에서 유래했다. K8s라는 표기는 "K"와 "s"와 그 사이에 있는 8글자를 나타내는 약식 표기이다. 구글이 2014년에 쿠버네티스 프로젝트를 오픈소스화했다. 쿠버네티스는 프로덕션 워크로드를 대규모로 운영하는 15년 이상의 구글 경험과 커뮤니티의 최고의 아이디어와 적용 사례가 결합되어 있다. 쿠버네티스..

쿠버네티스 (1-5) | 쿠버네티스 소개

앞으로의 스터디 내용은 을 기반으로 진행합니다. 자세한 내용은, 해당 책을 확인해주세요! http://www.yes24.com/Product/Goods/89607047 서론 쿠버네티스 등장 배경 기존 소프트웨어 앱 트랜드 = 모놀리스, Monolith 모놀리스 (Monolith) 애플리케이션 : 여러 모듈이 상호작용하는 로직을 하나의 프로그램 내에서 구동시키는 방식 ⇒ 소규모 서비스엔 어울릴 수 있으나, 서비스가 거대해질수록 소프트웨어의 확장성 및 유연성이 줄어든다는 치명적인 단점이 있음 마이크로서비스 (Microservices) : 모놀리스 방식을 대체하기 위한 개념으로, 여러 모듈을 독립된 형태로 구성 ⇒ 언어에 종속되지 않고 변화에 빠르게 대응할 수 있으며, 각 모듈의 유지/보수(관리)가 쉬움 ht..