https://kubernetes.io/docs/tutorials/stateful-application/cassandra/ 이번 튜토리얼에서는 K8S 상에서 여러분이 어떻게 네이티브 클라우드 Cassandra 배포를 개발할 수 있는지 보여준다. 이 예시에서, 주문제작한(custom) Cassandra SeedProvider 는 새로운 Cassandra 노드들이 클러스터에 가입할 때, Cassandra가 그것들을 발견할 수 있도록 해준다.StatefulSets은 클러스터가 구성된 환경 속에서 stateful 한 애플리케이션을 배포하기 쉽도록 해준다. 이 튜토리얼에서 이용된, 그 특성에 관한 추가 정보는, StatefulSet 문서를 참조한다. Docker 기반 Cassandra이 튜토리얼 내 Pods는 구..
https://kubernetes.io/docs/tutorials/stateful-application/mysql-wordpress-persistent-volume/ 이번 튜토리얼은 Minikube를 이용하여 WordPress 사이트와 MySQL 데이터베이스를 배포하는 방법에 대해 소개한다. 두 애플리케이션 모두 데이터를 저장하기 위해 PersistentVolumes과 PersistentVolumeClaims을 사용한다.PersistentVolume(PV)는 관리자에 의해 수동으로 프로비저닝 되어지거나, StorageClass를 이용하여 K8S에 의해 동적으로 프로비저닝 되어진, 클러스터 내 하나의 스토리지 세트를 말한다. PersistentVolumeClaim (PVC)은 사용자에 의한 스토리지 요청으..
https://kubernetes.io/docs/tutorials/stateful-application/basic-stateful-set/ 이번 튜토리얼에서는 StatefulSets 을 갖는 어플리케이션을 관리하기 위한 입문서를 제공한다. StatefulSets Pod들에 대한 생성, 삭제, 스케일 그리고 업데이트에 대한 방법을 설명한다. StatefulSets 개념 간략 정리 먼저 stateful의 정의가 필요하여 구글링 해보니,"Stateful means the computer or program keeps track of the state of interaction, usually by setting values in a storage field designated for that purpose."..
https://kubernetes.io/docs/tutorials/configuration/configure-redis-using-configmap/ 이 페이지에서는 실제 현업에서 어떻게 ConifigMap 을 이용하여 Redis를 구성할 수 있는지에 대한 방법을 제시하고 ConfigMap 태스크를 이용하여 컨테이너들의 구성을 빌드해본다. Objectives ConfigMap을 생성한다.ConfigMap을 이용하여 파드 명세(specification)를 생성한다.파드를 생성한다.구성들이 정확하게 적용되어졌는지 검증한다. Before you begin K8S 클러스터가 필요하며, 클러스터와 커뮤니케이션할 수 있도록 구성되어진 kubctl CLI 도구도 필요하다. 클러스터 준비가 안된다면, Minikube ..
https://kubernetes.io/docs/tutorials/stateless-application/guestbook/ 이 강좌는 K8S와 Docker 를 이용한 단순한, Multi-tier 웹 애플리케이션을 빌드하는 방법에 대해 소개한다. 이 예제는 다음 컴포넌트로 구성된다: 방명록 기입을 저장할 단일 인스턴스 Redis 마스터 읽기 기능을 제공해 줄 복제된 Redis(replicated Redis) 인스턴스들다중 웹 프론트엔드 인스턴스들 Objectives Redis 마스터를 구동한다.Redis 슬레이브를 구동한다.프론트엔드 방명록을 구동한다.프론트엔드 서비스를 노출하고 View 한다.정리한다. 이번 튜토리얼 역시 두 가지 버전으로 동시에 실습을 병행할 것이다. 첫번 째는 Minikube 이고 ..
https://kubernetes.io/docs/tutorials/stateless-application/expose-external-ip-address/ 이 페이지는 K8S 서비스 오브젝트를 대상으로 외부 IP 주소를 노출키는 방법에 대해 보여준다. Objectives 5개의 Hello World 애플리케이션을 띄운다.외부 IP 주소로 노출시는 서비스 오브젝트를 생성한다.동작 중인 애플리케이션에 접근하기 위해 서비스 오브젝트를 이용한다. 이번 튜토리얼은 Minikube 환경과 On-Premise 로컬 K8S 클러스터 환경에서 진행해봤다. On-Premises(이하 On-Prem.) 의 경우, 원본에서 사용한 "8080" 포트는 이미 사용 중이므로, "5005" 포트로 변경하여 진행하였음을 참고하자. 독..
https://kubernetes.io/docs/tutorials/kubernetes-basics/update/update-intro/ Objectives kubectl 을 이용해 롤링 업데이트를 수행한다. Updating an application 사용자들은 애플리케이션이 항상 가용한 상태일 것이라 여기고 개발자들은 하루에 여러번씩 새로운 버전을 배포하도록 요구 받고있다. 쿠버네티스에서는 이것을 롤링 업데이트를 통해 이루고 있다. 롤링 업데이트는 파드 인스턴스를 점진적으로 새로운 것으로 업데이트하여 디플로이먼트 업데이트가 서비스 중단 없이 이루어질 수 있도록 해준다. 새로운 파드는 가용한 자원을 보유한 노드로 스케줄될 것이다. 이전 모듈에서 여러 개의 인스턴스를 동작시키도록 애플리케이션을 스케일했다. ..
https://kubernetes.io/docs/tutorials/kubernetes-basics/scale/scale-intro/ Objectives kubectl 을 통해 앱을 스케일링 해본다. Scaling an application 이전 모듈에서 우리는 디플로이먼트를 생성해봤고, 서비스를 통해 그것을 외부에 노출해 봤다. 애플리케이션을 동작시키기 위해 단지 하나의 파드를 생성하는 디플로이먼트 였다. 트래픽이 증가할 때, 우리는 사용자의 요구에 맞출 수 있도록 애플리케이션을 스케일링 해야만 할 것이다. 스케일링은 디플로이먼트에서 레플리카의 수를 변경함으로써 처리 할 수 있다. 여러분은 kubectl run 명령에 --replicas 파라미터를 이용하여 다중 인스턴스 디플로이먼틑가 시작되도록 생성해 ..
https://kubernetes.io/docs/tutorials/kubernetes-basics/expose/expose-intro/ Objectives K8S에서의 서비스에 대해 배운다.레이블과 레이블셀렉터 오브젝트가 어떻게 서비스와 관계하는지 이해한다.서비스를 이용하여 K8S 클러스터 외부로 애플리케이션을 노출한다. Overview of Kubernetes Services K8S 파드들은 언젠가는 죽게된다. 실제 파드는 생명주기를 갖는다. 워커 노드가 죽으면, 노드 상에서 동작하는 파드들 또한 종료된다. 레플리케이션 컨트롤러는 여러분의 애플리케이션이 지속적으로 동작할 수 있도록 새로운 파드들의 생성을 통해 동적으로 클러스터를 미리 지정해 둔 상태로 되돌려 줄 수도 있다. 또 다른 예시로서, 3개의 ..
https://kubernetes.io/docs/tutorials/kubernetes-basics/explore/explore-intro/ ObjectivesK8S 파드에 대해 배운다.K8S 노드에 대해 배운다.배포된 애플리케이션을 트러블슈팅 해본다. Kubernetes Pods 모듈 2에서 디플로이먼트를 생성할 때, K8S 는 애플리케이션 인스턴스를 호스트 해줄 파드를 생성해 줬다. 파드는 하나 또는 그 이상의 애플리케이션 컨테이너(Docker나 rkt 와 같은)의 그룹을 나타내는 K8S 의 추상화 개념이다. 그리고 이들 컨테이너는 다음과 같은 리소스를 공유한다.볼륨과 같은 스토리지유일한 클러스터 IP 주소와 같은 네트워킹컨테이너 이미지 버전 또는 사용할 특정 포트와 같이 각 컨테이너가 동작하게 될 방..