Azure Container Service
The Azure Container Service (ACS) is a cloud-based container deployment and management service that supports popular open-source tools and technologies for container and container orchestration. ACS allows you to run containers at scale in production and manages the underlying infrastructure for you by configuring the appropriate VMs and clusters for you. ACS is orchestrator-agnostic and allows you to use the container orchestration solution that best suits your needs. Learn how to use ACS to scale and orchestrate applications using DC/OS, Docker Swarm, or Kubernetes.
- Operation Engineers
- Anyone interested in managing containers at scale
- Viewers should have a basic understanding of containers.
- Some familiarity with the Azure platform will also be helpful but is not required.
- Demonstrate how to use ACS to create virtual machine hosts and clusters for container orchestration
- Understand how to choose an open-source orchestration solution for ACS
- Understand how to run containers in production on Azure using ACS
- Demonstrate the ability to scale and orchestrate containers with DC/OS, Docker Swarm, and Kubernetes
This Course Includes
- 60 minutes of high-definition video
- Live demonstration on key course concepts
What You'll Learn
- Overview of Azure Container Service: An overview of containers and the advantages of using them.
- Orchestrators: A summary of what orchestrators are and a description of the most popular orchestrators in use
- Open Source Cloud-First Container Management at Scale: This lesson discusses the purpose of ACS, and how the service is activated.
- Deployment Scenarios: A brief explanation of different orchestrator scenarios.
- Deploy Kubernetes and Security: A live demo on how to deploy K8S.
- Deploy Kubernetes from the Portal: A live demo on how to create a security key and a K8S cluster.
- Deploy Kubernetes from the CLI: A live demo on the Command Line Interface.
- Orchestrator Overview – Kubernetes: A lesson on managing containers. First up..Kubernetes.
- Orchestrator Overview – DC/OS: In this lesson, we discuss deploying containers to the Data Center Operating System.
- Orchestrator Overview – Swarm: In this last lesson we'll look at how ACS deploys Swarm.
- Summary and Conclusion: A wrap-up and summary of what we’ve learned in this course.
In this demo, I'm going to show you how to generate a security key and then create a Kubernetes cluster using the Azure Container Service from within the portal. When you generate a cluster from the Azure Portal, there's two things that you'll need: an SSH key to connect to the cluster and a service principal.
The service principal is something that you can create through the portal or through the command line, and it's generated automatically if you generate the cluster from the command line. I'll show you that in a second, but I've got the documentation here to create a service principal for Kubernetes.
So, I followed those instructions and I have the client ID as well as the client secret. So, the next thing I'm going to do is come into my Azure Portal and click this icon in the upper right for the cloud shell. That's gonna give me a convenient, browser-based terminal so that I have no installation required in order to generate my key. Now, if I need to generate a new key, I type ssh-keygen. That's the command. Type is RSA, byte size is 2,048, and then I can specify a path. Use the default path if you haven't generated a key yet. I'm gonna override this path just for the purpose of this demonstration and create a key that's simply called mykey that I persist to my cloud drive. I'm gonna leave an empty passphrase. You can certainly add one for added security, and then we generate that key.
So now, if I navigate to my cloud drive directory and I list, I can see my key, which is the private key, and mykey.pub, which is the public version of that key. And to obtain that key, I simply type cat mykey.pub. This will output the key, and I can highlight it, right-click, copy it, and then I've got a notepad with my secrets in that I can paste that key into.
Now, I'm ready to create the cluster through the portal. Gonna pick my orchestrator as Kubernetes, use that existing resource group, and you're more than welcome to create a new one, and then click OK. On the next blade, I need to specify a unique name across Azure to publicly access the cluster. I'm gonna call this cloudacademyk8s and tab out to verify that it's indeed unique. I need a username to access the master, so I'm gonna call that jlikness.
Then, I need a public key, so I'm going to hide this secret, but I'm gonna paste a public key that I generated for this access. Then, I need a service principal ID and password. I covered how to obtain those earlier. So, we'll go ahead and paste these in, and it's going to verify that it's a valid client ID and password. And we're gonna leave the master count to the default of one. We'll click OK.
For the agent configuration, I'm gonna create three agents so we have a decent-size cluster, and I'm going to come into the size and make sure that the size is the DS1. For the purposes of this demo, I'm gonna do the smaller size virtual machine. So, we'll select that, leave the default operating system. It's gonna verify and validate that my settings are correct, and we'll click OK to go ahead and spin up the deployment.
After several minutes, it should spin up the cluster, and if you visit the resource group, you'll see something like this. You can see it's created storage accounts, virtual machines, network interfaces, public IP addresses, load balancers to use, essentially everything you need to get up and running with that cluster.
About the Author
Jeremy Likness is an experienced entrepreneur who has worked with companies to catalyze growth and leverage leading edge development technology to streamline business processes and support innovation for two decades. Jeremy is a prolific author with four published books and hundreds of articles focused on helping developers be their best. Jeremy speaks at conferences around the country and covers topics ranging from technologies like Docker, Node.js and .NET Core to processes and methodologies like Agile and DevOps. Jeremy lives near Atlanta with his wife of 19 years and teen-aged daughter. His hobbies including hiking, climbing mountains, shooting 9-ball, and regularly attending CrossFit classes while maintaining a vegan diet.