또 다른 좋은 출발점은이 Vagrant 설정 , esp입니다. 호스트 OS가 Windows 인 경우. 명백한 이점은
- 빠르고 간편한 설정
- 기계를 쉽게 파괴 / 재생성
- 자원에 대한 암시 적 제한
- 여러 노드를 생성하여 수평 확장을 테스트하는 기능
단점-많은 RAM이 필요하고 VirtualBox는 VirtualBox입니다 ...
혼합 된 장점 / 단점은 NFS를 통한 파일 매핑입니다. 설정 과정에서 두 세트의 RC 정의를 만들었습니다. 하나는 애플리케이션 서버의 도커 이미지 만 다운로드하는 것입니다. 다른 하나는 HostOS-> Vagrant-> VirtualBox-> CoreOS-> Kubernetes pod에서 파일 매핑을 설정하는 7 개의 추가 라인이 있습니다. Docker 이미지에서 소스 코드를 덮어 씁니다.
이것의 단점은 NFS 파일 캐시입니다.이 캐시가 없으면 문제가 있고 느려집니다. 설정조차도 mount_options: 'nolock,vers=3,udp,noac'
캐싱 문제를 완전히 제거하지는 못하지만 대부분의 경우 작동합니다. 컨테이너에서 실행 된 일부 Gulp 작업은 호스트 OS에서 8 초가 걸리지 만 5 분이 걸릴 수 있습니다. 좋은 타협은mount_options: 'nolock,vers=3,udp,ac,hard,noatime,nodiratime,acregmin=2,acdirmin=5,acregmax=15,acdirmax=15'
.
자동 코드 재로드는 언어별로 다르지만 Django의 Python 용 devserver와 Node.js 용 Nodemon에 만족합니다. 프론트 엔드 프로젝트의 경우 물론 gulp + browserSync + watch와 같은 작업으로 많은 작업을 수행 할 수 있지만 많은 개발자에게 Apache에서 제공하는 것은 어렵지 않고 기존의 하드 새로 고침 만 수행합니다.
Kubernetes 용 yaml 파일 4 세트를 보관합니다. Dev, "devstable", stage, prod. 그들 사이의 차이점은
- 환경을 명시 적으로 설정하는 env 변수 (dev / stage / prod)
- 복제본 수
- devstable, stage, prod는 docker 이미지를 사용합니다.
- dev는 도커 이미지를 사용하고 그 위에 소스 코드가있는 NFS 폴더를 매핑합니다.
많은 bash 별칭과 자동 완성을 만드는 것은 매우 유용합니다 . 입력 만하면 rec users
됩니다 kubectl delete -f ... ; kubectl create -f ...
. 전체 설정을 시작하려면을 입력 recfo
하고 12 개의 서비스를 다시 생성하여 최신 도커 이미지를 가져오고 Staging 환경에서 최신 db 덤프를 가져오고 공간을 절약하기 위해 오래된 Docker 파일을 정리합니다.