Book Image

Serverless Architectures with Kubernetes

By : Onur Yılmaz, Sathsara Sarathchandra
Book Image

Serverless Architectures with Kubernetes

By: Onur Yılmaz, Sathsara Sarathchandra

Overview of this book

Kubernetes has established itself as the standard platform for container management, orchestration, and deployment. By learning Kubernetes, you’ll be able to design your own serverless architecture by implementing the function-as-a-service (FaaS) model. After an accelerated, hands-on overview of the serverless architecture and various Kubernetes concepts, you’ll cover a wide range of real-world development challenges faced by real-world developers, and explore various techniques to overcome them. You’ll learn how to create production-ready Kubernetes clusters and run serverless applications on them. You'll see how Kubernetes platforms and serverless frameworks such as Kubeless, Apache OpenWhisk and OpenFaaS provide the tooling to help you develop serverless applications on Kubernetes. You'll also learn ways to select the appropriate framework for your upcoming project. By the end of this book, you’ll have the skills and confidence to design your own serverless applications using the power and flexibility of Kubernetes.
Table of Contents (11 chapters)
2
2. Introduction to Serverless in the Cloud

5. Production-Ready Kubernetes Clusters

Activity 5: Minimizing the Costs of Serverless Functions in a GKE Cluster

Solution

  1. Create a new node pool with preemptible servers.

    Run the following and upcoming functions in your GCP cloud shell:

    gcloud beta container node-pools create preemptible --preemptible \
    --min-nodes 1 --max-nodes 10  --enable-autoscaling  \
    --cluster serverless --zone us-central1-a 

    Note

    Change the zone parameter if your cluster is running in another zone.

    This function creates a new node pool named preemptible with an automatically scaled minimum of 1 node and a maximum of 10 nodes, as shown in the following figure:

    Figure 5.29: Node pool creation
  2. Taint the preemptible servers to run only serverless functions:
    kubectl taint node -l cloud.google.com/gke-nodepool=preemptible   \
    preemptible="true":NoSchedule

    This command will apply taints to all nodes with the label cloud.google.com/node-pool = preemptible. The taint...