Create a Containerized App on Alibaba Cloud Container Service for Kubernetes

Orchestrating and managing containerized application environments with virtual management tools, such as Kubernetes and Docker Swarm, allows developers to manage and monitor enterprise production and development environments made up of multiple of containerized applications that have been built directly into the Alibaba Cloud Container Service.

In this tutorial, we will show you how to build a Kubernetes application environment which runs on Alibaba Cloud’s Container Service for Kubernetes. Alibaba Cloud’s Container Service for Kubernetes is made up of a Virtual Private Cloud (VPC) containing clusters of Alibaba Cloud Elastic Compute Service (ECS) instances on which Kubernetes orchestrates and manages industry scale containerized environments.

Before you can run Kubernetes containerized application environments on Alibaba Cloud’s Container Service for Kubernetes, you need an Alibaba Cloud Container Service Kubernetes cluster.

What Is Alibaba Cloud’s Container Service?

Alibaba Cloud’s Container Service is a scalable and reliable, high-performance, container management service that allows you to orchestrate and manage containerized application lifecycles with either Kubernetes or Docker Swarm.

Alibaba Cloud’s Container Service offers multiple application release methods, including continuous integration, and it also supports a microservices architecture. Container Service for Kubernetes provides enterprise-level performance and flexibility for the management of Kubernetes containerized applications at every stage of the development lifecycle.

Alibaba Cloud’s Container Service for Kubernetes simplifies cluster creation, management, and allows for easy upscale too. It also auto-integrates with Alibaba Cloud’s virtualization, storage, network, and security services which improve and simplify the overall running environment for Kubernetes containerized applications.

Alibaba Cloud’s Container Service is one of the first cloud container services to have passed the Certified Kubernetes Conformance Program.

What Is Kubernetes (K8s)?

Kubernetes is a large-scale, open source, automated orchestration platform for multi-container applications. It eliminates the manual work involved in deploying and scaling containerized applications. Kubernetes allows DevOps professionals to orchestrate, manage, and monitor extensive, enterprise-grade, clusters of nodes that together run containerized application stacks made up of container pods. A pod is just one of a group of containers deployed on the same host.

Kubernetes organizes containers into logical units for easy administration. It deals with the computing, networking, and storage infrastructure required by user workloads and is highly flexible and scalable too. Kubernetes functions as both Platform as a Service (PaaS) and Infrastructure as a Service (IaaS) and is simple to use and portable.

Kubernetes usually orchestrates applications built up of Docker containers, but it will also support any container system conforming to the Open Container Initiative (OCI) standards for container image formats and runtimes.

Why Do We Need a Cluster?

Before we can install and run Kubernetes container stacks with Alibaba Cloud’s Container Service, we need to have an Alibaba Cloud Container Service Kubernetes cluster ready and available for our containerized application stacks to live on. For this tutorial, we will use a ready-built default Alibaba Cloud Kubernetes cluster which has three master nodes and three worker nodes. These orchestrate and maintain the containerized application stacks by scheduling the container pods on the worker nodes in the cluster.

In a previous tutorial, we described the preliminary step of building out such a Kubernetes cluster. In some other tutorials, we described the steps of building a Docker Swarm cluster and applications on Alibaba Cloud’s Container Service. In this tutorial, we will take you through the steps required to set up and run a basic demo containerized application with Kubernetes on Alibaba Cloud’s Container Service for Kubernetes.

Prerequisites

You will need an Alibaba Cloud account. If you don’t already have one, head over to the Free Trial page to get $300–1,200 worth of Alibaba Cloud products to play around with in the Alibaba Cloud Free Trial.

If you haven’t yet set up the Kubernetes cluster, before you do so you will have to activate Alibaba Cloud’s Container Service, the Resource Orchestration Service (ROS), Resource Access Management (RAM), and Elastic Scaling Service (ESS) service. Once these things are done, go ahead and set up your cluster. Once the cluster is running, you can then build out a Kubernetes managed containerized enterprise environment.

Let’s get started.

Check If Your Cluster Is Running

First, head over to the Products page and click Container Service.

Image for post
Image for post

You will arrive at the Container Service console page. Your healthy running cluster will be visible on the Cluster List page.

Image for post
Image for post

Make Sure Kubernetes Is Accessible from the Command Line

Kubernetes kubectl offers direct access to the cluster nodes and a simple and easy way to bring up pods and containers.

Open a terminal application and make sure you can ssh into the cluster.

Click the Cluster Name.

Image for post
Image for post

The cluster is accessible via the Master node IP address which is also the Server Load Balancer (SLB) IP address.

Image for post
Image for post

ssh into the cluster with root access and the password you set when you set up the cluster.

Image for post
Image for post

Make sure you also have the most flexible command line access to your Kubernetes cluster with kubectl version.

Image for post
Image for post

Create a Kubernetes Application Stack

Go back to the Cluster List page and click Deployment.

Image for post
Image for post

Click Create By Image.

Image for post
Image for post

In the Basic Information tab, add details for the Application Name, and select the correct Cluster it is to run on.

We’ll leave the defaults for Namespace, Replicas, and Type.

Click Next.

In the Container tab, we can add multiple container stacks to the Kubernetes environment.

Click select Image.

Image for post
Image for post

Select nginx and click OK.

Image for post
Image for post

Alibaba Cloud will provide default values for Image Version but you can specify as required.

If you want to ensure that Kubernetes always pull the latest image, select Always pull image.

Configure values for Resource Limit and Resource Request which reflect the nature of your deployment.

Image for post
Image for post

If you need an Init Container, select it here.

We have left the configuration options as default, but you can configure optional Environment Variables.

Image for post
Image for post

You can enable optional Liveness and Readiness Health Checks if required.

You can monitor these health checks via kubectl or via HTTP Requests.

Image for post
Image for post

See https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-probes/ for more details on Health Checks.

You can configure lifecycle rules here.

Image for post
Image for post

If you need Data Volumes, you can configure them here also.

Image for post
Image for post

If you want logging, configure the optional Log Service and make sure that the cluster has deployed the log plugins described in the link.

Here is an example Log Service configuration which we haven’t used for this tutorial.

Image for post
Image for post

When you are happy with your configurations, click Next.

Image for post
Image for post

Now you can configure the Advanced settings. We have left these blank in favor of command line configuration with kubectl.

Access Control allows you to configure Service and Ingress details.

Image for post
Image for post

You have the option of Horizontal Pod Autoscaling (HPA) configurations that deal with varying application loads.

Image for post
Image for post

You can configure also optional Scheduling of Node and Pod Affinity where pods and nodes can be mapped to preferred nodes and clusters.

Image for post
Image for post

Check all the details and, when you’re ready, click Create.

Image for post
Image for post

Success. Click View Details.

Image for post
Image for post

Alternative set up if the port does not bind correctly: run the following command in the terminal.

kubectl run k8s-project --replicas=2 --labels="run=load-balancer-example" --image=nginx --port=8080

You will see the configuration details of the container pod application you just created.

Image for post
Image for post

Scroll down and you will see your nginx replica set at the bottom with a running status.

Image for post
Image for post

Now let’s check the deployment details with kubectl.

Image for post
Image for post

Let’s get more details on our nginx deployment.

Image for post
Image for post

We can also see status information and more details about the replica sets.

Image for post
Image for post

Now, let’s create a Service object that exposes the deployment.

kubectl expose deployment k8s-project --type=LoadBalancer --name=my-service
Image for post
Image for post

We can ask for more details on the Service object.

Image for post
Image for post

Also, back in the UI, you will see details of the Service object in the Deployment details under the Access tab.

Image for post
Image for post

You can request more info on the service from kubectl.

Image for post
Image for post

From these details, make a note of the external IP address (LoadBalancer Ingress) exposed by the service.

In our example, the external IP address is 47.89.136.166. We can use this address to access the nginx application and check if it is running.

Image for post
Image for post

You can now go ahead and set up more containers in the Kubernetes cluster to build out an enterprise scale application environment. If you have enabled logs and monitoring, you will be able to monitor your cluster nodes and pods via the Alibaba Cloud Container Service for Kubernetes UI.

Summary

First, we told you how, along with Docker Swarm applications, you can now build Kubernetes containerized applications with Alibaba Cloud’s Container Service.

We informed you that, before you can build out a detailed Kubernetes application environment, you must have a Container Service cluster ready for Kubernetes to run on. We advised you to look up our previous tutorial that details the steps you need to take to build a prerequisite cluster. We also told you about previous tutorials where we showed you how to build a Docker Swarm cluster and application with Alibaba Cloud’s Container Service.

We gave you some information about Alibaba Cloud’s Container Service, specifically the Container Service Kubernetes product which manages large-scale containerized applications. We told you a little bit about what Kubernetes does and then we took you through the step-by-step process of setting up a Container Service Kubernetes application on a ready-made Container Service cluster in Alibaba Cloud.

You are now ready to build out scalable Kubernetes containerized application environments. Keep your eyes out for more tutorials on Alibaba Cloud’s Container Service products and other cloud product offerings.

Reference:https://www.alibabacloud.com/blog/create-a-containerized-app-on-alibaba-cloud-container-service-for-kubernetes_594607?spm=a2c41.12696562.0.0

Written by

Follow me to keep abreast with the latest technology news, industry insights, and developer trends.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store