Serverless Engineering Practice | Quickly Build Kubeless Platform

Serverless Engineering Practice | Quickly Build Kubeless Platform

Quickly build a Kubeless platform

Introduction to Kubeless

Kubeless is a native serverless framework based on Kubernetes. It allows users to deploy small amounts of code (functions) without having to worry about the underlying architecture. It is deployed on a Kubernetes cluster and makes full use of Kubernetes' features and resource types to clone content on AWS Lambda, Azure Functions, and Google Cloud Functions.

The main features of Kubeless can be summarized as follows.

Supports Python, Node.js, Ruby, PHP, Go, .NET, Ballerina languages ​​and custom runtimes.
The Kubeless CLI is compliant with the AWS Lambda CLI.
Event triggers use the Kafka messaging system and HTTP triggers.
By default, Prometheus monitors function calls and delays.
Support Serverless framework plugin.

Since the features of Kubeless are built on Kubernetes, it is very easy for people familiar with Kubernetes to deploy Kubeless. Its main implementation is to convert user-written functions into CRDs (Custom Resource Definitions) in Kubernetes and run them in the cluster as containers.

Kubeless deployment

Create a Kubeless service on an existing Kubernetes cluster:

  1. export RELEASE =$(curl -s https://api.github.com/repos/kubeless/kubeless/releases/ latest | grep tag_name | cut -d '"' -f 4)kubectl create ns kubelesskubectl create -f https://github.com/kubeless/kubeless/releases/download/$RELEASE/ kubeless-$RELEASE.yaml

After successful creation, as shown in the figure

Install and configure Kubeless

View basic information:

kubectl get pods -n kubeless

The relevant Pod information is shown in the figure

View Kubeless related Pods

View the Deployment information:

kubectl get deployment -n kubeless

The relevant information is shown in the figure

View Kubeless Deployment related information

View the customresourcedefinition information:

kubectl get customresourcedefinition

The relevant information is shown in the figure

View customresourcedefinition information

Download command line tools

Download the Kubeless tool and decompress it:

  1. export OS =$(uname -s| tr '[:upper:]' '[:lower:]')curl -OL https://github.com/kubeless/kubeless/releases/download/$RELEASE/kubeless_ $OS-amd64.zipunzip kubeless_$OS-amd64.zip

After decompression, check:

./bundles/kubeless_linux-amd64/kubeless

As shown in the figure

Using the Kubeless command line tool

Experience Test

Create the test code helloworld.py:

def hello(event, context): print(event) return event['data']

Deploy the project:

  1. ./bundles/kubeless_linux-amd64/kubeless function deploy hello-world --runtime python3.6 --from-file helloworld.py --handler helloworld.hello

After successful deployment, view the project information:

kubectl get functions

The function list is shown in the figure

View the function list

View the example function:

./bundles/kubeless_linux-amd64/kubeless function ls

The function status is shown in the figure

Trigger function:

  1. ./bundles/kubeless_linux-amd64/kubeless function call hello-world --data 'Hello world!'

After the trigger is completed, you can see the output result:

View the log output in the instance, as shown in the figure

Viewing logs in an instance

So far, we have successfully created a Kubeless service on the Kubernetes cluster and successfully experienced the Kubeless version of Hello World implementation.

<<:  6G transmission capacity may be 100 times higher than 5G. 5G is here. How far is 6G?

>>:  Exploration and practice of full-link grayscale solution based on Istio

Recommend

5G has already become popular. Is it cost-effective to buy a 4G mobile phone now?

At the beginning, I actually don’t recommend anyo...

WOT Xu Dongchen: JVM-Sandbox Non-intrusive runtime AOP solution based on JVM

[51CTO.com original article] On May 18-19, 2018, ...

Five things you need to know before buying a router

A router is a digital product that basically no o...

Multi-cloud, security integration drives mass SD-WAN adoption

SD-WAN is expected to grow 40% year-over-year thr...

Omdia Observation: TIP open core network plan is progressing slowly

According to the latest report from market resear...

Pairing private networks with 5G to boost smart city development

Consider the superior performance that 5G offers ...

Interviewer asked: Tell me about the principle of IP address allocation

1. Introduction to network model In computer netw...

5G private network is a big watermelon (Part 2): The mystery of the collision

In the first article of this series, we explained...

16 WiFi withdrawal triggers myths: Is public WiFi coming to an end?

Recently, 16WiFi, which provides free WiFi Intern...