Meet Argo Rollouts v1.0

The right approach to Progressive Delivery







The Argo Team is proud to present Argo Rollouts v1.0! Find out why this project was launched and how we worked on it. See the releases page for installation instructions .







image







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 -:







image







ingress service mesh Rollouts , Linkerd (SMI), Istio, AWS LoadBalancer, Ambassador NGINX Ingress Controller.







image







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
      
      





, .







image







, canary, — , , . .







image







, , 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.









, v1.0. ingress , stage . .








All Articles