내가는 Kubernetes를 사용하여 배포 도커 용기에 자바를 사용하기위한 궁극적 인 모범 사례를 알아 내려고 노력하고 지역 환경 또는 코드를 개발하는 동안 . 이상적인 상태에서, 자바 개발자는 파이썬 / 자바 스크립트 개발자로 빠르게 이동 할 수 있어야한다,하지만 난 힘든 시간의 속도를 일치 (또는 가까이오고)를 데.
지금이 순간, 내가 수동으로 K8의 클러스터를 배포 작업이있다. 빌드 명령을 수동으로 (실행 후에 나의 자바 봄 프로젝트는 메이븐에 의해 구축 mvn clean install
, 나는 (그 실행 중이 아닌 경우) minkube을 실행하는 스크립트를 실행하여 그 후 나는이 이미지를 만들기 위해 스크립트를 실행하고 마침내가있다) apply
(포드에 컨테이너를 실행) 매니페스트 파일을 배포가.
나는 무엇을 놓치고 :
- 이 모든 (코드가 내장 된 후에 이미지를 구축하는 프로세스를 자동화하고 새로운 이미지를 사용하여 K8S 업데이트가 명확한 공간이) 수동으로 수행된다.
- 수동으로 지정 빌드 (코드를 파이썬 다시 실행을 저장합니다. 없음 핫 자바 세계에서 내 지식에 다시로드).
- 나는 로컬 개발 환경과 클라우드 호스팅 K8의 클러스터 사이의 통합을 참조 못하고있다. 그들은 클라우드에 배포 할 준비가 될 때까지 이상적으로, dev에 로컬 테스트 것입니다. 그들이 준비가되면, 버튼을 클릭하고 고정 표시기 이미지 변경 및 재 장전을 선택할 수있는 원격 레지스트리에서 클러스터 읽기를 위해 좋지 않을까.
슬프게도, Skaffold는 , 내가 사용에 흥분 할 것이라고 도구는 자바를 기본적으로 작동하지 않습니다. 오리 언어 (평, JS)와 또 다른 자바 개발진이 슈퍼 빠른 로컬 배포를 만들기 위해 사용되는 도구 및 경쟁력이 있습니까?
개발 워크 플로우에 대한 필자의 의견 :
- 마찬가지로 @Ortomala Lokni는 사용을 언급
docker-maven-plugin
메이븐 빌드에서 직접 고정 표시기 이미지를 구축 할 수 있습니다. - 당신은 사용할 수 있습니다 https://github.com/fabric8io/fabric8-maven-plugin을 는 Kubernetes 클러스터에 직접 밀어.
- 클러스터가 클라우드에서 호스팅되는 경우, 빌드 머신은 K8S API 서버에 도달 할 수 있어야합니다. 그리고 여러분은 SSH 터널 및 사용해야 할 수도 있습니다 보루를 클라우드 K8S 클러스터 'API 서버는 공개 여부에 따라.
- 로컬 K8S 테스트 클러스터에 대한 minikube 봐, 바탕 화면에 고정 표시기의 경우에도 최신 버전은 이제 단순한 K8S 서버에 내장되어 있습니다.
- Skaffold를 사용하지만, 문서를보고 기본하지 않은 것은 시사 그것이해야 또한 당신을위한 작업은, 코드를보고 고정 표시기 빌드를 발로과 K8S에 배포의 기본 기능 이상 걸립니다. 이러한 기능은 언어에서 동일하게 유지됩니다. 이 플러그인 위의이 받는다는 워크 플로우에 K8S에 빌드 고정 표시기 이미지와 배포를 통합했다 가졌어요.
당신은 빠른 것으로 파이썬 / JS를 언급하지만, 메모를 할 심지어 언어에 대한 기본 단계는 동일하게 유지하는 것이, 저장소, 업데이트, K8S 배포 밀어 고정 표시기 이미지를 구축 할 수 있습니다.
일식은 당신이 사용할 수있는 스프링 부팅 기반 microservice 말할 같이 또한 핫 배포는 심지어 일에, 자바와 함께 일했다 스프링 DEV-도구를 라이브 다시로드 및 자동 다시 시작을 할 수 있습니다. 하지만 난 당신이 고정 표시기 컨테이너에 라이브 변경을 처리하는 데 도움이됩니다 것을 인식하지 오전이 컨테이너를 고정 표시기에서 나는 불변로되어있다 부끄러워하도록 요청할 것입니다.