1 00:00:00,401 --> 00:00:04,434 We have seen managed on hosted Kubernetes on GCP, 2 00:00:04,434 --> 00:00:08,134 which stood for Google Cloud Platform. 3 00:00:08,134 --> 00:00:10,567 Now, let's move on to Microsoft Azure. 4 00:00:11,267 --> 00:00:15,734 Let's open the web browser again, and go to this address 5 00:00:15,734 --> 00:00:21,567 azure.microsoft.com. And there we go, we are on 6 00:00:21,567 --> 00:00:24,901 the homepage of Microsoft Azure Cloud. 7 00:00:24,901 --> 00:00:29,034 Microsoft Azure is a Cloud computing service created by 8 00:00:29,034 --> 00:00:32,866 Microsoft for building, testing, deploying and 9 00:00:32,866 --> 00:00:35,967 managing applications and services through a 10 00:00:35,967 --> 00:00:39,367 global network of Microsoft managed data centers. 11 00:00:39,367 --> 00:00:42,367 We can see a bunch of information, worldwide 12 00:00:42,367 --> 00:00:45,467 locations which are covered by Azure Data Center, 13 00:00:45,467 --> 00:00:48,167 like big companies and clients, which use 14 00:00:48,167 --> 00:00:52,234 Microsoft Azure, and a few MSP statistics. 15 00:00:52,234 --> 00:00:56,467 Again, just like GCP, or any other cloud provider, trying 16 00:00:56,467 --> 00:01:01,134 Microsoft Azure is also free. Let's click on Start free 17 00:01:01,134 --> 00:01:03,734 button to set up our account. 18 00:01:04,200 --> 00:01:09,001 This page is all about what would you get by creating a free account. 19 00:01:09,001 --> 00:01:11,067 Let's call further to get more 20 00:01:11,067 --> 00:01:15,134 information. And there we go, it says that we will 21 00:01:15,134 --> 00:01:17,767 have 12 months of some of the free popular 22 00:01:17,767 --> 00:01:22,867 services and 25+ always free services. Now why 23 00:01:22,867 --> 00:01:27,167 this sort of varied range? Unlike GCP, Azure has 24 00:01:27,167 --> 00:01:30,601 divided its free account provisions in terms of 25 00:01:30,601 --> 00:01:34,367 hourly usage and consumption cost, which means 26 00:01:34,367 --> 00:01:37,067 that free usage of some of the resources will be 27 00:01:37,067 --> 00:01:40,467 calculated on hourly usage pieces, whereas free 28 00:01:40,467 --> 00:01:43,634 usage of other resources will be calculated in 29 00:01:43,634 --> 00:01:46,734 terms of deducted credit. Once we run out of 30 00:01:46,734 --> 00:01:49,101 credit, we won't be able to use them for free. 31 00:01:49,301 --> 00:01:52,667 And mind well, even though Azure provides many of the 32 00:01:52,667 --> 00:01:55,467 free services for 12 months, the credit balance 33 00:01:55,467 --> 00:01:59,467 that we get in terms of currency is only for a month, 34 00:01:59,467 --> 00:02:01,801 which means that if you don't use these 35 00:02:01,801 --> 00:02:05,367 resources, within a month, you will waste the credits. 36 00:02:05,734 --> 00:02:09,033 For example, if we scroll further, we can 37 00:02:09,033 --> 00:02:12,834 see that some of the basic compute provisions like 38 00:02:12,834 --> 00:02:16,967 Virtual Machines, Storage Disk, Blob Storage, 39 00:02:17,201 --> 00:02:21,701 Database Server Instances, etc, are free. But for 40 00:02:21,701 --> 00:02:26,667 limited usage, 750 hours of Linux or Windows 41 00:02:26,667 --> 00:02:32,867 Virtual Machines, 2 SSDs of 64 gigs size, 5 GB 42 00:02:32,867 --> 00:02:37,634 of Blob Storage, or 250 GB Database Instance. 43 00:02:38,067 --> 00:02:41,067 Further, we have the list of services, which are 44 00:02:41,067 --> 00:02:45,001 always free. For example, container service, which 45 00:02:45,001 --> 00:02:48,001 we will be using soon enough is an always free 46 00:02:48,001 --> 00:02:51,434 service. But for using the container service or 47 00:02:51,434 --> 00:02:54,867 Kubernetes cluster, Azure, we'll be deploying VMs, 48 00:02:54,867 --> 00:02:57,867 which again will be chargeable, if we run out of 49 00:02:57,867 --> 00:03:01,401 credits, or free hours. Let's scroll back to the 50 00:03:01,401 --> 00:03:04,801 top and click on Start free button. 51 00:03:05,967 --> 00:03:10,067 Just like Google Cloud Platform needed a Google account, 52 00:03:10,067 --> 00:03:13,634 Microsoft Azure needs a Microsoft account. 53 00:03:14,101 --> 00:03:17,534 Generally, we may not have a Microsoft account, so 54 00:03:17,534 --> 00:03:20,867 let's create one. You can use your existing email 55 00:03:20,867 --> 00:03:24,534 address or get a new one, we will use an existing one. 56 00:03:24,534 --> 00:03:28,167 Click Next, then, let's choose an appropriate 57 00:03:28,167 --> 00:03:32,167 password. Hit next again, you will be asked to 58 00:03:32,167 --> 00:03:34,801 provide a verification code which you will get on 59 00:03:34,801 --> 00:03:37,934 your email address, and you need to choose if you 60 00:03:37,934 --> 00:03:40,767 want to receive any promotional emails. At this 61 00:03:40,767 --> 00:03:43,467 point of time, we don't need to get promotional 62 00:03:43,467 --> 00:03:45,767 emails, so let's just get done with the 63 00:03:45,767 --> 00:03:49,767 verification code and hit next. You may also be 64 00:03:49,767 --> 00:03:53,101 asked to type the text from a CAPTCHA just to let 65 00:03:53,101 --> 00:03:55,001 them know that you are not a robot. 66 00:03:55,001 --> 00:03:57,267 [No Audio] 67 00:03:57,267 --> 00:03:59,901 On the next page, we need to provide some of the personal 68 00:03:59,901 --> 00:04:02,701 information just like we had provided to Google. 69 00:04:02,801 --> 00:04:06,101 The first section includes your full name, email 70 00:04:06,101 --> 00:04:09,267 address, phone number, etc, and some of the 71 00:04:09,267 --> 00:04:12,467 details may vary based on where you live. 72 00:04:12,767 --> 00:04:16,034 Followed by that, we have identity verification through a 73 00:04:16,034 --> 00:04:19,834 phone and an identity verification by a card. 74 00:04:19,834 --> 00:04:24,500 Just ike GCP, here too, cards which do not allow auto 75 00:04:24,500 --> 00:04:28,501 payments may not work. Also, Azure has another 76 00:04:28,501 --> 00:04:31,767 rule, which states that only one account can be 77 00:04:31,767 --> 00:04:34,934 created using one credit card. Once you have 78 00:04:34,934 --> 00:04:37,930 provided your phone number and card information, 79 00:04:37,930 --> 00:04:40,167 next up is signing the agreement. 80 00:04:40,701 --> 00:04:43,567 Click on I Agree and let's continue. 81 00:04:45,001 --> 00:04:48,367 And here we are on the Microsoft Azure dashboard. 82 00:04:48,534 --> 00:04:51,201 Let's take a tour. First of all we have a Create a 83 00:04:51,201 --> 00:04:54,301 resource button, then we have All services which 84 00:04:54,301 --> 00:04:57,867 are provided by Azure. Next up we have Favorites, 85 00:04:58,001 --> 00:05:00,867 these are global favorites but as we keep on 86 00:05:00,867 --> 00:05:04,467 using them, the Favorites may change. We have a 87 00:05:04,467 --> 00:05:07,034 friendly Search bar, followed by some of the 88 00:05:07,034 --> 00:05:10,967 configuration options. Honestly, it may not seem 89 00:05:10,967 --> 00:05:15,301 as easy and intuitive as GCP, but it's just 90 00:05:15,301 --> 00:05:18,601 another Cloud platform. So if you use it enough, 91 00:05:18,601 --> 00:05:20,134 you will get used to it. 92 00:05:21,167 --> 00:05:23,067 Click on the button right 93 00:05:23,067 --> 00:05:25,834 after the search bar, which is used to open the 94 00:05:25,834 --> 00:05:29,134 Azure Cloud Shell, just like GCP's Cloud Shell. 95 00:05:29,367 --> 00:05:32,667 Once we click on it, we get the welcome prompt, we 96 00:05:32,667 --> 00:05:36,134 have an option to choose between bash and 97 00:05:36,134 --> 00:05:39,634 PowerShell and for convenience, we'll go with bash. 98 00:05:39,634 --> 00:05:42,667 To use Cloud Shell effectively, we need to 99 00:05:42,667 --> 00:05:46,101 mount a persistent storage to this Cloud Shell 100 00:05:46,101 --> 00:05:49,767 instance, the persistent storage is a part of free 101 00:05:49,767 --> 00:05:53,101 subscription itself, so we will not be charged for it. 102 00:05:53,101 --> 00:05:56,134 Let's click on create storage and move further. 103 00:05:56,534 --> 00:05:59,634 The next prompt says that our Cloud Drive 104 00:05:59,634 --> 00:06:04,134 has been created, and our Cloud Shell is being initialized. 105 00:06:04,734 --> 00:06:07,367 There we go, Cloud Shell setup is 106 00:06:07,367 --> 00:06:10,501 successful, but these fonts seem quite dull. 107 00:06:10,501 --> 00:06:13,434 So we'll make them a bit more refreshing. Going 108 00:06:13,434 --> 00:06:16,934 further, let's create a resource group. A resource 109 00:06:16,934 --> 00:06:20,767 group is Azure's way to monitor a bunch of relevant 110 00:06:20,767 --> 00:06:24,334 resources under one location. We are naming our 111 00:06:24,334 --> 00:06:28,501 resource group as CC-AKS. And we are setting its 112 00:06:28,501 --> 00:06:32,667 location to eastus. Just like we had regions and 113 00:06:32,667 --> 00:06:37,067 zone in GCP, we have location in Microsoft Azure, 114 00:06:38,134 --> 00:06:40,867 and the resource group provision is successful. 115 00:06:40,867 --> 00:06:44,367 Now we will create a Kubernetes cluster within 116 00:06:44,367 --> 00:06:46,967 this resource group itself. We are using the 117 00:06:46,967 --> 00:06:51,534 command az aks create, which stands for Azure 118 00:06:51,534 --> 00:06:55,167 Kubernetes Services create. And we are instructing 119 00:06:55,167 --> 00:07:00,067 our Cloud Shell to create an AKS-Cluster with 1 node 120 00:07:00,067 --> 00:07:04,501 on CC-AKS resource group, and we are also 121 00:07:04,501 --> 00:07:08,401 enabling additional monitoring to it. Lastly, we 122 00:07:08,401 --> 00:07:12,234 are providing the authentication way as SSH keys, 123 00:07:12,334 --> 00:07:15,834 a lot of things are going on behind the scenes of 124 00:07:15,834 --> 00:07:20,301 this command. Azure is provisioning a whole new VM 125 00:07:20,301 --> 00:07:23,701 as a node, and it is installing all the requisites 126 00:07:23,701 --> 00:07:27,667 like Docker, Kubernetes, etc, on that virtual 127 00:07:27,667 --> 00:07:31,767 machine. So this command might take a significant 128 00:07:31,767 --> 00:07:35,267 amount of time to finish, but keep patience as the 129 00:07:35,267 --> 00:07:37,967 result will be sweet. Once the command has 130 00:07:37,967 --> 00:07:40,767 finished successfully, we will get the cluster 131 00:07:40,767 --> 00:07:45,367 configuration or the output of the command in JSON format. 132 00:07:45,395 --> 00:07:47,528 Let's take a look at some of the known 133 00:07:47,528 --> 00:07:52,201 terms. Well, the node count is 1, the maximum 134 00:07:52,201 --> 00:07:56,767 number of possible pods is 110 and the node pool 135 00:07:56,767 --> 00:08:00,467 name is nodepool1 for the more in the disk 136 00:08:00,467 --> 00:08:04,567 associated with this node is of 30 GB and these 137 00:08:04,567 --> 00:08:07,801 resources are provisioned under resource group CC-AKS 138 00:08:07,834 --> 00:08:11,967 in eastus. And finally, we also have the 139 00:08:11,967 --> 00:08:16,434 cluster name, which is AKS-Cluster. To access this 140 00:08:16,434 --> 00:08:20,834 cluster, run command az aks get-credentials, 141 00:08:20,834 --> 00:08:24,001 so that we can import the credentials of the cluster 142 00:08:24,001 --> 00:08:27,167 to our Cloud Shell, and the command is successful. 143 00:08:27,801 --> 00:08:31,834 And we can verify it using kubectl get nodes. 144 00:08:31,834 --> 00:08:35,933 As we had requested, this cluster has just one node 145 00:08:36,034 --> 00:08:39,067 and the output is pretty much similar to all other 146 00:08:39,067 --> 00:08:41,734 kubectl get node command, which provides 147 00:08:41,734 --> 00:08:45,967 information such as STATUS of nodes, ROLES of 148 00:08:45,967 --> 00:08:49,101 nodes, the time since the node is up and running, 149 00:08:49,101 --> 00:08:51,667 and the Kubernetes version which has been 150 00:08:51,667 --> 00:08:55,201 installed on it. Let's go even further and run our 151 00:08:55,201 --> 00:08:58,967 standard nginx deployment with a LoadBalancer service. 152 00:08:58,967 --> 00:09:31,634 [Background Music] 153 00:09:31,634 --> 00:09:34,434 At last, our deployment and service have been created 154 00:09:34,434 --> 00:09:37,901 successfully. And the LoadBalancer is also 155 00:09:37,901 --> 00:09:40,701 working just fine, because our service has an 156 00:09:40,701 --> 00:09:46,467 external IP called 137.135.78.74. 157 00:09:46,801 --> 00:09:51,334 Let's navigate to this IP address on a separate browser tab. 158 00:09:52,134 --> 00:09:55,667 And there we go, our nginx is up and running. 159 00:09:55,667 --> 00:09:58,134 It means that the cluster which we had 160 00:09:58,134 --> 00:10:02,467 set up works just perfectly fine. Just like GCP, 161 00:10:02,467 --> 00:10:05,934 you can try all sorts of objects and experiments 162 00:10:05,934 --> 00:10:09,034 with this AKS-Cluster as well. Let's minimize the 163 00:10:09,034 --> 00:10:12,034 dashboard and explore a few more aspects of this 164 00:10:12,034 --> 00:10:15,467 cluster, navigate to Resource groups and we can 165 00:10:15,467 --> 00:10:18,467 see a bunch of resource groups already created. 166 00:10:18,601 --> 00:10:21,501 Out of these, the one which we had created is 167 00:10:21,501 --> 00:10:25,934 called CC-AKS, which is located at East US. 168 00:10:25,934 --> 00:10:30,967 Let's click on it, it has 1 resource called AKS-Custer, 169 00:10:30,967 --> 00:10:33,767 which is a managed Kubernetes instance. 170 00:10:33,867 --> 00:10:37,234 By clicking on it, we get even further details 171 00:10:37,234 --> 00:10:39,867 about the cluster which we have just created. 172 00:10:39,867 --> 00:10:43,534 If you remember, we had enabled monitoring on this 173 00:10:43,534 --> 00:10:47,134 cluster as well. So let's go to Insights tab. 174 00:10:47,501 --> 00:10:50,067 These insights are mostly about resource 175 00:10:50,067 --> 00:10:53,801 utilization in the timeframe mentioned in time range. 176 00:10:53,967 --> 00:10:58,001 We can make it more concise by adding other filters. 177 00:10:59,367 --> 00:11:01,801 And if we scroll further, we can find all 178 00:11:01,801 --> 00:11:05,367 sorts of information like Node CPU utilization, 179 00:11:05,367 --> 00:11:10,367 Node memory utilization, Node count, etc. We also 180 00:11:10,367 --> 00:11:13,501 have tabs like Nodes, Controllers, and Containers, 181 00:11:13,634 --> 00:11:16,634 which provide respective information. If we go to 182 00:11:16,634 --> 00:11:19,567 Nodes tab, we can see that there is only 1 Node 183 00:11:19,567 --> 00:11:22,034 running within the cluster. And if we head to 184 00:11:22,034 --> 00:11:25,134 Controllers tab, we have a controller starting 185 00:11:25,134 --> 00:11:28,634 with my-nginx, which if we look closely, is a 186 00:11:28,634 --> 00:11:31,467 ReplicaSet controller, which has been created by 187 00:11:31,467 --> 00:11:35,667 my-nginx deployment. Now let's go back to Cloud 188 00:11:35,667 --> 00:11:38,834 Shell and delete the resource group which we have created. 189 00:11:38,834 --> 00:11:42,334 Use az group delete command followed by 190 00:11:42,334 --> 00:11:45,734 the name of the resource group and provide yes to 191 00:11:45,734 --> 00:11:48,434 give it permission to delete the resources which 192 00:11:48,434 --> 00:11:50,401 are currently being used as well. 193 00:11:50,501 --> 00:11:52,634 When we are done, you can close the Cloud Shell 194 00:11:52,634 --> 00:11:55,267 and sign out from this account.