Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Kubernetes for .NET Developers - NDC Sydney 2018

Kubernetes for .NET Developers - NDC Sydney 2018

Have you started building containerized application and struggled with scaling across multiple hosts? Would you like to simplify DevOps tasks such as deployment and configuration? Have you heard about Kubernetes and would like to learn more?… then this presentation is for you!

Kubernetes is an open source system for managing containerized applications across multiple hosts; providing basic mechanisms for deployment, maintenance, and scaling of applications.

In this presentation, I will walk you through Kubernetes fundamentals, the high level architecture, how would you deploy an ASP.NET Core application to Kubernetes and finally how would you configure and launch auto-scaling, self-healing Kubernetes cluster.

Hossam Barakat

September 20, 2018
Tweet

More Decks by Hossam Barakat

Other Decks in Programming

Transcript

  1. @hossambarakat_ • What is Kubernetes? • Why Kubernetes? • Kubernetes

    Architecture • Kubernetes Building Blocks Agenda
  2. @hossambarakat_ Containers Hardware Host Operating System Application Application Application Container

    Dependencies Application Host Operating System Hardware Container Engine Container Container Container Container Hardware Host Operating System Virtual Machine Guest OS Application Virtual Machine Guest OS Application Hypervisor
  3. @hossambarakat_ • Service discovery • Scaling • Health monitoring •

    Failover • Networking • Scheduling • Coordinated app upgrades Container Orchestration
  4. @hossambarakat_ • Self-healing • Horizontal scaling • Service discovery and

    load balancing • Automated rollouts and rollbacks • Secret and configuration management • Storage orchestration • Automatic binpacking • Batch execution Why Kubernetes?
  5. @hossambarakat_ Kubernetes Architecture Master API Server Controller Manager Scheduler Worker

    Kubelet Container Runtime UI (Dashboard) CLI (Kubectl) Other Client(s) Container Container Cluster
  6. @hossambarakat_ • Localhost installation (Minikube, Docker For Desktop) • On-Premise

    Installation (VMs, Bare Metal) • Cloud (Google, Azure, AWS,…) Installing Kubernetes
  7. @hossambarakat_ Service IP: 10.0.0.30 DNS: tasks-app-svc Service IP: 10.0.0.90 DNS:

    mssql-service Service 10.0.0.1 Pod 10.0.0.1 Pod 10.0.0.1 Pod
  8. Azure AKS $ az aks create -g myResourceGroup -n myCluster

    --generate-ssh-keys $ az aks get-credentials -g myResourceGroup -n myCluster $ kubectl get nodes $ az aks scale -g myResourceGroup -n myCluster --node-count 6
  9. @hossambarakat_ • Scale agent nodes based on pending pods and

    nodes utilization • Scans the cluster periodically to check for pending pods or empty nodes and increases the size if possible AKS Cluster Autoscaler
  10. @hossambarakat_ • https://www.hossambarakat.net • https://github.com/hossambarakat/TaskList • Introduction to Kubernetes (edX)

    • Learn Kubernetes using Interactive Hands-on Scenarios (Katacoda) • https://kubernetes.io/docs/ Resources