Cloud and Datacenter Management Blog

Microsoft Hybrid Cloud blogsite about Management


Leave a comment

Kubernetes Up and Running Second Edition Ebook

 

Kubernetes Up & Running Second Edition Ebook

Whether you are new to distributed systems or have been deploying cloud-native systems for years, containers and Kubernetes can help you achieve new levels of velocity, agility, reliability, and efficiency. This book describes the Kubernetes cluster orchestrator and how its tools and APIs can be used to improve the development, delivery, and maintenance of distributed applications. Though no previous experience with Kubernetes is assumed, to make maximal use of the book you should be comfortable building and deploying server-based applications. Familiarity with concepts like load balancers and network storage will be useful, though not required. Likewise, experience with Linux, Linux containers, and Docker, though not essential, will help you make the most of this book.


Leave a comment

Installing and Maintaining #Azure Kubernetes Cluster #AKS #ContainerInsights #AzureDevOps

Start Creating Azure Kubernetes Cluster for your Containers.

Managed Azure Kubernetes Service (AKS) makes deploying and managing containerized applications easy. It offers serverless Kubernetes, an integrated continuous integration and continuous delivery (CI/CD) experience, and enterprise-grade security and governance. As a hosted Kubernetes service, Azure handles critical tasks like health monitoring and maintenance for you. The Kubernetes masters are managed by Azure. You only manage and maintain the agent nodes. As a managed Kubernetes service, AKS is free – you only pay for the agent nodes within your clusters, not for the masters. In the following steps you can see the different ways for creating Azure Kubernetes Cluster via the Azure Portal, or via Azure Cloud Shell, or via Azure Resource Template. When the Microsoft Azure Kubernetes Cluster is running, then I will explain the different ways for deploying container workloads on AKS. When your workload is running on Azure Kubernetes Services, you also have to monitor your Container workloads with Azure Monitor Container Insights to keep in Controle. Let’s start with installing Azure Kubernetes Services (AKS)

Installing Azure Kubernetes Cluster via the Portal.

To begin you need of course a Microsoft Azure Subscription and you can start for free here

Basics information of the Azure Kubernetes Cluster

To Create the Azure Kubernetes Cluster, you have to follow these steps and type the right information in the Portal:

  1. Basics
  2. Scale
  3. Authentication
  4. Networking
  5. Monitoring
  6. Tags
  7. Review + Create

At the basics screen you select the right Azure Subscription and the Resource Group. You can create a New Resource Group or one you already made.
At Cluster details, you give your Cluster a name and select the Kubernetes version.

Here you select the Kubernetes Node size for your Container workload and the number of nodes.
You can start a Cluster already with One node, but choose to start with the right size for your workloads.
When you click on Change size, you can choose your nodes to do the job. 😉

Select the right Size node

Then we go to step 2 and that is Scale.

2. Scale options in Azure Kubernetes Cluster

Here you have two options :

  1. Virtual Nodes
  2. VM Scale sets (Preview)

To quickly deploy workloads in an Azure Kubernetes Service (AKS) cluster, you can use virtual nodes. With virtual nodes, you have fast provisioning of pods, and only pay per second for their execution time. In a scaling scenario, you don’t need to wait for the Kubernetes cluster autoscaler to deploy VM compute nodes to run the additional pods. Virtual nodes are only supported with Linux pods and nodes. More information here about Virtual Nodes

To create an AKS cluster that can use multiple node pools, first enable two feature flags on your subscription. Multi-node pool clusters use a virtual machine scale set (VMSS) to manage the deployment and configuration of the Kubernetes nodes. With this Preview feature you can run Linux Containers and Windows Containers on the same Cluster. More information here about VM Scale sets (Preview)

3, Authentication

The service principal is needed to dynamically create and manage other Azure resources such as an Azure load balancer or container registry (ACR). To interact with Azure APIs, an AKS cluster requires an Azure Active Directory (AD) service principal. More information about the Service Principal can be found here

Azure Kubernetes Service (AKS) can be configured to use Azure Active Directory (Azure AD) for user authentication. In this configuration, you can sign in to an AKS cluster by using your Azure AD authentication token.
Cluster administrators can configure Kubernetes role-based access control (RBAC) based on a user’s identity or directory group membership. More information about RBAC for AKS

4. Networking

Configuring the virtual Networks for your Azure Kubernetes Cluster is important for the right IP range but later on also for the Network Security Groups (NSG).

Here you see an example of the Kubernetes NSG which is connected to the Internet by Default after installation, you can deep dive into security but be careful which settings you do here because Microsoft resources must have access to service the Azure Kubernetes Cluster.

NSG created after installation is finished

NSG Rule set Inbound and outbound

In a container-based microservices approach to application development, application components must work together to process their tasks. Kubernetes provides various resources that enable this application communication. You can connect to and expose applications internally or externally. To build highly available applications, you can load balance your applications. More complex applications may require configuration of ingress traffic for SSL/TLS termination or routing of multiple components. For security reasons, you may also need to restrict the flow of network traffic into or between pods and nodes.

Best practices for network connectivity and security in Azure Kubernetes Service (AKS):

Here is more information about networking and Security for AKS

5. Monitoring

Keep Azure Monitoring Enabled and Connect to your Log Analytics workspace or create a new workspace for Container monitoring of your Azure Kubernetes Cluster.

Azure Monitor for containers is a feature designed to monitor the performance of container workloads deployed to either Azure Container Instances or managed Kubernetes clusters hosted on Azure Kubernetes Service (AKS). Monitoring your containers is critical, especially when you’re running a production cluster, at scale, with multiple applications.

Azure Monitor for containers gives you performance visibility by collecting memory and processor metrics from controllers, nodes, and containers that are available in Kubernetes through the Metrics API. Container logs are also collected. After you enable monitoring from Kubernetes clusters, metrics and logs are automatically collected for you through a containerized version of the Log Analytics agent for Linux. Metrics are written to the metrics store and log data is written to the logs store associated with your Log Analytics workspace.

6. Tags

When you build more Azure Kubernetes Clusters for different departments or teams you can TAG your Clusters for organizing your billing and security for example. Here you find more information about tagging.

After this you click on the last step Review and Create
The Azure portal will do a validation of your Azure Kubernetes Cluster settings, and when it’s validated you hit Create. But when you want more Automation, you can download the JSON ARM template first and use that.

Installing Azure Kubernetes Cluster via Cloud Shell

Azure Cloud Shell AKS CLI

Azure hosts Azure Cloud Shell, an interactive shell environment that you can use through your browser. Cloud Shell lets you use either bash or PowerShell to work with Azure services. You can use the Cloud Shell pre-installed commands to run the code in this article without having to install anything on your local environment.

Here you see an Example of AKS CLI with Auto Scaler with max count of nodes 😉

Installing Azure Kubernetes Cluster via Template

Create Azure Kubernetes Cluster via Template in the Portal

Here you find an Example at GitHub for a Template deployment

Now you have your Microsoft Azure Kubernetes Cluster (AKS) running in the Cloud, you want to deploy your Container workloads on the Cluster. In the following steps you see different deployments.

Deploy Container workload with Azure DevOps Project

Deployment Center

First you select your repository where your source code is of your workload.

Set the information right and click Next.

Simple example Click Next

Create a Container Registry.

Building Pipeline with Azure DevOps.

Here you see the Building in Microsoft Azure DevOps.

Build, test, and deploy in any language, to any cloud—or on-premises. Run in parallel on Linux, macOS, and Windows, and deploy containers to individual hosts or Kubernetes.

Here you find all the information about Microsoft Azure DevOps for your workloads, code and Deployments.

Deploying Container workload completed with Azure DevOps.

 

Deploy Container Workloads via Visual Studio Code

When you download and install Visual Studio Code on your computer, you can install the Azure Kubernetes extension for VSCode.

Install Kubernetes extension for VSCode

VSCode with Kubernetes Extension

Here you see Microsoft Visual Studio Code connected with my Azure subscription where my Azure Kubernetes Cluster is running. With the standard Helm Repository packages for deployment to your AKS Cluster. Here you see a WordPress yaml file which I deployed to the Kubernetes Cluster on Azure.

Just Select your Package and Install on Azure Kubernetes.

From here you can into the Container and read the logs.

I’m using Visual Studio Code a lot for Azure Kubernetes but also for Docker Containers and images.
Making Azure ARM JSON templates and this great for Infrastructure as Code.

 

Azure Monitoring with Container Insights

In One Dashboard you can see the Status of all your Clusters

 

Azure Monitor Container Insights Live View

Because we installed Azure Monitor for Containers on the Microsoft Azure Kubernetes Cluster, we can live see what is happening inside the Kubernetes Cluster with the containers. This is a great feature when you have a issue with a Container for troubleshooting fast and see what is happening.

Conclusion

Microsoft Azure Kubernetes Cluster is fast and easy to manage. You can upgrade your Cluster without downtime of your Container workload. With Azure Monitor for Containers you can see what’s happening inside the container and you can set alerts when something went wrong. This keeps you in Controle of the solution. With Deployment center alias Azure DevOps Projects you can deploy your workload via Azure DevOps Pipeline and work on versioning, testplans, Azure DevOps repo and work together with a Team on the following releases. Working with Azure Kubernetes Multi node pools with Linux and Windows on the same Cluster is possible. Try it yourself and start with a Proof of Concept for your Business.

JOIN Containers in the Cloud Community Group on LinkedIn


Leave a comment

Microsoft #Azure Service Fabric Mesh for your #Microservices and #Container Apps in the #Cloud

Microsoft Service Fabric Mesh

Azure Service Fabric Mesh is a fully managed service that enables developers to deploy microservices applications without managing virtual machines, storage, or networking. Applications hosted on Service Fabric Mesh run and scale without you worrying about the infrastructure powering it. Service Fabric Mesh consists of clusters of thousands of machines. All cluster operations are hidden from the developer. Simply upload your code and specify resources you need, availability requirements, and resource limits. Service Fabric Mesh automatically allocates the infrastructure and handles infrastructure failures, making sure your applications are highly available. You only need to care about the health and responsiveness of your application-not the infrastructure.

With Service Fabric Mesh you can:

  • “Lift and shift” existing applications into containers to modernize and run your current applications at scale.
  • Build and deploy new microservices applications at scale in Azure. Integrate with other Azure services or existing applications running in containers. Each microservice is part of a secure, network isolated application with resource governance policies defined for CPU cores, memory, disk space, and more.
  • Integrate with and extend existing applications without making changes to those applications. Use your own virtual network to connect existing application to the new application.
  • Modernize your existing Cloud Services applications by migrating to Service Fabric Mesh.

Build high-availability into your application architecture by co-locating your compute, storage, networking, and data resources within a zone and replicating in other zones. Azure services that support Availability Zones fall into two categories:

  • Zonal services – you pin the resource to a specific zone (for example, virtual machines, managed disks, IP addresses)
  • Zone-redundant services – platform replicates automatically across zones (for example, zone-redundant storage, SQL Database).

To achieve comprehensive business continuity on Azure, build your application architecture using the combination of Availability Zones with Azure region pairs. You can synchronously replicate your applications and data using Availability Zones within an Azure region for high-availability and asynchronously replicate across Azure regions for disaster recovery protection.

Store state in an Azure Service Fabric Mesh application by mounting an Azure Files based volume inside the container

Twitter AMA on Service Fabric Mesh :

The Service Fabric team will be hosting an Ask Me Anything (AMA) (more like “ask us anything”!) session for Service Fabric Mesh on Twitter on Tuesday, October 30thfrom 9am to 10:30am PST. Tweet to @servicefabric or @AzureSupport using #SFMeshAMA with your questions on Mesh and Service Fabric. More information here

More information about Azure Service Fabric Mesh :

Microsoft Azure Service Fabric Mesh LAB on Github

Get started with Microsoft Azure Service Fabric for your Microservices and Container Apps

Service Fabric Microsoft Ignite 2018 sessions

JOIN Containers in the Cloud Community Group on LinkedIn here


Leave a comment

Installing #Azure Service Fabric Cluster on Windows Server 2019 Insiders #Containers #Winserv

Microsoft Azure Service Fabric Cluster

Azure Service Fabric is a distributed systems platform that makes it easy to package, deploy, and manage scalable and reliable microservices and containers. Service Fabric also addresses the significant challenges in developing and managing cloud native applications. Developers and administrators can avoid complex infrastructure problems and focus on implementing mission-critical, demanding workloads that are scalable, reliable, and manageable. Service Fabric represents the next-generation platform for building and managing these enterprise-class, tier-1, cloud-scale applications running in containers.

In the following Step-by-Step Guide I created a Standalone Microsoft Azure Service Fabric Cluster
on Windows Server 2019 Insiders Preview for DevOps testing :

First I downloaded the Contents of Service Fabric Standalone package for Windows Server here

Several sample cluster configuration files are installed with the setup package. ClusterConfig.Unsecure.DevCluster.json is the simplest cluster configuration: an unsecure, three-node cluster running on a single computer. Other config files describe single or multi-machine clusters secured with X.509 certificates or Windows security. You don’t need to modify any of the default config settings for this tutorial, but look through the config file and get familiar with the settings.

I made the Unsecure three-node Cluster running on Windows Server 2019 Insiders Preview in my MVPLAB.

 

Open Powershell in Administrator modus and run the Script :

.\CreateServiceFabricCluster.ps1 -ClusterConfigFilePath .\ClusterConfig.Unsecure.DevCluster.json -AcceptEULA

Connect-ServiceFabricCluster

 

Service Fabric Explorer (SFX) is an open-source tool for inspecting and managing Azure Service Fabric clusters. Service Fabric Explorer is a desktop application for Windows, macOS and Linux.

I Installed Azure Service Fabric Explorer to visualize the Cluster.

Here we got Azure Service Fabric 3-Node Cluster running on Windows Server 2019 Insiders

Azure Service Fabric CLI

The Azure Service Fabric command-line interface (CLI) is a command-line utility for interacting with and managing Service Fabric entities. The Service Fabric CLI can be used with either Windows or Linux clusters. The Service Fabric CLI runs on any platform where Python is supported.

Prior to installation, make sure your environment has both Python and pip installed.
The CLI supports Python versions 2.7, 3.5, 3.6, and 3.7. Python 3.x is the recommended version, since Python 2.7 will reach end of support soon.

You can download the latest Python version here

Check the Python version and the Pip version by typing :

python –version
Pip –version

The Pip version which is delivered via Python has to be updated with the following command :

python -m pip install –upgrade pip

We now have pip version 18.0 instead of 10.0.1

Installing Service Fabric CLI by command :

pip install -I sfctl

Done ! Service Fabric CLI is installed on my Windows 10 Surface.

sfctl -h 

Now we have installed Microsoft Azure Service Fabric Cluster on Windows Server 2019 Insiders Preview and the Service Fabric CLI on Windows 10, we now can connect to the 3-node Fabric Cluster via CLI.
Because we are working under Windows 10 and not on the host itself we have to set an endpoint connection :

sfctl cluster select –endpoint http://192.168.2.15:19080

sfctl cluster health

sfctl node list

Microsoft Visual Studio 2017 Enterprise and Service Fabric SDK

As a Developer or DevOps you like to work from Microsoft Visual Studio to deploy your Apps, Microservices or Containers to the Azure Service Fabric Cluster.

You need to install the Service Fabric SDK in Visual Studio before you can deploy :

Select Service Fabric Application at New Project

Visual Studio 2017 Enterprise : Service Fabric SDK must be installed

Installing Microsoft Azure Service Fabric SDK

Done.

Now you can make your Service Fabric Container.

Happy Developing 😉

More information on Microsoft Azure Service Fabric Cluster :

Service Fabric on GitHub

Add or remove nodes to a standalone Service Fabric cluster running on Windows Server :

Scaling your Azure Service Fabric Cluster

More info :

Microsoft Azure Service Fabric documentation

Microsoft Azure Service Fabric Cluster Learning Path


Leave a comment

A Great #Microservices E-book about Architecture for Containerized #dotnet Apps #Docker #Kubernetes #Containers

Enterprises are increasingly realizing cost savings, solving deployment problems, and improving DevOps and production operations by using containers. Microsoft has been releasing container innovations for Windows and Linux by creating products like Azure Container Service and Azure Service Fabric, and by partnering with industry leaders like Docker, Mesosphere, and Kubernetes. These products deliver container solutions that help companies build and deploy applications at cloud speed and scale, whatever their choice of platform or tools.
Docker is becoming the de facto standard in the container industry, supported by the most significant vendors in the Windows and Linux ecosystems. (Microsoft is one of the main cloud vendors supporting Docker.) In the future, Docker will probably be ubiquitous in any datacenter in the cloud or on-premises.
In addition, the microservices architecture is emerging as an important approach for distributed mission-critical applications. In a microservice-based architecture, the application is built on a collection of services that can be developed, tested, deployed, and versioned independent

You can download .NET Microservices Architecture for Containerized .NET Application E-book here

eShoponContainers 


Leave a comment

Designing, building, and operating #Microservices on #Azure with #Kubernetes Guide

In this set of articles, Microsoft explores how to build and run a Microservices Architecture on Azure, using Kubernetes as a container orchestrator. Topics include:

  • Using Domain Driven Design (DDD) to design a microservices architecture.
  • Choosing the right Azure technologies for compute, storage, messaging, and other elements of the design.
  • Understanding microservices design patterns.
  • Designing for resliency, scalability, and performance.
  • Building a CI/CD pipeline.

Read all the information on Microservices on Azure here