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

How will 5G and edge computing develop in 2020?

At the beginning of the new year of 2020, there w...

The industry chain works together to make great progress in 5G messaging

2020 is a critical year for my country's 5G c...

5G is here. How to build the emerging edge DCs?

[[285118]] What does the data center and computer...

iWebFusion: $9.38/month-4GB/30GB/2TB/Los Angeles & North Carolina data centers

iWebFusion (iWFHosting) was founded in 2001. It i...

50% of global data center Ethernet switches will be 25GbE or 100GbE by 2021

According to the latest survey report titled &quo...

TCP source code analysis - three-way handshake Connect process

[[386167]] This article is reprinted from the WeC...

Byte side: Can TCP and UDP use the same port number?

Hello, everyone, I am amazing. Today I saw an int...

Riverbed Digital Experience Management

Today, most businesses realize that in order to a...

What harm will smog invading the computer room cause? How to protect against it

I believe that everyone is familiar with the conc...