SlideShare a Scribd company logo
How Containerized Pipelines and Kubernetes
Can Boost Your CI/CD
DevOpsCon London, September 2020
Nico Meisenzahl
• Senior Cloud & DevOps Consultant at white duck
• GitLab Hero, Microsoft MVP & Docker Community
Leader
• loves Kubernetes, Cloud-Native & DevOps
© white duck GmbH 2020
Phone: +49 8031 230159 0
Email: nico.meisenzahl@whiteduck.de
Twitter: @nmeisenzahl
LinkedIn: https://www.linkedin.com/in/nicomeisenzahl
Blog: https://meisenzahl.org
Agenda
• containerized pipeline – why?
• pipeline workload on Kubernetes with GitLab CI/CD
• container image builds on Kubernetes with Kaniko
• cloud-native pipelines with Tekton
© white duck GmbH 2020
Containerized Pipelines – Why?
• for the same reasons why you should use containers
• isolation
• dependencies
• scalability
• immutability
• example: your new project needs version X all others still require Y
• you can include any kind of build / deploy dependency
• NodeJS, .NET Core, Go, Terraform, Ansible… you name it
© white duck GmbH 2020
docker run
• running Docker on build hosts is a familiar pattern
• but: docker run pipeline jobs have some issues
• containers are immutable
• you will end up managing caching and artifacts on your own
• (and we're not even talking about building containers)
© white duck GmbH 2020
GitLab Runner Kubernetes executor
• a Gitlab Runner that is aware of Kubernetes
• integrates your CI/CD with Kubernetes
• runs itself within your Kubernetes Cluster (as pod)
• schedules pipeline jobs as pods
• allows you to share your compute and scale your pipelines
• easy deployment
• one-click
• production ready Helm deployment
© white duck GmbH 2020
Cloning, Caching and Artifacts
• GitLab Runner Kubernetes executor runs service containers within
the pipeline job pod to handle cloning, caching and artifacts
• every pipeline job contains out of these stages
• prepare → creates pod with build and service containers
• pre-build → clones repo, restore cache, download artifacts
• build → user build steps
• post-build → creates caches and upload artifacts
© white duck GmbH 2020
Advanced topics
• supports advanced configurations like
• resource limits for build jobs
• CI services for build dependencies
• node selectors for runners
• …
© white duck GmbH 2020
Pipeline job image
• contains everything a single pipeline job needs
• binaries, libraries, tools, ...
• provides all external dependencies
• uses a pipeline to build/rebuild it periodically (security fixes!)
• you should define fix versions for your dependencies
• uses caching to speed up your builds
© white duck GmbH 2020
Pipeline job image
© white duck GmbH 2020
Demo
• containerized deploy pipeline
• https://gitlab.com/containerized-cicd/containerized-pipelines
© white duck GmbH 2020
Container Image builds on Kubernetes
• you may use Docker-in-Docker to build containers in containers
• DinD has some issues
• exposing Docker socket
• mounting /var/lib/docker
• privileged mode
• those might be acceptable on a build host but not in a Kubernetes
cluster
© white duck GmbH 2020
Image builds with Kaniko
• image builds without the need of any privileges or dependencies
• runs in a container (gcr.io/kaniko-project/executor)
• easy to use
• you should think about caching to speed up your pipeline
• layer caching (layers get pushed to a registry)
• base image caching (GitLab cache)
© white duck GmbH 2020
Image builds on Kubernetes with Kaniko
© white duck GmbH 2020
Demo
• containerized image builds on Kubernetes with Kaniko
• https://gitlab.com/containerized-cicd/containerized-jobimage
© white duck GmbH 2020
Cloud-native pipelines with Tekton
• Tekton Pipelines emerged out of the Knative Build project
• founding Continuous Delivery Fundation project
• „CI/CD framework for Kubernetes”
• Jenkins X pipelines are based on Tekton
• contributions by Google, IBM, RedHat, Cloudbees, TriggerMesh, …
© white duck GmbH 2020
Tekton Pipelines are …
• … Cloud Native
• run on Kubernetes
• use containers as their building blocks
• managed with Controllers
• … decoupled
• a pipeline can be reused in multiple clusters
• tasks can be isolated and are reusable
• resources can be swapped between runs
© white duck GmbH 2020
Triggers, CLI & Dashboard
• Tekton Triggers can be used to call a pipeline
• push, issue, webhook, ….
• Tekton also provides a CLI and Dashboard
© white duck GmbH 2020
Demo
• cloud-native pipelines with Tekton Pipelines
• https://gitlab.com/containerized-cicd/tekton-sample
© white duck GmbH 2020
Questions?
Slides: https://www.slideshare.net/nmeisenzahl
Demos: https://gitlab.com/containerized-cicd
Nico Meisenzahl (Senior Cloud & DevOps Consultant)
Phone: +49 8031 230159 0
Email: nico.meisenzahl@whiteduck.de
Twitter: @nmeisenzahl
LinkedIn: https://www.linkedin.com/in/nicomeisenzahl
Blog: https://meisenzahl.org
© white duck GmbH 2020

More Related Content

PDF
DevOps Gathering - How Containerized Pipelines Can Boost Your CI/CD
PDF
Global Azure Virtual: Container & Kubernetes on Azure
PDF
Docker Rosenheim Meetup: Policy & Governance for Kubernetes
PDF
Virtual Azure Community Day: Azure Kubernetes Service Basics
PDF
The Future of Workflow Automation Is Now - Hassle-Free ARM Template Deploymen...
PPTX
AzDevCom2021 - Bicep vs Terraform
PPTX
FestiveTechCalendar2021 - Have Yourself An​ Azure Container Registry
PDF
DevOpsCon Berlin: Helm vs Operators – Do I Need to Decide?
DevOps Gathering - How Containerized Pipelines Can Boost Your CI/CD
Global Azure Virtual: Container & Kubernetes on Azure
Docker Rosenheim Meetup: Policy & Governance for Kubernetes
Virtual Azure Community Day: Azure Kubernetes Service Basics
The Future of Workflow Automation Is Now - Hassle-Free ARM Template Deploymen...
AzDevCom2021 - Bicep vs Terraform
FestiveTechCalendar2021 - Have Yourself An​ Azure Container Registry
DevOpsCon Berlin: Helm vs Operators – Do I Need to Decide?

What's hot (20)

PDF
Virtual GitLab Meetup: How Containerized Pipelines and Kubernetes Can Boost Y...
PDF
Cloud Native Day: Cloud-native Anwendungsentwicklung im Jahr 2021
PDF
Azure Zürich User Group: Azure Kubernetes Service – more than just a managed ...
PDF
Azure Rosenheim Meetup: Azure Service Operator
PDF
Azure Meetup Hamburg: Production-Ready Terraform Deployments on Azure
PDF
GitHub Actions 101
PPTX
Distributed Storage in the Cloud
PDF
All Things Cloud Native Meetup: Azure Kubernetes Service Basics
PDF
Journey from on prem to the cloud with kubernetes
PDF
Hijack a Kubernetes Cluster - a Walkthrough
PDF
Enhance Your Kubernetes CI/CD Pipelines With GitLab & Open Source
PDF
GitLab Commit: Enhance your Compliance with Policy-Based CI/CD
PDF
GitLab Commit DevOps: How GitLab Can Save your Kubernetes environment from Be...
PPTX
Building Cloud Native Applications Using Azure Kubernetes Service
PPTX
Take the Fastest Path to Node.Js Application Development with Bitnami & AWS L...
PPTX
Event sourcing your React-Redux applications
PDF
GitLab Remote Meetup: Enhance Your Kubernetes CI/CD Pipelines with GitLab & ...
PPTX
An Integrated Pipeline for Private and Public Clouds with Jenkins, Artifactor...
PDF
Containers & Cloud Native Ops Cloud Foundry Approach
PDF
Building Resilient Cloud Native Apps in GKE
Virtual GitLab Meetup: How Containerized Pipelines and Kubernetes Can Boost Y...
Cloud Native Day: Cloud-native Anwendungsentwicklung im Jahr 2021
Azure Zürich User Group: Azure Kubernetes Service – more than just a managed ...
Azure Rosenheim Meetup: Azure Service Operator
Azure Meetup Hamburg: Production-Ready Terraform Deployments on Azure
GitHub Actions 101
Distributed Storage in the Cloud
All Things Cloud Native Meetup: Azure Kubernetes Service Basics
Journey from on prem to the cloud with kubernetes
Hijack a Kubernetes Cluster - a Walkthrough
Enhance Your Kubernetes CI/CD Pipelines With GitLab & Open Source
GitLab Commit: Enhance your Compliance with Policy-Based CI/CD
GitLab Commit DevOps: How GitLab Can Save your Kubernetes environment from Be...
Building Cloud Native Applications Using Azure Kubernetes Service
Take the Fastest Path to Node.Js Application Development with Bitnami & AWS L...
Event sourcing your React-Redux applications
GitLab Remote Meetup: Enhance Your Kubernetes CI/CD Pipelines with GitLab & ...
An Integrated Pipeline for Private and Public Clouds with Jenkins, Artifactor...
Containers & Cloud Native Ops Cloud Foundry Approach
Building Resilient Cloud Native Apps in GKE
Ad

Similar to DevOpsCon London: How containerized Pipelines can boost your CI/CD (20)

PDF
Effiziente CI/CD-Pipelines – mit den richtigen Tools klappt das
PDF
Containerized Build & Deployment Pipelines
PDF
GitLab London Meetup: How Containerized Pipelines and Kubernetes Can Boost Yo...
PDF
Cloud Native CI/CD with Jenkins X and Knative Pipelines
PDF
GitLab Remote Meetup: Enhance Your Kubernetes CI/CD Pipelines with GitLab & O...
PDF
Introduction to Tekton
PDF
Gitlab Commit: How Containerized GitLab CI Pipelines Can Help You Streamline ...
PDF
Gitlab ci e kubernetes, build test and deploy your projects like a pro
PDF
Cloud-Native CI/CD on Kubernetes with Tekton Pipelines
PPTX
Building CI/CD Pipelines with Jenkins and Kubernetes
PDF
Achieving CI/CD with Kubernetes
PDF
Using Kubernetes for Continuous Integration and Continuous Delivery
PDF
Using Kubernetes for Continuous Integration and Continuous Delivery. Java2days
PDF
Kubernetes and Hybrid Deployments
PDF
Shifting Left with Cloud Native CI/CD
PDF
Speed & Agility of Innovation with Docker & Kubernetes
 
PPTX
Continuous Integration With Jenkins Docker SQL Server
PDF
5 steps to take setting up a streamlined container pipeline
PDF
Using Containers for Building and Testing: Docker, Kubernetes and Mesos. FOSD...
PDF
CI and CD at Scale: Scaling Jenkins with Docker and Apache Mesos
Effiziente CI/CD-Pipelines – mit den richtigen Tools klappt das
Containerized Build & Deployment Pipelines
GitLab London Meetup: How Containerized Pipelines and Kubernetes Can Boost Yo...
Cloud Native CI/CD with Jenkins X and Knative Pipelines
GitLab Remote Meetup: Enhance Your Kubernetes CI/CD Pipelines with GitLab & O...
Introduction to Tekton
Gitlab Commit: How Containerized GitLab CI Pipelines Can Help You Streamline ...
Gitlab ci e kubernetes, build test and deploy your projects like a pro
Cloud-Native CI/CD on Kubernetes with Tekton Pipelines
Building CI/CD Pipelines with Jenkins and Kubernetes
Achieving CI/CD with Kubernetes
Using Kubernetes for Continuous Integration and Continuous Delivery
Using Kubernetes for Continuous Integration and Continuous Delivery. Java2days
Kubernetes and Hybrid Deployments
Shifting Left with Cloud Native CI/CD
Speed & Agility of Innovation with Docker & Kubernetes
 
Continuous Integration With Jenkins Docker SQL Server
5 steps to take setting up a streamlined container pipeline
Using Containers for Building and Testing: Docker, Kubernetes and Mesos. FOSD...
CI and CD at Scale: Scaling Jenkins with Docker and Apache Mesos
Ad

More from Nico Meisenzahl (20)

PDF
Cloud-Native & Sustainability: How and Why to Build Sustainable Workloads
PDF
Container Day Security: How to Prevent Your Kubernetes Cluster From Being Hacked
PDF
Festive Tech Calendar: Festive time with AKS networking
PDF
ContainerConf 2022: Hijack Kubernetes
PDF
ContainerConf 2022: Kubernetes is awesome - but...
PDF
KCD Munich 2022: How to Prevent Your Kubernetes Cluster From Being Hacked
PDF
KCD Munich 2022: Hijack a Kubernetes Cluster - a Walkthrough
PDF
Cloud Love Conference: Kubernetes is awesome, but...
PDF
How to Prevent Your Kubernetes Cluster From Being Hacked
PDF
Container Days: Hijack a Kubernetes Cluster - a Walkthrough
PPTX
Hijack a Kubernetes Cluster - a Walkthrough
PDF
azdevcom - Hijack a Kubernetes Cluster
PDF
Continuous Lifecycle: Enhance Your Compliance and Governance With Policy-Base...
PDF
Continuous Lifecycle: Hijack Kubernetes
PDF
Hijack a Kubernetes Cluster - a Walkthrough
PDF
Microsoft DevOps Forum 2021 – DevOps & Security
PDF
Azure Saturday Hamburg: Containerize Your .NET Microservice - the Right Way!
PDF
Die Evolution von Container Image Builds
PDF
Azure Service Operator - Provision Your Resources in a Cloud-Native Way
PDF
GitLab Commit: Your Attackers Won't Be Happy! How GitLab Can Help You Secure ...
Cloud-Native & Sustainability: How and Why to Build Sustainable Workloads
Container Day Security: How to Prevent Your Kubernetes Cluster From Being Hacked
Festive Tech Calendar: Festive time with AKS networking
ContainerConf 2022: Hijack Kubernetes
ContainerConf 2022: Kubernetes is awesome - but...
KCD Munich 2022: How to Prevent Your Kubernetes Cluster From Being Hacked
KCD Munich 2022: Hijack a Kubernetes Cluster - a Walkthrough
Cloud Love Conference: Kubernetes is awesome, but...
How to Prevent Your Kubernetes Cluster From Being Hacked
Container Days: Hijack a Kubernetes Cluster - a Walkthrough
Hijack a Kubernetes Cluster - a Walkthrough
azdevcom - Hijack a Kubernetes Cluster
Continuous Lifecycle: Enhance Your Compliance and Governance With Policy-Base...
Continuous Lifecycle: Hijack Kubernetes
Hijack a Kubernetes Cluster - a Walkthrough
Microsoft DevOps Forum 2021 – DevOps & Security
Azure Saturday Hamburg: Containerize Your .NET Microservice - the Right Way!
Die Evolution von Container Image Builds
Azure Service Operator - Provision Your Resources in a Cloud-Native Way
GitLab Commit: Your Attackers Won't Be Happy! How GitLab Can Help You Secure ...

Recently uploaded (20)

PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PDF
MIND Revenue Release Quarter 2 2025 Press Release
PPTX
Digital-Transformation-Roadmap-for-Companies.pptx
PPTX
Programs and apps: productivity, graphics, security and other tools
PPT
Teaching material agriculture food technology
PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
PDF
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PPTX
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
PPTX
sap open course for s4hana steps from ECC to s4
PDF
cuic standard and advanced reporting.pdf
PDF
Network Security Unit 5.pdf for BCA BBA.
PPTX
Spectroscopy.pptx food analysis technology
PPTX
Understanding_Digital_Forensics_Presentation.pptx
PDF
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
PDF
Electronic commerce courselecture one. Pdf
PDF
Unlocking AI with Model Context Protocol (MCP)
PDF
Per capita expenditure prediction using model stacking based on satellite ima...
PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
MIND Revenue Release Quarter 2 2025 Press Release
Digital-Transformation-Roadmap-for-Companies.pptx
Programs and apps: productivity, graphics, security and other tools
Teaching material agriculture food technology
The Rise and Fall of 3GPP – Time for a Sabbatical?
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
Dropbox Q2 2025 Financial Results & Investor Presentation
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
sap open course for s4hana steps from ECC to s4
cuic standard and advanced reporting.pdf
Network Security Unit 5.pdf for BCA BBA.
Spectroscopy.pptx food analysis technology
Understanding_Digital_Forensics_Presentation.pptx
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
Electronic commerce courselecture one. Pdf
Unlocking AI with Model Context Protocol (MCP)
Per capita expenditure prediction using model stacking based on satellite ima...
Mobile App Security Testing_ A Comprehensive Guide.pdf

DevOpsCon London: How containerized Pipelines can boost your CI/CD

  • 1. How Containerized Pipelines and Kubernetes Can Boost Your CI/CD DevOpsCon London, September 2020
  • 2. Nico Meisenzahl • Senior Cloud & DevOps Consultant at white duck • GitLab Hero, Microsoft MVP & Docker Community Leader • loves Kubernetes, Cloud-Native & DevOps © white duck GmbH 2020 Phone: +49 8031 230159 0 Email: nico.meisenzahl@whiteduck.de Twitter: @nmeisenzahl LinkedIn: https://www.linkedin.com/in/nicomeisenzahl Blog: https://meisenzahl.org
  • 3. Agenda • containerized pipeline – why? • pipeline workload on Kubernetes with GitLab CI/CD • container image builds on Kubernetes with Kaniko • cloud-native pipelines with Tekton © white duck GmbH 2020
  • 4. Containerized Pipelines – Why? • for the same reasons why you should use containers • isolation • dependencies • scalability • immutability • example: your new project needs version X all others still require Y • you can include any kind of build / deploy dependency • NodeJS, .NET Core, Go, Terraform, Ansible… you name it © white duck GmbH 2020
  • 5. docker run • running Docker on build hosts is a familiar pattern • but: docker run pipeline jobs have some issues • containers are immutable • you will end up managing caching and artifacts on your own • (and we're not even talking about building containers) © white duck GmbH 2020
  • 6. GitLab Runner Kubernetes executor • a Gitlab Runner that is aware of Kubernetes • integrates your CI/CD with Kubernetes • runs itself within your Kubernetes Cluster (as pod) • schedules pipeline jobs as pods • allows you to share your compute and scale your pipelines • easy deployment • one-click • production ready Helm deployment © white duck GmbH 2020
  • 7. Cloning, Caching and Artifacts • GitLab Runner Kubernetes executor runs service containers within the pipeline job pod to handle cloning, caching and artifacts • every pipeline job contains out of these stages • prepare → creates pod with build and service containers • pre-build → clones repo, restore cache, download artifacts • build → user build steps • post-build → creates caches and upload artifacts © white duck GmbH 2020
  • 8. Advanced topics • supports advanced configurations like • resource limits for build jobs • CI services for build dependencies • node selectors for runners • … © white duck GmbH 2020
  • 9. Pipeline job image • contains everything a single pipeline job needs • binaries, libraries, tools, ... • provides all external dependencies • uses a pipeline to build/rebuild it periodically (security fixes!) • you should define fix versions for your dependencies • uses caching to speed up your builds © white duck GmbH 2020
  • 10. Pipeline job image © white duck GmbH 2020
  • 11. Demo • containerized deploy pipeline • https://gitlab.com/containerized-cicd/containerized-pipelines © white duck GmbH 2020
  • 12. Container Image builds on Kubernetes • you may use Docker-in-Docker to build containers in containers • DinD has some issues • exposing Docker socket • mounting /var/lib/docker • privileged mode • those might be acceptable on a build host but not in a Kubernetes cluster © white duck GmbH 2020
  • 13. Image builds with Kaniko • image builds without the need of any privileges or dependencies • runs in a container (gcr.io/kaniko-project/executor) • easy to use • you should think about caching to speed up your pipeline • layer caching (layers get pushed to a registry) • base image caching (GitLab cache) © white duck GmbH 2020
  • 14. Image builds on Kubernetes with Kaniko © white duck GmbH 2020
  • 15. Demo • containerized image builds on Kubernetes with Kaniko • https://gitlab.com/containerized-cicd/containerized-jobimage © white duck GmbH 2020
  • 16. Cloud-native pipelines with Tekton • Tekton Pipelines emerged out of the Knative Build project • founding Continuous Delivery Fundation project • „CI/CD framework for Kubernetes” • Jenkins X pipelines are based on Tekton • contributions by Google, IBM, RedHat, Cloudbees, TriggerMesh, … © white duck GmbH 2020
  • 17. Tekton Pipelines are … • … Cloud Native • run on Kubernetes • use containers as their building blocks • managed with Controllers • … decoupled • a pipeline can be reused in multiple clusters • tasks can be isolated and are reusable • resources can be swapped between runs © white duck GmbH 2020
  • 18. Triggers, CLI & Dashboard • Tekton Triggers can be used to call a pipeline • push, issue, webhook, …. • Tekton also provides a CLI and Dashboard © white duck GmbH 2020
  • 19. Demo • cloud-native pipelines with Tekton Pipelines • https://gitlab.com/containerized-cicd/tekton-sample © white duck GmbH 2020
  • 20. Questions? Slides: https://www.slideshare.net/nmeisenzahl Demos: https://gitlab.com/containerized-cicd Nico Meisenzahl (Senior Cloud & DevOps Consultant) Phone: +49 8031 230159 0 Email: nico.meisenzahl@whiteduck.de Twitter: @nmeisenzahl LinkedIn: https://www.linkedin.com/in/nicomeisenzahl Blog: https://meisenzahl.org © white duck GmbH 2020