2016-09-20 2 views
1

Google 컨테이너 엔진 (GKE) 덕분에 kubernetes와 함께 (Symfony를 기반으로 한) API를 실행하려고합니다. 이 API를 사용하면 사용자는 어딘가에 저장해야하는 파일을 저장하고 다운로드 할 수 있습니다.GKE로 파일 업로드를 관리하는 방법은 무엇입니까?

1 개의 복제본으로 실행하려고 시도했는데 새 컨테이너를 만드는 동안 서비스가 다운 된 것으로 나타났습니다. 다운 타임을 피하기 위해서는 적어도 2 개의 복제본이 필요합니다. 고려가 촬영

, 나는 이러한 옵션에 대한 관심 :

  • 구글 영구 디스크를 기반으로 볼륨. 이것은 모든 복제본이 같은 노드에 있다는 것을 의미합니까? (ReadWriteOnce 액세스 모드). 그렇다면 노드에 장애가 발생할 경우 서비스를 이용할 수 없습니다.
  • Flocker (백엔드 영구 디스크) 기반의 볼륨입니다. GKE에 설치할 때 권장되는 방법은 무엇입니까?

다른 흥미로운 옵션이 있습니까? 무엇을 추천하나요 ?

+0

Google 클라우드 저장소에 파일을 저장하지 않는 이유는 무엇입니까? 따라서 복제본을 원하는만큼 실행할 수 있으므로 로컬 저장소에 신경 쓸 필요가 없습니다. – tex

답변

1

GSI를 사용하는 것은 아마도 가장 간단한 해결책 일 수 있으며 GKE 클러스터에서 매우 빠를 것입니다. 여기에 an answer that may help입니다.

로컬 영구 저장소가 특별히 필요한 경우 Google 영구 디스크를 사용할 수 있지만 쓰기 가능 상태로 마운트 할 수있는 위치는 한 곳뿐입니다.

Petsets (현재 알파)은 클러스터에 분산 된 영구 저장소를 더 잘 지원하므로 GCS가 작동하지 않는지 여부도 확인할 수 있습니다.

+0

GCS 솔루션을 사용해 보았습니다. 새로운 google-api/guzzle 버전에서 작동되게하려면 [어댑터] (https://github.com/KnpLabs/Gaufrette/blob/master/src/Gaufrette/Adapter/GoogleCloudStorage.php)를 수정해야했습니다. 실제로, 나는 다른 버전의 guzzle을 사용하는 다른 의존성을 가지고 있습니다. 내가 로컬에서 테스트했을 때 성능이 좋지 않았지만 Gaufrette가 만든 여러 API 호출 때문인 것으로 생각됩니다. 이 GCS 옵션을 사용하면 이미지의 URL이 GCS 서버를 직접 가리 키기로되어 있습니까? 아니면 먼저 내 API를 통과해야합니까? – Neko

+0

애완 동물에 관해서는 그러한 필요를 처리하는 것이 "공식적으로"권장되는 방법일까요? – Neko

+0

PetSets는 분산 된 영구 저장소를 관리하기위한 기본 요소를 제공하지만보다 단순한 저장소 추상화를 제공하기 위해 무언가가 petSets 위에 구축 될 가능성이 있습니다 (예 : [Cassandra] (http://blog.kubernetes.io/2016/07/thousand) -instances-of-cassandra-using-kubernetes-pet-set.html)). –