El enfoque correcto para la entrega progresiva
¡El equipo de Argo se enorgullece de presentar Argo Rollouts v1.0! Descubra por qué se lanzó este proyecto y cómo trabajamos en él. Consulte la página de versiones para obtener instrucciones de instalación .
2019 Intuit Kubernetes. Kubernetes , blue-green canary, — Spinnaker. , API . Rolling update . staging preview, . Kayenta, , Spinnaker.
deployment controller Kubernetes, , . Argo Rollouts, blue-green canary- Kubernetes.
, . - . Rollouts — progressive delivery.
Progressive delivery — , , , (, ).
- (, ), . progressive delivery KubeCon.
progressive delivery Rollouts, , . Intuit , , , . Argo Rollouts , canary ingress service mesh. . , Prometheus, DataDog, NewRelic, Wavefront, Kayenta, Job -:
ingress service mesh Rollouts , Linkerd (SMI), Istio, AWS LoadBalancer, Ambassador NGINX Ingress Controller.
KubeCon (1, 2) Argo Argo Rollouts v1.0! Rollouts , Intuit QuickBooks TurboTax, . v1.0.
Rollouts
, canary progressive delivery, , . , kubectl argo rollouts . , dashboard
http://localhost:3100/:
$ kubectl argo rollouts dashboard
, .
, canary, — , , . .
, , Service/Ingress ( ). , , Argo CD .
Kubernetes Prometheus
: Kubernetes, Rollout, , . , .
TYPE REASON OBJECT MESSAGE Normal RolloutUpdated rollout/guestbook Rollout updated to revision 1 Normal NewReplicaSetCreated rollout/guestbook Created ReplicaSet guestbook-698fbfb9dc (revision 1) with size 1 Normal RolloutCompleted rollout/guestbook Rollout completed update to revision 1 (698fbfb9dc): Initial deploy Normal RolloutUpdated rollout/guestbook Rollout updated to revision 2 Normal NewReplicaSetCreated rollout/guestbook Created ReplicaSet guestbook-644bd86dd8 (revision 2) with size 1 Normal ScalingReplicaSet rollout/guestbook Scaled down ReplicaSet guestbook-644bd86dd8 (revision 2) from 1 to 0 Warning RolloutAborted rollout/guestbook Rollout aborted update to revision 2 Normal ScalingReplicaSet rollout/guestbook Scaled up ReplicaSet guestbook-644bd86dd8 (revision 2) from 0 to 1 Normal RolloutStepCompleted rollout/guestbook Rollout step 1/2 completed (setWeight: 50) Normal RolloutPaused rollout/guestbook Rollout is paused (CanaryPauseStep) Normal RolloutStepCompleted rollout/guestbook Rollout step 2/2 completed (pause: 3s) Normal RolloutResumed rollout/guestbook Rollout is resumed Normal ScalingReplicaSet rollout/guestbook Scaled down ReplicaSet guestbook-698fbfb9dc (revision 1) from 1 to 0 Normal RolloutCompleted rollout/guestbook Rollout completed update to revision 2 (644bd86dd8): Completed all 2 canary steps
, Prometheus, Prometheus:
# HELP rollout_events_total Count of rollout events # TYPE rollout_events_total counter rollout_events_total{name="guestbook",namespace="default",reason="NewReplicaSetCreated",type="Normal"} 4 rollout_events_total{name="guestbook",namespace="default",reason="RolloutAborted",type="Warning"} 2 rollout_events_total{name="guestbook",namespace="default",reason="RolloutCompleted",type="Normal"} 4 rollout_events_total{name="guestbook",namespace="default",reason="RolloutPaused",type="Normal"} 4 rollout_events_total{name="guestbook",namespace="default",reason="RolloutResumed",type="Normal"} 2 rollout_events_total{name="guestbook",namespace="default",reason="RolloutStepCompleted",type="Normal"} 6 rollout_events_total{name="guestbook",namespace="default",reason="RolloutUpdated",type="Normal"} 4 rollout_events_total{name="guestbook",namespace="default",reason="ScalingReplicaSet",type="Normal"} 6
Rollout — . Rollout. (Slack, PagerDuty . .) , , , canary .
Argo Rollouts Deployment. Rollout , Rollouts Deployment Rollout. v1.0 — (workload referencing).
, spec.template
Deployment Rollout , Deployment:
apiVersion: argoproj.io/v1alpha1 kind: Rollout metadata: name: guestbook-rollout spec: replicas: 5 workloadRef: apiVersion: apps/v1 kind: Deployment name: guestbook-deploy strategy: canary: steps: - setWeight: 20 - pause: {duration: 10s}
— Deployment. Rollouts. Rollouts :
- Rollouts
- , , Rollouts
-
replias: 0
Deployment.
ArgoRollouts, kubernetes deployment controller.
kustomize, , , , . — Deployment, Rollout .
( . ):
- Ambassador Edge Stack.
- canary- Istio, DestinationRules VirtualService .
- Kubectl (, Rollout ).
- , 500.
. Argo Rollouts! : Bilibili, Bucketplace, CodeFresh, DataDog, Datawire, Dynatrace, Intuit, NewRelic, Onfido, Paypal, Quizlet, Salesforce, Shipt, Skillz Spotify.