SlideShare ist ein Scribd-Unternehmen logo
1 von 18
Downloaden Sie, um offline zu lesen
1
My Kubernetes toolkit
- Sreenivas Makam
Developing Kubernetes
applications is frustrating.
Too much
configuration.
Debugging
is a pain.
Applications
have so many
moving parts.
I spend too
much time
outside of my
code.
Helpers
Kubectx
kubens
Config Mgmt
Kustomize
Pkg Mgmt
Helm
Build
Dockerfile
Kaniko
Jib
CI/CD
Skaffold
IDE
Cloud
code for
VSCODE
My favorite tools
Kubectx and Kubens
● kubectx - Utility to manage and switch between Kubernetes contexts of different
clusters
● Easy to manage dealing with multiple Kubernetes clusters(including GCP, AWS,
Azure, Docker for desktop, minikube)
● Kubens - Utility to switch between Kubernetes namespaces smoothly
● Kubectx and kubens - combination saves a lot of time
https://github.com/ahmetb/kubectx
Kustomize Overview
Additional Features
● Apply common:
○ Labels
○ Annotations
● Add a preïŹx to all resource names
● Easily manage ConïŹgMaps and
Secrets
System for managing and
applying patches on top of
existing Kubernetes YAML
Easier to maintain than
templates
Integrated with kubectl
Overlays for Kubernetes
Manifests
Security overlay
Production Overlay
Base Manifests
2O LOC
40 LOC
500 LOC
Merge in
overrides at each
layer
Kustomize example1
apiVersion: v1
kind: Pod
metadata:
name: myapp-pod
labels:
app: myapp
spec:
containers:
- name: myapp
image: busybox
command: ['app']
apiVersion: v1
kind: Pod
metadata:
name: myapp-pod
spec:
containers:
- name: myapp
command: ['app', '--dev']
apiVersion: v1
kind: Pod
metadata:
name: myapp-pod
labels:
app: myapp
spec:
containers:
- name: myapp
image: busybox
command: ['app', '--dev']
base.yaml patch.yaml output.yaml
Skaffold build
Kustomize example2
apiVersion: apps/v1
kind: Deployment
metadata:
name: the-deployment
spec:
replicas: 1
template:
metadata:
labels:
deployment: hello
spec:
containers:
- name: the-container
image: monopole/hello:1
apiVersion: apps/v1
kind: Deployment
metadata:
name: the-deployment
spec:
replicas: 3
apiVersion: apps/v1
kind: Deployment
metadata:
name: prod-the-deployment
spec:
replicas: 3
template:
metadata:
labels:
deployment: hello
Stage: production
spec:
containers:
- name: the-container
image: monopole/hello:1
base.yaml patch.yaml output.yaml
namePrefix: prod-
bases:
- ../base-manifest
commonLabels:
stage: production
patches:
- patch.yml
kustomization.yaml
Skaffold build
Helm
● Package manager for Kubernetes applications
● Charts are easy to create, version, share, and publish
● Helm 3 removes server side component Tiller and this makes Helm very easy to
use
● Helm can also help as template manager for Kubernetes, but using templates can
get complex
helm search wordpress
helm install stable/wordpress
Jib
● Creates Container images for Java without DockerïŹle
○ Don’t need to worry about DockerïŹle best practises
○ Daemonless
● Available as plugins for Maven and Gradle
● Optimized for fast builds
Steps:
Apply plugin
Mvn jib:build (or) gradle jib
Skaffold
● Fast local kubernetes development
● Works with any build(DockerïŹle, Jib), test and deploy tools(helm, kubectl,
kustomize)
● Backend for cloud code
● Client side lightweight tool
● Supports proïŹles that allows extension into different environments
Skaffold init
Skaffold run - single deploy
Skaffold dev - continuous deploy
Skaffold stages
Cloud Code
Building highly scalable applications with
Kubernetes can be hard, Google Cloud Code
extends your IDE so that you can continuously
deploy to a cluster, and edit/debug just like you
were working with local code.
Available for VS code and Intellij
Cloud Code for IDEs Features
1 32
Debugging Cluster browsingKubernetes inner
development loop
4 65
Integrations with
popular tools and
libraries
Google Cloud
Platform
integrations
Templates and
editing
The tools you need for Cloud Native development, leveraging your favorite OS,
IDE, language and cloud. Available in the Visual Studio Code Marketplace.
Support for
1 2 3 4
Getting
Started
Local
Development
Deploy to
Remote Cluster
Troubleshooting -
Debugging & logs
Cloud Code for Visual Studio Code
Demo
Voting Application
Node.js Node.js
Frontend Service
index.html
results.html
Voting Service
/get
/post
https://github.com/smakam/voting-app
Voting Application Kustomization
Base manifest
Replicas: 1
stage: staging
Staging manifest
Replicas: 2
stage: production
Prod manifest
https://github.com/smakam/voting-app

Weitere Àhnliche Inhalte

Was ist angesagt?

Was ist angesagt? (20)

Mirantis ïżŒContributions to Kubernetes Ecosystem
Mirantis ïżŒContributions to Kubernetes EcosystemMirantis ïżŒContributions to Kubernetes Ecosystem
Mirantis ïżŒContributions to Kubernetes Ecosystem
 
Beyond Ingresses - Better Traffic Management in Kubernetes
Beyond Ingresses - Better Traffic Management in KubernetesBeyond Ingresses - Better Traffic Management in Kubernetes
Beyond Ingresses - Better Traffic Management in Kubernetes
 
Kubernetes and Hybrid Deployments
Kubernetes and Hybrid DeploymentsKubernetes and Hybrid Deployments
Kubernetes and Hybrid Deployments
 
Running Production-Grade Kubernetes on AWS
Running Production-Grade Kubernetes on AWSRunning Production-Grade Kubernetes on AWS
Running Production-Grade Kubernetes on AWS
 
An overview of the Kubernetes architecture
An overview of the Kubernetes architectureAn overview of the Kubernetes architecture
An overview of the Kubernetes architecture
 
Mattia Gandolfi - Improving utilization and portability with Containers and C...
Mattia Gandolfi - Improving utilization and portability with Containers and C...Mattia Gandolfi - Improving utilization and portability with Containers and C...
Mattia Gandolfi - Improving utilization and portability with Containers and C...
 
Kubernetes - Starting with 1.2
Kubernetes  - Starting with 1.2Kubernetes  - Starting with 1.2
Kubernetes - Starting with 1.2
 
DCEU 18: Docker for Windows Containers and Kubernetes
DCEU 18: Docker for Windows Containers and KubernetesDCEU 18: Docker for Windows Containers and Kubernetes
DCEU 18: Docker for Windows Containers and Kubernetes
 
Building Cloud-Native Applications with Kubernetes, Helm and Kubeless
Building Cloud-Native Applications with Kubernetes, Helm and KubelessBuilding Cloud-Native Applications with Kubernetes, Helm and Kubeless
Building Cloud-Native Applications with Kubernetes, Helm and Kubeless
 
Containers in production with docker, coreos, kubernetes and apache stratos
Containers in production with docker, coreos, kubernetes and apache stratosContainers in production with docker, coreos, kubernetes and apache stratos
Containers in production with docker, coreos, kubernetes and apache stratos
 
Kubernetes in Docker
Kubernetes in DockerKubernetes in Docker
Kubernetes in Docker
 
Introduction of Kubernetes - Trang Nguyen
Introduction of Kubernetes - Trang NguyenIntroduction of Kubernetes - Trang Nguyen
Introduction of Kubernetes - Trang Nguyen
 
Kubernetes best practices
Kubernetes best practicesKubernetes best practices
Kubernetes best practices
 
Multi-Container Apps spanning Docker, Mesos and OpenStack
Multi-Container Apps spanning Docker, Mesos and OpenStackMulti-Container Apps spanning Docker, Mesos and OpenStack
Multi-Container Apps spanning Docker, Mesos and OpenStack
 
How to build a Kubernetes networking solution from scratch
How to build a Kubernetes networking solution from scratchHow to build a Kubernetes networking solution from scratch
How to build a Kubernetes networking solution from scratch
 
Kubernetes Architecture and Introduction
Kubernetes Architecture and IntroductionKubernetes Architecture and Introduction
Kubernetes Architecture and Introduction
 
Zero downtime-java-deployments-with-docker-and-kubernetes
Zero downtime-java-deployments-with-docker-and-kubernetesZero downtime-java-deployments-with-docker-and-kubernetes
Zero downtime-java-deployments-with-docker-and-kubernetes
 
Docker on docker leveraging kubernetes in docker ee
Docker on docker leveraging kubernetes in docker eeDocker on docker leveraging kubernetes in docker ee
Docker on docker leveraging kubernetes in docker ee
 
Google Cloud Platform and Kubernetes
Google Cloud Platform and KubernetesGoogle Cloud Platform and Kubernetes
Google Cloud Platform and Kubernetes
 
KubeCon EU 2016: ITNW (If This Now What): Orchestrating an Enterprise
KubeCon EU 2016: ITNW (If This Now What): Orchestrating an EnterpriseKubeCon EU 2016: ITNW (If This Now What): Orchestrating an Enterprise
KubeCon EU 2016: ITNW (If This Now What): Orchestrating an Enterprise
 

Ähnlich wie My kubernetes toolkit

Developer Experience Cloud Native - From Code Gen to Git Commit without a CI/...
Developer Experience Cloud Native - From Code Gen to Git Commit without a CI/...Developer Experience Cloud Native - From Code Gen to Git Commit without a CI/...
Developer Experience Cloud Native - From Code Gen to Git Commit without a CI/...
Michael Hofmann
 

Ähnlich wie My kubernetes toolkit (20)

[20200720]cloud native develoment - Nelson Lin
[20200720]cloud native develoment - Nelson Lin[20200720]cloud native develoment - Nelson Lin
[20200720]cloud native develoment - Nelson Lin
 
Nugwc k8s session-16-march-2021
Nugwc k8s session-16-march-2021Nugwc k8s session-16-march-2021
Nugwc k8s session-16-march-2021
 
CI/CD Development in Kubernetes - Skaffold
CI/CD Development in Kubernetes -  SkaffoldCI/CD Development in Kubernetes -  Skaffold
CI/CD Development in Kubernetes - Skaffold
 
Introduction of CCE and DevCloud
Introduction of CCE and DevCloudIntroduction of CCE and DevCloud
Introduction of CCE and DevCloud
 
CI/CD Development in Kubernetes - Skaffold
CI/CD Development in Kubernetes -  SkaffoldCI/CD Development in Kubernetes -  Skaffold
CI/CD Development in Kubernetes - Skaffold
 
Environment management in a continuous delivery world (3)
Environment management in a continuous delivery world (3)Environment management in a continuous delivery world (3)
Environment management in a continuous delivery world (3)
 
Better code, faster with kubernetes in google cloud
Better code, faster with kubernetes in google cloudBetter code, faster with kubernetes in google cloud
Better code, faster with kubernetes in google cloud
 
The path to a serverless-native era with Kubernetes
The path to a serverless-native era with KubernetesThe path to a serverless-native era with Kubernetes
The path to a serverless-native era with Kubernetes
 
Scalable Spark deployment using Kubernetes
Scalable Spark deployment using KubernetesScalable Spark deployment using Kubernetes
Scalable Spark deployment using Kubernetes
 
Extensible dev secops pipelines with Jenkins, Docker, Terraform, and a kitche...
Extensible dev secops pipelines with Jenkins, Docker, Terraform, and a kitche...Extensible dev secops pipelines with Jenkins, Docker, Terraform, and a kitche...
Extensible dev secops pipelines with Jenkins, Docker, Terraform, and a kitche...
 
Docker ee an architecture and operations overview
Docker ee an architecture and operations overviewDocker ee an architecture and operations overview
Docker ee an architecture and operations overview
 
Running Spring Boot in Kubernetes and Intro to Helm
Running Spring Boot in Kubernetes and Intro to HelmRunning Spring Boot in Kubernetes and Intro to Helm
Running Spring Boot in Kubernetes and Intro to Helm
 
Developing Microservices Directly in AKS/Kubernetes
Developing Microservices Directly in AKS/KubernetesDeveloping Microservices Directly in AKS/Kubernetes
Developing Microservices Directly in AKS/Kubernetes
 
Developer Experience Cloud Native - From Code Gen to Git Commit without a CI/...
Developer Experience Cloud Native - From Code Gen to Git Commit without a CI/...Developer Experience Cloud Native - From Code Gen to Git Commit without a CI/...
Developer Experience Cloud Native - From Code Gen to Git Commit without a CI/...
 
DevOps Spain 2019. David Cañadillas -Cloudbees
DevOps Spain 2019. David Cañadillas -CloudbeesDevOps Spain 2019. David Cañadillas -Cloudbees
DevOps Spain 2019. David Cañadillas -Cloudbees
 
CD in kubernetes using helm and ksonnet. Stas Kolenkin
CD in kubernetes using helm and ksonnet. Stas KolenkinCD in kubernetes using helm and ksonnet. Stas Kolenkin
CD in kubernetes using helm and ksonnet. Stas Kolenkin
 
CI/CD Across Multiple Environments
CI/CD Across Multiple EnvironmentsCI/CD Across Multiple Environments
CI/CD Across Multiple Environments
 
Kubernetes is all you need
Kubernetes is all you needKubernetes is all you need
Kubernetes is all you need
 
From development to production: Deploying Java and Scala apps to kubernetes
From development to production: Deploying Java and Scala apps to kubernetesFrom development to production: Deploying Java and Scala apps to kubernetes
From development to production: Deploying Java and Scala apps to kubernetes
 
DCSF19 How Docker Simplifies Kubernetes for the Masses
DCSF19 How Docker Simplifies Kubernetes for the Masses  DCSF19 How Docker Simplifies Kubernetes for the Masses
DCSF19 How Docker Simplifies Kubernetes for the Masses
 

Mehr von Sreenivas Makam

Mehr von Sreenivas Makam (17)

GKE Tip Series - Usage Metering
GKE Tip Series -  Usage MeteringGKE Tip Series -  Usage Metering
GKE Tip Series - Usage Metering
 
Deep dive into Kubernetes Networking
Deep dive into Kubernetes NetworkingDeep dive into Kubernetes Networking
Deep dive into Kubernetes Networking
 
Docker Networking Tip - Load balancing options
Docker Networking Tip - Load balancing optionsDocker Networking Tip - Load balancing options
Docker Networking Tip - Load balancing options
 
Docker Networking Tip - Macvlan driver
Docker Networking Tip - Macvlan driverDocker Networking Tip - Macvlan driver
Docker Networking Tip - Macvlan driver
 
Docker Networking Overview
Docker Networking OverviewDocker Networking Overview
Docker Networking Overview
 
Docker Networking - Common Issues and Troubleshooting Techniques
Docker Networking - Common Issues and Troubleshooting TechniquesDocker Networking - Common Issues and Troubleshooting Techniques
Docker Networking - Common Issues and Troubleshooting Techniques
 
Compare Docker deployment options in the public cloud
Compare Docker deployment options in the public cloudCompare Docker deployment options in the public cloud
Compare Docker deployment options in the public cloud
 
Docker Mentorweek beginner workshop notes
Docker Mentorweek beginner workshop notesDocker Mentorweek beginner workshop notes
Docker Mentorweek beginner workshop notes
 
Devops in Networking
Devops in NetworkingDevops in Networking
Devops in Networking
 
Docker Security Overview
Docker Security OverviewDocker Security Overview
Docker Security Overview
 
Docker 1.11 Presentation
Docker 1.11 PresentationDocker 1.11 Presentation
Docker 1.11 Presentation
 
Service Discovery using etcd, Consul and Kubernetes
Service Discovery using etcd, Consul and KubernetesService Discovery using etcd, Consul and Kubernetes
Service Discovery using etcd, Consul and Kubernetes
 
CoreOS Overview and Current Status
CoreOS Overview and Current StatusCoreOS Overview and Current Status
CoreOS Overview and Current Status
 
Container Monitoring with Sysdig
Container Monitoring with SysdigContainer Monitoring with Sysdig
Container Monitoring with Sysdig
 
CI, CD with Docker, Jenkins and Tutum
CI, CD with Docker, Jenkins and TutumCI, CD with Docker, Jenkins and Tutum
CI, CD with Docker, Jenkins and Tutum
 
Docker 1.9 Feature Overview
Docker 1.9 Feature OverviewDocker 1.9 Feature Overview
Docker 1.9 Feature Overview
 
Docker Networking - Current Status and goals of Experimental Networking
Docker Networking - Current Status and goals of Experimental NetworkingDocker Networking - Current Status and goals of Experimental Networking
Docker Networking - Current Status and goals of Experimental Networking
 

KĂŒrzlich hochgeladen

Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎+971_581248768%)**%*]'#abortion pills for sale in dubai@
 

KĂŒrzlich hochgeladen (20)

Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 

My kubernetes toolkit

  • 1. 1 My Kubernetes toolkit - Sreenivas Makam
  • 2. Developing Kubernetes applications is frustrating. Too much configuration. Debugging is a pain. Applications have so many moving parts. I spend too much time outside of my code.
  • 4. Kubectx and Kubens ● kubectx - Utility to manage and switch between Kubernetes contexts of different clusters ● Easy to manage dealing with multiple Kubernetes clusters(including GCP, AWS, Azure, Docker for desktop, minikube) ● Kubens - Utility to switch between Kubernetes namespaces smoothly ● Kubectx and kubens - combination saves a lot of time https://github.com/ahmetb/kubectx
  • 5. Kustomize Overview Additional Features ● Apply common: ○ Labels ○ Annotations ● Add a preïŹx to all resource names ● Easily manage ConïŹgMaps and Secrets System for managing and applying patches on top of existing Kubernetes YAML Easier to maintain than templates Integrated with kubectl
  • 6. Overlays for Kubernetes Manifests Security overlay Production Overlay Base Manifests 2O LOC 40 LOC 500 LOC Merge in overrides at each layer
  • 7. Kustomize example1 apiVersion: v1 kind: Pod metadata: name: myapp-pod labels: app: myapp spec: containers: - name: myapp image: busybox command: ['app'] apiVersion: v1 kind: Pod metadata: name: myapp-pod spec: containers: - name: myapp command: ['app', '--dev'] apiVersion: v1 kind: Pod metadata: name: myapp-pod labels: app: myapp spec: containers: - name: myapp image: busybox command: ['app', '--dev'] base.yaml patch.yaml output.yaml Skaffold build
  • 8. Kustomize example2 apiVersion: apps/v1 kind: Deployment metadata: name: the-deployment spec: replicas: 1 template: metadata: labels: deployment: hello spec: containers: - name: the-container image: monopole/hello:1 apiVersion: apps/v1 kind: Deployment metadata: name: the-deployment spec: replicas: 3 apiVersion: apps/v1 kind: Deployment metadata: name: prod-the-deployment spec: replicas: 3 template: metadata: labels: deployment: hello Stage: production spec: containers: - name: the-container image: monopole/hello:1 base.yaml patch.yaml output.yaml namePrefix: prod- bases: - ../base-manifest commonLabels: stage: production patches: - patch.yml kustomization.yaml Skaffold build
  • 9. Helm ● Package manager for Kubernetes applications ● Charts are easy to create, version, share, and publish ● Helm 3 removes server side component Tiller and this makes Helm very easy to use ● Helm can also help as template manager for Kubernetes, but using templates can get complex helm search wordpress helm install stable/wordpress
  • 10. Jib ● Creates Container images for Java without DockerïŹle ○ Don’t need to worry about DockerïŹle best practises ○ Daemonless ● Available as plugins for Maven and Gradle ● Optimized for fast builds Steps: Apply plugin Mvn jib:build (or) gradle jib
  • 11. Skaffold ● Fast local kubernetes development ● Works with any build(DockerïŹle, Jib), test and deploy tools(helm, kubectl, kustomize) ● Backend for cloud code ● Client side lightweight tool ● Supports proïŹles that allows extension into different environments Skaffold init Skaffold run - single deploy Skaffold dev - continuous deploy
  • 13. Cloud Code Building highly scalable applications with Kubernetes can be hard, Google Cloud Code extends your IDE so that you can continuously deploy to a cluster, and edit/debug just like you were working with local code. Available for VS code and Intellij
  • 14. Cloud Code for IDEs Features 1 32 Debugging Cluster browsingKubernetes inner development loop 4 65 Integrations with popular tools and libraries Google Cloud Platform integrations Templates and editing
  • 15. The tools you need for Cloud Native development, leveraging your favorite OS, IDE, language and cloud. Available in the Visual Studio Code Marketplace. Support for 1 2 3 4 Getting Started Local Development Deploy to Remote Cluster Troubleshooting - Debugging & logs Cloud Code for Visual Studio Code
  • 16. Demo
  • 17. Voting Application Node.js Node.js Frontend Service index.html results.html Voting Service /get /post https://github.com/smakam/voting-app
  • 18. Voting Application Kustomization Base manifest Replicas: 1 stage: staging Staging manifest Replicas: 2 stage: production Prod manifest https://github.com/smakam/voting-app