Kubernetes에 배포 할 Jenkins 파이프 라인 작업
저는 Jenkins와 Kubernetes를 처음 접했으며 kubernetes에 배포하는이 방법이 옳은지 아니면 더 나은 방법이 있는지 잘 모르겠습니다. 모든 이미지는 Jenkins를 사용하여 빌드 된 다음 kubernetes에 배포됩니다. Yaml 파일은 kubernetes 서버 (centos 7)에 배치됩니다. Jenkins 파이프 라인 ssh를 kubernetes 서버에 사용하고 kubectl delete 실행
sh label: '', script: 'sshpass -p PASSWORD ssh -o StrictHostKeyChecking=no USER@SERVER kubectl delete svc SERVICE || true '
다음으로 유사한 코드를 실행하여 배포를 삭제 한 다음 배포를 생성하기 위해 kubectl create filename.yaml이 실행됩니다. 처음에는 괜찮 았지만 이제는 서비스와 배포가 삭제되고 다시 생성되기 때문에 다운 타임이 있음을 알았습니다. 더 쉽고 더 나은 작업을 위해 일부 플러그인을 사용해야합니까? yaml 파일을 다른 곳에 배치해야하므로 일부 변경이 필요한 경우 Kubernetes Centos에 연결하여 변경할 필요가 없습니까? 누군가 나에게 읽을 수있는 링크를 주거나 이것에 대한 좋은 관행을 가질 수 있습니까? 미리 감사드립니다!
답변
더 좋거나 최악의 방법은 없지만 귀하에게 적합한 방법이 있습니다.
모든 kubernetes 파일 (yamls 파일)을 git 저장소에 보관할 수 있으며 파이프 라인을 실행하면 Jenkins가 실행할 이러한 저장소를 검색합니다.
적용하기 전에 리소스를 삭제하는 이유를 잘 모르겠지만을 사용하는 kind: deployment경우에는 명령 kubectl apply을 rollingUpdate전략 과 함께 사용하여 가동 중지 시간을 피할 수 있습니다.
여기서 Jenkins를 사용한 배포 전략에 대한 많은 유용한 정보를 찾을 수 있습니다.
기타 유용한 링크 :
Kubernetes 배포
Jenkins K8s 플러그인