아직 확립 된 표준이 없다고 생각합니다. 조종사의 차트가 너무 복잡해서 특히 관리되지 않는 다른 구성 요소가 k8 클러스터에서 실행되는 경우가 있습니다. 이것은 우리가 따르는 작업 흐름으로, 15 마이크로 마이크로 서비스와 5 개의 다른 환경 (devx2, staging, qa, prod)의 설정에 아주 잘 작동합니다.
2 개 개의 주요 아이디어 :
- 스토어가 다른 빌드 도구를 가지고 같은 소스의 repo에서 구성는 Kubernetes. 예 : 특정 마이크로 서비스를 작성/릴리스하기위한 도구가있는 마이크로 서비스 소스 코드와 함께.
- juja와 같은 kubernetes 구성을 템플릿으로 지정하고 타겟팅하는 환경에 따라 템플릿을 렌더링합니다. 주석
응용 프로그램 소스에 몇 가지 질문에 대답 :
툴링 함께 몇 bash는 스크립트를 넣어 또는 메이크 등
EDIT로 통합하여 파악하는 합리적으로 간단합니다 코드 저장소는 진실의 단일 소스로 사용됩니다. 따라서 모든 것이 제대로 작동하면 변경 사항을 kubernetes 클러스터에서 저장소로 이동해서는 안됩니다.
워크 플로우에서는 서버에서 직접 변경이 금지됩니다. 이런 일이 발생하면 수동으로 응용 프로그램 저장소에 다시 들어가야합니다.
다시 말해서 소스 코드에 저장된 구성은 실제로 템플릿이며 secretKeyRef
을 사용하는 것이 좋습니다. 즉, 일부 구성은 CI 툴링에서 렌더링되고 클러스터에서 살고있는 비밀 정보 (예 : 데이터베이스 비밀번호, API 토큰 등)에서 들어오는 일부 구성 요소가 있음을 의미합니다.
우리는 개발자가 구성 변경을 푸는 것을 잊어 버렸기 때문에 기본적으로'git pull && kubectl apply'를 루프에서 실행하는 [autoapply] (https://github.com/pascalgn/autoapply)를 만들었습니다. 매우 세련된 것은 아니지만 기본 아이디어에 관심이있을 수 있습니다. – user3151902