About Hands-On Linux Administration on Azure, Second Edition
Thanks to its flexibility in delivering scalable cloud solutions, Microsoft Azure is a
suitable platform for managing all your workloads. You can use it to implement Linux
virtual machines and containers, and to create applications in open source languages
with open APIs.
This Linux administration book first takes you through the fundamentals of Linux and
Azure to prepare you for the more advanced Linux features in later chapters. With the
help of real-world examples, you’ll learn how to deploy virtual machines (VMs) in Azure,
expand their capabilities, and manage them efficiently. You will manage containers
and use them to run applications reliably, and in the concluding chapter, you’ll explore
troubleshooting techniques using a variety of open source tools.
By the end of this book, you’ll be proficient in administering Linux on Azure and
leveraging the tools required for deployment.
Azure Kubernetes Service (AKS) makes it simple to deploy a managed Kubernetes cluster in Azure. AKS reduces the complexity and operational overhead of managing Kubernetes by offloading much of that responsibility to Azure. 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.
Azure AKS Kubernetes Services in Resource Group.
When you go to settings of your Azure AKS Kubernetes Cluster and then to Upgrade, there you can see your version of Kubernetes and the New versions of Azure AKS Services. Before you upgrade :
Important : Never skip an Upgrade version of Azure AKS Kubernetes.
You can Upgrade from here by clicking on version 1.15.5 and click on Save at the top.
Azure Activity log.
When the first upgrade is succeeded you can do the next version upgrade.
With Azure Monitoring Insights you can view the live data and see what’s going on.
Azure Monitoring Container Insights.
When the upgrade is completed, you want to see if your new Azure AKS Cluster Services is Healthy.
This Health (Preview) feature is handy to see if all Services are running good.
Azure Monitoring Insights Health of the AKS Kubernetes Services.
The Upgrades are of course also possible via Microsoft Azure Cloud Shell with Azure CLI
As a DevOps person you like to work with Microsoft Visual Studio Code
Deploying and managing your Azure AKS Kubernetes Cluster services from there with the right extensions.
Here you see also that the KubeProxyVersion is v1.15.7
The extension for developers building applications to run in Kubernetes clusters and for DevOps staff troubleshooting Kubernetes applications.
Features include:
View your clusters in an explorer tree view, and drill into workloads, services, pods and nodes.
Browse Helm repos and install charts into your Kubernetes cluster.
Intellisense for Kubernetes resources and Helm charts and templates.
Edit Kubernetes resource manifests and apply them to your cluster.
Build and run containers in your cluster from Dockerfiles in your project.
View diffs of a resource’s current state against the resource manifest in your Git repo
Easily check out the Git commit corresponding to a deployed application.
Run commands or start a shell within your application’s pods.
Get or follow logs and events from your clusters.
Forward local ports to your application’s pods.
Create Helm charts using scaffolding and snippets.
Bootstrap applications using Draft, and rapidly deploy and debug them to speed up the development loop.
Upgrade Azure AKS Kubernetes Services is Done 😉
When you manage and monitor your Azure AKS Kubernetes Cluster Services, have also a look at Microsoft Azure Advisor for new features and security issues :
Azure Advisor recommendations for Kubernetes services.
The cool thing is that Microsoft also give you the solution to solve a high risk :
Remediation steps.
Conclusion :
Microsoft Azure AKS Kubernetes is a managed services and made upgrading for customers really easy to do. You can monitor the upgrades and see the Health status of the Azure AKS Kubernetes services. You get free advise to improve the Services and this all keeps you in control and your business running.
Microsoft Windows Admin Center for Hybrid IT Management
I really like to work with Microsoft Windows Admin Center for managing my Hybrid workloads Windows Servers in Azure Cloud Services but also our On-premises Servers on Hyper-V and VMware platform. Even our physical Windows Servers can be managed from Windows Admin Center.
You can extend on-premises deployments of Windows Server to the cloud by using Azure hybrid services. These cloud services provide an array of useful functions, including the following:
Protect virtual machines and use cloud-based backup and disaster recovery (HA/DR) with Azure Site Recovery.
Track what’s happening across your applications, network and infrastructure with the help of advanced analytics and machine learning in Azure Monitor.
Simplify network connectivity to Azure with Azure Network Adapter.
Keep virtual machines up to date with Azure Update Management.
Azure hybrid services work with Windows Servers in the following configurations:
Stand-alone physical servers and virtual machines (VMs)
I’m working with Windows Admin Center since day one, and you see the hybrid management tool evolving with great new features to make your life as an Administrator more easier. For example you get notifications when there are updates in extensions.
Notification details about update Extensions
When you click on the link “Go to Extensions” you will see the Extensions installed and the Updates which you can install from there.
Here you see an Azure Security Center Extension update.
There are not only Microsoft extensions, but also third party solution extensions and you could build your own extension for your solution. Here you find all the information about Windows Admin Center Extensions
Third Party Windows Admin Center Extensions
Installing a New extension is easy to do, the Azure Cloud Shell (Preview) was the last extension I installed in my Azure MVP Lab to work with. Azure Cloud Shell is an interactive, authenticated, browser-accessible shell for managing Azure resources. It provides the flexibility of choosing the shell experience that best suits the way you work, either Bash or PowerShell. Cloud Shell enables access to a browser-based command-line experience built with Azure management tasks in mind. So how does this look in Windows Admin Center?
Install the Azure Cloud Shell (Preview) Extension
You find the Installed Azure Cloud Shell in the pulldown menu of WAC
For Management of your Windows Servers you need some tools and consoles. Windows Admin Center is supporting you to get the Management consoles in one place to do your administration and updates.
The next tree Features are in Windows Admin Center to manage your Windows Server.
Powershell inside WAC of my Domain Controller
Windows PowerShell is a task-based command-line shell and scripting language designed especially for system administration. Built on the .NET Framework, Windows PowerShell helps IT professionals and power users control and automate the administration of the Windows operating system and applications that run on Windows.
Here you find more information about Windows Commands
Windows Update in Windows Admin Center.
Of course you need to update your Windows Servers, and what I like in WAC is that you get the information if an update needs a reboot before you click on Install Updates. This option is good for my Azure MVP Lab but when you need to update more then 100 Servers, you would do that centrally managed like with Update Management solution in Azure
Windows Remote Desktop in WAC
Remote Desktop is one of the Features of Windows Admin Center, to take over the desktop for installations of Applications for example.
Windows Admin Center got a lot more Features and Tools to Manage your Windows Servers in a Hybrid world.
Like these :
Storage
Security
System Insights
Scheduled Tasks
Installing Roles and Features of Windows Server
Registry
Processes running on your Windows Server
Managing and deploying Clusters
and much More………
You can install the following Resources to Manage with WAC
Windows Admin Center Overview
Conclusion:
Microsoft Windows Admin Center is the New Management tool for your Hybrid IT Management to Controle your Servers for your Business. It got all the Management consoles covered of Windows Servers to manage from one tool.
It’s easy to use and It keeps you Up-to-date of what is happening on your Windows Server but also what is New and updated. With Microsoft Windows Admin Center your are learning on the job and that’s what I Like 😉
Hope you will use Microsoft Windows Admin Center too for your Business, download it here for Free!
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.
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:
Basics
Scale
Authentication
Networking
Monitoring
Tags
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 :
Virtual Nodes
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):
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
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 DevOpsfor 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.
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.
To be the first with the Microsoft Windows Insiders Community testing all the New features is awesome to do!
I’m a Windows Insider since October 1st, 2014 and I like to see every week what’s new? In the Feedback HUB Preview you can Follow other Windows Insiders and see the Challenges and features requests. From there you can give them feedback or vote for the new features.
Windows Insiders Feed Back HUB
To become a Microsoft Windows Insider, you have to register your self here : BECOME AN INSIDER
In the Windows Insiders HUB you find also the New announcements of the Preview Build versions. Microsoft Windows Insiders also have a blogsite here to follow:
When you are active in the Microsoft Windows Insiders Community you can Earn badges and Learn a lot of the New Features Microsoft releases every week. This gives you always a step a head and It’s fun 🚀😎👍
Earning Badges
It’s not only the Windows 10 Insiders program but also Windows Server Insiders or Microsoft Edge Insiders
Here you find more information :
Save Profiles.json and you will see that the background will be Awesome in Ubuntu Terminal :
How Awesome is this !! 😎🚀👍
Conclusion:
I Love my Hobby and my Hobby is my Work !
The Microsoft Windows Insiders Program is Awesome together with the Community to make Windows a Great product for everyone.
Building on the full range of existing Azure services, Azure Sentinel natively incorporates proven foundations, like Log Analytics, and Logic Apps. Azure Sentinel enriches your investigation and detection with AI, and provides Microsoft’s threat intelligence stream and enables you to bring your own threat intelligence.
Microsoft Azure Sentinel is a scalable, cloud-native, security information event management (SIEM) and security orchestration automated response (SOAR) solution. Azure Sentinel delivers intelligent security analytics and threat intelligence across the enterprise, providing a single solution for alert detection, threat visibility, proactive hunting, and threat response. Read more about Azure Sentinel Preview here
When you install Azure Virtual Machines or Kubernetes Clusters in the Microsoft Cloud, It’s important to monitor your workload and keep your IT department in Control for the Business. Metric alerts in Azure Monitor work on top of multi-dimensional metrics. These metrics could be platform metrics, custom metrics, popular logs from Azure Monitor converted to metrics and Application Insights metrics.
IT Department of a company has most of the time different teams with each having it’s own responsibility of workloads in the Microsoft Cloud. For example, the Servicedesk is supporting the Business and they like to see if all the Services are up and running for the Business. The Infrastructure Team wants the same, but on deep level components of the Services like Memory, Network, Storage, CPU, Performance, Availability and more. The Technical Application Team is interested if the application is running and working with all the Interfaces, Databases, and/or Azure Pipelines.
Each Team can build there own Azure Dashboard(s) in the Microsoft Cloud.
Here I Have made an easy example of my Windows Server 2019 Virtual Machines and my Azure Kubernetes Cluster in One Microsoft Azure Dashboard :
You can Start from Azure Monitor Metrics
Or you can Start from the Virtual Machine Blade here.
When you have your Azure Monitor metrics ready with the right information then you can create it in your Azure Dashboard for your Team.
Select another Dashboard.
Create your Own Dashboard.
Now we have the first VM with CPU percentage in the Azure Dashboard.
Here I have added More Virtual Machines to the Same Metric Chart.
When you have Azure Kubernetes Cluster to monitor :
From here you can Add Container Insights information into your Azure Dashboard :
Adding Azure Monitor Container Insights of KubeCluster01
The Azure Monitor Container Insights logs for your Dashboard information, with Pin to Dashboard.
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, these metrics and logs are automatically collected for you through a containerized version of the Log Analytics agent for Linux and stored in your Log Analytics workspace.
Install AKS-Preview extension via Azure Cloudshell
NOTE ! This is a Preview blogpost, do not use in production! (only for test environments)
To create an AKS cluster that can use multiple node pools and run Windows Server containers, first enable the WindowsPreview feature flags on your subscription. The WindowsPreview feature also uses multi-node pool clusters and virtual machine scale set to manage the deployment and configuration of the Kubernetes nodes. Register the WindowsPreview feature flag using the az feature register command as shown in the following example:
I Have registered the following Preview Features from the Azure CloudShell :
az feature register –name WindowsPreview –namespace Microsoft.ContainerService
az feature register –name MultiAgentpoolPreview –namespace Microsoft.ContainerService
az feature register –name VMSSPreview –namespace Microsoft.ContainerService
This will take a few minutes and you can check the registration with the following command :
az feature list -o table –query “[?contains(name, ‘Microsoft.ContainerService/WindowsPreview’)].{Name:name,State:properties.state}”
When ready, refresh the registration of the Microsoft.ContainerService resource provider using the az provider register command:
Creating Azure Kubernetes Cluster
First you create a Resource Group in the right Azure Region for your AKS Cluster to run:
az group create –name myResourceGroup –location eastus
I created Resource Group KubeCon in location West-Europe.
Creating KubeCluster
With the following CLI command in Azure Cloudshell, I created the Kubernetes Cluster with a single node:
The Azure Kubernetes Cluster “KubeCluster”is created in the resource group “KubeCon” in a view minutes.
Adding a Windows Pool
Adding a Windows Server Node Pool
By default, an AKS cluster is created with a node pool that can run Linux containers. Use az aks nodepool add command to add an additional node pool that can run Windows Server containers.
az aks nodepool add –resource-group KubeCon –cluster-name KubeCluster –os-type Windows –name pool02 –node-count 1 –kubernetes-version 1.14.0
I added the Windows Server Pool via the Azure Portal.
When this has finished, we have an Azure Kubernetes Cluster with Multi node Pools for Linux and Windows Server Containers :
Pools for Linux and Windows Server Containers
The following will be created in Microsoft Azure too :
VNET, NSG and Virtual Machine Scale Set (VMSS)
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, these metrics and logs are automatically collected for you through a containerized version of the Log Analytics agent for Linux and stored in your Log Analytics workspace.
Container Insights Monitoring of the Linux Node
Container Insights Monitoring of the Windows Server Node