Programing

Kubernetes에서 복제 컨트롤러 VS 배포

crosscheck 2021. 1. 8. 21:16
반응형

Kubernetes에서 복제 컨트롤러 VS 배포


복제 컨트롤러와 Kubernetes (1.2) 내 배포의 차이점을 알고 싶었습니다. 시작하기 문서 ( http://kubernetes.io/docs/hellonode/ )를 살펴보면서 배포를 만들었지 만 웹 UI에 표시되지 않습니다.

웹 UI에서 앱을 만들면 복제 컨트롤러로 만들어집니다. 그러나 기능적으로는 매우 유사 해 보입니다 (둘 다 포드를 관리하고 서비스를 제공함).

그렇다면 차이점은 무엇이며 언제 각각을 사용해야합니까?


배포는 복제 컨트롤러보다 새롭고 높은 수준의 개념입니다. 복제 세트의 배치를 관리하고 (또한 새로운 개념이지만 복제 컨트롤러와 거의 동일 함) 복제본 세트를 쉽게 업데이트하고 이전 배치로 롤백 할 수 있습니다.

이전에는 kubectl rolling-update선언적이지 않고 롤백 기능을 제공하지 않은 상태 에서이 작업을 수행해야했습니다 .

Kubernetes 대시 보드는 아직 배포를 지원하도록 업데이트되지 않았으며 현재 복제 컨트롤러 만 지원합니다 ( Kubernetes 대시 보드에 표시되지 않는 배포 참조 ).

편집 : 이제 대시 보드에서 배포를 지원합니다.


배포 는 아직 베타 버전이므로 (API는 아래에 있음 extensions/v1beta1) UI에 표시되지 않는 이유 일 수 있습니다. 포드를 활성화하는 것 외에도 상태 전환을 자동화합니다. 링크 된 페이지에서 :

배포는 포드 및 복제본 세트 (차세대 복제 컨트롤러)에 대한 선언적 업데이트를 제공합니다. 배포 개체에서 원하는 상태를 설명하기 만하면 배포 컨트롤러가 제어 된 속도로 실제 상태를 원하는 상태로 변경합니다. 배포를 정의하여 새 리소스를 만들거나 기존 리소스를 새 리소스로 바꿀 수 있습니다.

또한 출시 내역 및 기타 유용한 기능을 제공합니다.

$ kubectl rollout history deployment/nginx-deployment
deployments "nginx-deployment":
REVISION    CHANGE-CAUSE
1           kubectl create -f docs/user-guide/nginx-deployment.yaml --record
2           kubectl apply -f docs/user-guide/new-nginx-deployment.yaml
3           kubectl apply -f docs/user-guide/bad-nginx-deployment.yaml

변경 사항도 추적합니다.

$ kubectl rollout history deployment/nginx-deployment --revision=2
deployments "nginx-deployment" revision 2
Labels:     app=nginx,pod-template-hash=1564180365
Annotations:    kubernetes.io/change-cause=kubectl apply -f docs/user-guide/new-nginx-deployment.yaml
Image(s):   nginx:1.9.1
No volumes.

이제 릴리스 1.1에서 Dashboard는 배포를 지원합니다. k8s 1.3 릴리스를 기다릴 필요없이 대시 보드를 배포하거나 업데이트 할 수 있습니다. 예를 들어 오늘 배포를 사용하도록 변경 공식 YAML 을 사용할 수 있습니다.

일반적으로 RC보다 훨씬 강력한 기본 (롤링 업데이트, 버전 관리 / 감사, canaray / green-blue 배포, 롤백 등 포함)이므로 배포를 사용하는 것이 좋습니다 (Google 및 Kubernetes 기여자도 권장합니다). .


대시 보드 (웹 UI)는 더 많은 리소스 (예 : DeploymentsDaemonSets등) 관리를 지원하도록 크게 재 설계되었으며 현재 대시 보드는 Deployments.

대시 보드에서 배포 관리는 곧 kubernetes 1.3에서 지원 될 예정입니다 ( 기능 요청 발행 : 배포 처리 참조 ).


내 경험에 따르면 배포가 필요한 모든 기능을 제공하지는 않습니다. 또는 잘못된 방식으로 사용하고 있습니다.

노드 서버를 다시 시작해야하는 경우 (배포에 의해 시작된 해당 서버에서 실행중인 모든 포드)가 실패합니다. 그리고 나는 이것을 피할 방법을 찾을 수 없습니다.

그러나,

생각 솔루션은 복제 컨트롤러입니다. 적어도 설명에서는 그러한 경우를 처리한다고 기록되어 있습니다.

내가보기에 주요 배포 이점은 앱 버전을 지속적으로 변경해야 할 때입니다.

따라서 두 가지 방법 모두 좋지만 다른 이유가 있습니다.

참조 URL : https://stackoverflow.com/questions/37423117/replication-controller-vs-deployment-in-kubernetes

반응형