1 00:00:06,320 --> 00:00:11,499 [Music] 2 00:00:15,679 --> 00:00:19,920 okay we're next up we've got shri jeff 3 00:00:18,000 --> 00:00:21,840 anogen he's talking about vms and 4 00:00:19,920 --> 00:00:23,920 containers a reminder if you have 5 00:00:21,840 --> 00:00:27,840 questions put them in the to the 6 00:00:23,920 --> 00:00:27,840 question tab and vinulus okay 7 00:00:28,240 --> 00:00:33,360 thanks simon hey thanks everyone for 8 00:00:30,560 --> 00:00:34,640 joining in good evening good afternoon 9 00:00:33,360 --> 00:00:36,640 good morning 10 00:00:34,640 --> 00:00:38,879 so this is about uh 11 00:00:36,640 --> 00:00:40,320 how virtual machines and containers can 12 00:00:38,879 --> 00:00:43,360 actually be 13 00:00:40,320 --> 00:00:45,600 used in a single control plane or 14 00:00:43,360 --> 00:00:47,760 management plane the 15 00:00:45,600 --> 00:00:51,199 topic of this session is vms plus 16 00:00:47,760 --> 00:00:54,000 containers equal to the perfect wedding 17 00:00:51,199 --> 00:00:57,600 as you probably see in my slide i am 18 00:00:54,000 --> 00:01:00,960 srijit anderson working for red hat 19 00:00:57,600 --> 00:01:03,280 and over the next uh 25 minutes i'll be 20 00:01:00,960 --> 00:01:05,360 speaking about cube word 21 00:01:03,280 --> 00:01:08,000 and we'll be demonstrating some of the 22 00:01:05,360 --> 00:01:09,280 keyboard functionalities using 23 00:01:08,000 --> 00:01:13,520 red hat's 24 00:01:09,280 --> 00:01:16,479 uh open shift virtualization tool 25 00:01:13,520 --> 00:01:19,200 and i'm sure that those who joined this 26 00:01:16,479 --> 00:01:20,799 might have heard about keyboard or 27 00:01:19,200 --> 00:01:23,200 kubernetes 28 00:01:20,799 --> 00:01:25,520 or has enough experience on 29 00:01:23,200 --> 00:01:28,880 virtualization technologies so what 30 00:01:25,520 --> 00:01:30,240 exactly is keyboard right uh so keyboard 31 00:01:28,880 --> 00:01:33,119 is nothing but 32 00:01:30,240 --> 00:01:34,880 uh comparing the power of kubernetes to 33 00:01:33,119 --> 00:01:37,439 manage your virtualization 34 00:01:34,880 --> 00:01:39,840 infrastructure okay 35 00:01:37,439 --> 00:01:42,560 so i'll speak about more on cubot in the 36 00:01:39,840 --> 00:01:43,520 coming slides and in the demonstration 37 00:01:42,560 --> 00:01:45,840 and 38 00:01:43,520 --> 00:01:48,560 as you know right uh containers has been 39 00:01:45,840 --> 00:01:51,439 there for the last couple of decades 40 00:01:48,560 --> 00:01:55,119 we started with 41 00:01:51,439 --> 00:01:57,360 the solaris zones then we had the lxc 42 00:01:55,119 --> 00:01:59,920 linux containers and in 43 00:01:57,360 --> 00:02:02,240 in 2012 we had 44 00:01:59,920 --> 00:02:04,880 docker coming in as a container runtime 45 00:02:02,240 --> 00:02:07,280 and popularizing containers but you all 46 00:02:04,880 --> 00:02:09,599 know that containers are not vms or 47 00:02:07,280 --> 00:02:11,280 virtual machines right 48 00:02:09,599 --> 00:02:12,400 containers 49 00:02:11,280 --> 00:02:15,120 by the way 50 00:02:12,400 --> 00:02:16,160 has a lot of commonalities with virtual 51 00:02:15,120 --> 00:02:19,120 machines 52 00:02:16,160 --> 00:02:20,959 on how it does the resource allocation 53 00:02:19,120 --> 00:02:23,360 uh how it actually 54 00:02:20,959 --> 00:02:25,040 do security 55 00:02:23,360 --> 00:02:26,800 and uh 56 00:02:25,040 --> 00:02:28,280 how it actually 57 00:02:26,800 --> 00:02:30,400 does the 58 00:02:28,280 --> 00:02:31,599 compartmentalization of resources within 59 00:02:30,400 --> 00:02:35,200 your 60 00:02:31,599 --> 00:02:38,640 systems right so containers make use of 61 00:02:35,200 --> 00:02:41,680 lot of linux capabilities like linux 62 00:02:38,640 --> 00:02:45,040 kernel namespaces control groups 63 00:02:41,680 --> 00:02:47,519 and network namespaces right and the 64 00:02:45,040 --> 00:02:49,200 main difference is containers use a 65 00:02:47,519 --> 00:02:51,519 container image which only has 66 00:02:49,200 --> 00:02:53,760 suggestion of os with the application 67 00:02:51,519 --> 00:02:56,160 binaries and the dependencies 68 00:02:53,760 --> 00:02:58,400 so they are not virtual machines they do 69 00:02:56,160 --> 00:03:00,959 not have guest oils and additional 70 00:02:58,400 --> 00:03:03,920 virtual devices and all those layers 71 00:03:00,959 --> 00:03:05,680 which you otherwise see in a traditional 72 00:03:03,920 --> 00:03:08,159 virtualization 73 00:03:05,680 --> 00:03:10,400 now speaking about cube word 74 00:03:08,159 --> 00:03:13,920 we are actually going to try putting 75 00:03:10,400 --> 00:03:14,879 virtual machines inside of a container 76 00:03:13,920 --> 00:03:18,319 okay 77 00:03:14,879 --> 00:03:21,200 so uh if you have experience with kvm 78 00:03:18,319 --> 00:03:23,519 which is a kernel based virtual machine 79 00:03:21,200 --> 00:03:25,120 kvm is nothing but a 80 00:03:23,519 --> 00:03:27,360 linux kernel 81 00:03:25,120 --> 00:03:29,200 module right when you start a virtual 82 00:03:27,360 --> 00:03:33,040 machine it is nothing but a process 83 00:03:29,200 --> 00:03:35,840 running in that linux kernel right and 84 00:03:33,040 --> 00:03:37,280 containers also encapsulate processes 85 00:03:35,840 --> 00:03:39,519 right so if you look at the 86 00:03:37,280 --> 00:03:41,840 commonalities they have 87 00:03:39,519 --> 00:03:44,640 the same underlying resource needs like 88 00:03:41,840 --> 00:03:47,440 accessing cpu memory network 89 00:03:44,640 --> 00:03:49,840 and most of the times storage from the 90 00:03:47,440 --> 00:03:52,000 host or from your shared storage right 91 00:03:49,840 --> 00:03:54,000 so you can indeed 92 00:03:52,000 --> 00:03:56,239 use containers to spin up virtual 93 00:03:54,000 --> 00:03:58,080 machines or have containers running 94 00:03:56,239 --> 00:03:59,439 virtual machines 95 00:03:58,080 --> 00:04:02,000 now 96 00:03:59,439 --> 00:04:03,760 virtual machines running in containers 97 00:04:02,000 --> 00:04:05,840 are nothing but what we talk about 98 00:04:03,760 --> 00:04:08,720 keyboard okay 99 00:04:05,840 --> 00:04:12,400 uh we use the kbm hypervisor 100 00:04:08,720 --> 00:04:15,439 as a virtualization technique or tool 101 00:04:12,400 --> 00:04:19,600 and the most important fact is 102 00:04:15,439 --> 00:04:21,759 uh everything is managed by kubernetes 103 00:04:19,600 --> 00:04:23,919 so most of you would know kubernetes is 104 00:04:21,759 --> 00:04:26,960 nothing but the container orchestration 105 00:04:23,919 --> 00:04:29,360 and cluster manager developed by google 106 00:04:26,960 --> 00:04:32,080 and obviously it is a community open 107 00:04:29,360 --> 00:04:34,400 source uh solution right 108 00:04:32,080 --> 00:04:36,560 so the benefit of using kubernetes to 109 00:04:34,400 --> 00:04:39,280 manage virtual machines then you only 110 00:04:36,560 --> 00:04:40,960 have one single management plane or 111 00:04:39,280 --> 00:04:44,000 control plane 112 00:04:40,960 --> 00:04:46,800 to not only manage your containerized 113 00:04:44,000 --> 00:04:49,120 workloads but also the traditional 114 00:04:46,800 --> 00:04:52,400 uh non-containerized workloads which are 115 00:04:49,120 --> 00:04:54,639 running in virtual machines 116 00:04:52,400 --> 00:04:57,600 and from a technical standpoint you have 117 00:04:54,639 --> 00:05:00,160 the same uh port like software defined 118 00:04:57,600 --> 00:05:04,400 network connectivity uh you can also 119 00:05:00,160 --> 00:05:06,400 configure uh vlans uh to actually use 120 00:05:04,400 --> 00:05:07,919 the existing external vlan 121 00:05:06,400 --> 00:05:10,479 configurations which are already 122 00:05:07,919 --> 00:05:12,960 provisioned in your network and all 123 00:05:10,479 --> 00:05:14,240 those uh terminologies and paradigms 124 00:05:12,960 --> 00:05:17,280 which you are familiar with in 125 00:05:14,240 --> 00:05:19,680 kubernetes like persistent volumes 126 00:05:17,280 --> 00:05:21,199 persistent volume claim storage class 127 00:05:19,680 --> 00:05:23,360 everything could be 128 00:05:21,199 --> 00:05:25,360 made available within the virtualization 129 00:05:23,360 --> 00:05:26,720 space 130 00:05:25,360 --> 00:05:28,320 now 131 00:05:26,720 --> 00:05:29,280 uh 132 00:05:28,320 --> 00:05:31,360 i 133 00:05:29,280 --> 00:05:33,199 mentioned about openshift virtualization 134 00:05:31,360 --> 00:05:34,479 which is what i'm going to use for the 135 00:05:33,199 --> 00:05:36,639 demonstration 136 00:05:34,479 --> 00:05:38,560 openshift virtualization is basically 137 00:05:36,639 --> 00:05:41,600 the commercial version of 138 00:05:38,560 --> 00:05:44,240 uh cubot from red hat it is part of our 139 00:05:41,600 --> 00:05:47,840 openshift container platform and it also 140 00:05:44,240 --> 00:05:49,199 uses kb right and you know kvm actually 141 00:05:47,840 --> 00:05:51,440 is there from 142 00:05:49,199 --> 00:05:53,520 uh more than a decade right there are a 143 00:05:51,440 --> 00:05:56,000 lot of production use cases and 144 00:05:53,520 --> 00:05:58,800 successful customer stories around 145 00:05:56,000 --> 00:06:00,080 kvm based products and solutions right 146 00:05:58,800 --> 00:06:01,680 so kvm 147 00:06:00,080 --> 00:06:04,160 uh 148 00:06:01,680 --> 00:06:07,680 cavemu and libod are basically the 149 00:06:04,160 --> 00:06:10,000 tourings which we use within keyboard to 150 00:06:07,680 --> 00:06:11,360 create and manage virtual machines with 151 00:06:10,000 --> 00:06:13,120 keyboard 152 00:06:11,360 --> 00:06:15,039 and obviously the abstraction layer 153 00:06:13,120 --> 00:06:19,600 continues to be the same which is the 154 00:06:15,039 --> 00:06:22,400 lip boot so in this you see you have the 155 00:06:19,600 --> 00:06:24,560 uh it could be your 156 00:06:22,400 --> 00:06:27,600 data center hardware or managed services 157 00:06:24,560 --> 00:06:30,479 provided provider hardware you have 158 00:06:27,600 --> 00:06:33,280 cpu memory storage and network on top of 159 00:06:30,479 --> 00:06:34,639 that you deploy a linux operating system 160 00:06:33,280 --> 00:06:38,080 running kvm 161 00:06:34,639 --> 00:06:40,720 then abstracts uh the resources using 162 00:06:38,080 --> 00:06:41,840 liquid right then you create vms so this 163 00:06:40,720 --> 00:06:43,280 is how 164 00:06:41,840 --> 00:06:45,280 uh kvm 165 00:06:43,280 --> 00:06:48,479 architecture looks like 166 00:06:45,280 --> 00:06:50,560 now coming to kubernetes right uh how 167 00:06:48,479 --> 00:06:52,560 does virtual machines in a container 168 00:06:50,560 --> 00:06:55,039 world look like okay 169 00:06:52,560 --> 00:06:56,720 so you use the same physical hardware 170 00:06:55,039 --> 00:06:58,160 which you use in the traditional 171 00:06:56,720 --> 00:07:01,360 virtualization 172 00:06:58,160 --> 00:07:03,440 and on top of that you install a 173 00:07:01,360 --> 00:07:06,000 container host 174 00:07:03,440 --> 00:07:07,680 a classical example of a container host 175 00:07:06,000 --> 00:07:10,000 is core os 176 00:07:07,680 --> 00:07:11,919 and then use the kubernetes 177 00:07:10,000 --> 00:07:12,880 container of construction layer on top 178 00:07:11,919 --> 00:07:15,759 of it 179 00:07:12,880 --> 00:07:17,039 and interestingly along with the 180 00:07:15,759 --> 00:07:19,120 standard 181 00:07:17,039 --> 00:07:20,080 containerized applications running as a 182 00:07:19,120 --> 00:07:22,400 port 183 00:07:20,080 --> 00:07:24,000 you can also have a virtual machine 184 00:07:22,400 --> 00:07:25,919 running as a port 185 00:07:24,000 --> 00:07:28,479 okay and it integrates directly into 186 00:07:25,919 --> 00:07:29,680 your existing kubernetes clusters 187 00:07:28,479 --> 00:07:30,880 that means 188 00:07:29,680 --> 00:07:33,680 you are a 189 00:07:30,880 --> 00:07:36,000 container networking interface or cni 190 00:07:33,680 --> 00:07:38,639 container storage interface and the 191 00:07:36,000 --> 00:07:41,199 kubernetes operator framework 192 00:07:38,639 --> 00:07:43,680 using custom resource definitions all of 193 00:07:41,199 --> 00:07:45,840 those could be leveraged okay 194 00:07:43,680 --> 00:07:47,039 and everything which kubernetes does 195 00:07:45,840 --> 00:07:49,039 could be 196 00:07:47,039 --> 00:07:53,039 translated into the virtual machine 197 00:07:49,039 --> 00:07:54,960 world or the virtualization world okay 198 00:07:53,039 --> 00:07:56,960 and uh 199 00:07:54,960 --> 00:07:58,960 the good thing about using kubernetes 200 00:07:56,960 --> 00:08:01,520 and virtualization together it is 201 00:07:58,960 --> 00:08:04,240 virtualization is a native to kubernetes 202 00:08:01,520 --> 00:08:06,400 so when you say native to kubernetes 203 00:08:04,240 --> 00:08:07,840 all of these virtual machine based 204 00:08:06,400 --> 00:08:11,360 objects 205 00:08:07,840 --> 00:08:13,759 are objects within kubernetes so to say 206 00:08:11,360 --> 00:08:16,319 you have a virtual machine object 207 00:08:13,759 --> 00:08:18,720 virtual machine instance virtual machine 208 00:08:16,319 --> 00:08:19,599 instance migration data volume and all 209 00:08:18,720 --> 00:08:22,479 those 210 00:08:19,599 --> 00:08:25,120 so quickly if i come back to my console 211 00:08:22,479 --> 00:08:27,120 i hope you can see my console 212 00:08:25,120 --> 00:08:32,959 i'll just show you some of the cute ctl 213 00:08:27,120 --> 00:08:34,479 commands so if i do cube ctl get vms 214 00:08:32,959 --> 00:08:37,440 you'll see the virtual machines which 215 00:08:34,479 --> 00:08:40,800 are configured in my demo environment if 216 00:08:37,440 --> 00:08:42,959 i do virtual machine instances of vmis 217 00:08:40,800 --> 00:08:45,600 you see the virtual machines which are 218 00:08:42,959 --> 00:08:48,000 actually up and running right you see 219 00:08:45,600 --> 00:08:50,640 there is a fedora 35 virtual machine 220 00:08:48,000 --> 00:08:54,480 running in this kubernetes cluster 221 00:08:50,640 --> 00:08:56,560 using the ip address 10 9 1 21 right so 222 00:08:54,480 --> 00:08:58,560 all of these resources are native to 223 00:08:56,560 --> 00:09:00,959 kubernetes right so it is a native 224 00:08:58,560 --> 00:09:03,760 virtualization within kubernetes to 225 00:09:00,959 --> 00:09:05,680 manage virtualization 226 00:09:03,760 --> 00:09:06,560 now moving ahead 227 00:09:05,680 --> 00:09:09,920 uh 228 00:09:06,560 --> 00:09:12,399 how does that uh look like from a 229 00:09:09,920 --> 00:09:15,120 architectural perspective right 230 00:09:12,399 --> 00:09:17,120 so you have the storage network cpu 231 00:09:15,120 --> 00:09:18,800 memory and device 232 00:09:17,120 --> 00:09:20,560 uh 233 00:09:18,800 --> 00:09:22,399 required for containers as well as 234 00:09:20,560 --> 00:09:24,320 virtual machines right 235 00:09:22,399 --> 00:09:27,279 so for each virtual machine which you 236 00:09:24,320 --> 00:09:30,720 are uh configuring it will create a 237 00:09:27,279 --> 00:09:32,320 separate board okay every vm runs in a 238 00:09:30,720 --> 00:09:35,519 launcher port 239 00:09:32,320 --> 00:09:38,000 and that launcher pod would actually 240 00:09:35,519 --> 00:09:40,080 supervise 241 00:09:38,000 --> 00:09:41,680 the board integration with other 242 00:09:40,080 --> 00:09:43,360 containers which are running in your 243 00:09:41,680 --> 00:09:45,920 kubernetes 244 00:09:43,360 --> 00:09:47,680 and that launcher port can also be used 245 00:09:45,920 --> 00:09:50,080 to 246 00:09:47,680 --> 00:09:52,080 connect and check your virtual machine 247 00:09:50,080 --> 00:09:54,880 details using the traditional wash 248 00:09:52,080 --> 00:09:57,120 commands if you wish okay 249 00:09:54,880 --> 00:09:59,279 and uh you know bleepwater and gmo are 250 00:09:57,120 --> 00:10:01,519 available in every linux's whether it is 251 00:09:59,279 --> 00:10:04,640 the enterprise linux from red hat or 252 00:10:01,519 --> 00:10:06,480 fedora or central stream right and it 253 00:10:04,640 --> 00:10:09,040 has very minimal overload 254 00:10:06,480 --> 00:10:11,640 and from a security perspective we use 255 00:10:09,040 --> 00:10:13,839 ac linux security enhanced linux with 256 00:10:11,640 --> 00:10:16,959 multi-category security 257 00:10:13,839 --> 00:10:19,200 so to provide complete isolation 258 00:10:16,959 --> 00:10:22,160 between virtual machines 259 00:10:19,200 --> 00:10:24,240 other containers and 260 00:10:22,160 --> 00:10:25,360 having the same security across 261 00:10:24,240 --> 00:10:29,200 different 262 00:10:25,360 --> 00:10:31,839 tenants running on the same kubernetes 263 00:10:29,200 --> 00:10:34,399 and how do you use vms and containers 264 00:10:31,839 --> 00:10:36,240 together right so i talked about uh 265 00:10:34,399 --> 00:10:38,880 having the same control plane and 266 00:10:36,240 --> 00:10:41,120 management between via kubernetes 267 00:10:38,880 --> 00:10:41,920 so everything which you give to 268 00:10:41,120 --> 00:10:45,839 a 269 00:10:41,920 --> 00:10:48,000 standard container like a service id 270 00:10:45,839 --> 00:10:50,720 if you're familiar with openshift you 271 00:10:48,000 --> 00:10:51,760 can give external access using a route 272 00:10:50,720 --> 00:10:54,640 object 273 00:10:51,760 --> 00:10:57,040 and the kubernetes has the ingress right 274 00:10:54,640 --> 00:10:58,480 all of this could be configured to a vm 275 00:10:57,040 --> 00:11:01,360 as well 276 00:10:58,480 --> 00:11:03,519 and interestingly you can use the same 277 00:11:01,360 --> 00:11:05,760 software-defined networking plug-ins and 278 00:11:03,519 --> 00:11:08,160 use the pod network which is available 279 00:11:05,760 --> 00:11:10,399 in kubernetes 280 00:11:08,160 --> 00:11:11,360 to be given to the virtual machines 281 00:11:10,399 --> 00:11:13,839 right 282 00:11:11,360 --> 00:11:16,000 and also the all network policies which 283 00:11:13,839 --> 00:11:17,760 you configure in kubernetes can also be 284 00:11:16,000 --> 00:11:20,560 applied to the wheels because they use 285 00:11:17,760 --> 00:11:22,640 the same port network right 286 00:11:20,560 --> 00:11:23,519 so the vm to board 287 00:11:22,640 --> 00:11:25,839 and 288 00:11:23,519 --> 00:11:27,839 both to different vms and different 289 00:11:25,839 --> 00:11:29,279 name spaces all of those actually 290 00:11:27,839 --> 00:11:30,399 happens over the software-defined 291 00:11:29,279 --> 00:11:32,800 networking 292 00:11:30,399 --> 00:11:35,120 uh based on whether you 293 00:11:32,800 --> 00:11:38,240 configure external access to the vms or 294 00:11:35,120 --> 00:11:40,160 ports right so the good thing is it is 295 00:11:38,240 --> 00:11:42,160 native to kubernetes 296 00:11:40,160 --> 00:11:45,279 but at the same time you have the 297 00:11:42,160 --> 00:11:47,519 flexibility of running your traditional 298 00:11:45,279 --> 00:11:51,120 workloads which require a virtual 299 00:11:47,519 --> 00:11:54,880 machine level access maybe a database 300 00:11:51,120 --> 00:11:56,480 like mysql or oracle right or any other 301 00:11:54,880 --> 00:11:58,560 uh 302 00:11:56,480 --> 00:12:02,320 workloads which you think are not yet 303 00:11:58,560 --> 00:12:04,079 ready to be containerized okay 304 00:12:02,320 --> 00:12:06,240 so like i said it's completely managed 305 00:12:04,079 --> 00:12:08,839 with kubernetes so what i do is i will 306 00:12:06,240 --> 00:12:12,880 quickly move over to my demo 307 00:12:08,839 --> 00:12:13,920 environment i believe you can see my 308 00:12:12,880 --> 00:12:16,880 uh 309 00:12:13,920 --> 00:12:16,880 environment here 310 00:12:17,200 --> 00:12:21,360 just 311 00:12:18,320 --> 00:12:24,399 improving the font size okay so this is 312 00:12:21,360 --> 00:12:26,000 a open shift cluster which i'm using for 313 00:12:24,399 --> 00:12:27,440 this demonstration 314 00:12:26,000 --> 00:12:28,959 so if you're wondering what is open 315 00:12:27,440 --> 00:12:32,079 shift open shift is nothing but the 316 00:12:28,959 --> 00:12:34,000 commercial kubernetes enterprise version 317 00:12:32,079 --> 00:12:35,120 from red hat okay 318 00:12:34,000 --> 00:12:38,000 so 319 00:12:35,120 --> 00:12:39,920 uh when i do oc version which will give 320 00:12:38,000 --> 00:12:42,959 you the kubernetes version we are using 321 00:12:39,920 --> 00:12:43,920 we are using version 1.19 for this demo 322 00:12:42,959 --> 00:12:47,200 okay 323 00:12:43,920 --> 00:12:49,040 and openshift version is four six 324 00:12:47,200 --> 00:12:51,600 and many of you may not be familiar with 325 00:12:49,040 --> 00:12:54,399 oc so i'm moving back to the popular 326 00:12:51,600 --> 00:12:57,360 cube ctl or cube cuddle command 327 00:12:54,399 --> 00:13:00,079 so i'm going to do cube cdl get 328 00:12:57,360 --> 00:13:01,920 projects on namespace 329 00:13:00,079 --> 00:13:03,839 okay you get to see the different 330 00:13:01,920 --> 00:13:05,519 projects and namespaces 331 00:13:03,839 --> 00:13:07,760 which are part of this openshift 332 00:13:05,519 --> 00:13:09,200 environment and you would notice at the 333 00:13:07,760 --> 00:13:11,440 end of the 334 00:13:09,200 --> 00:13:13,680 listing there is a namespace or a 335 00:13:11,440 --> 00:13:14,800 project which i created 336 00:13:13,680 --> 00:13:18,240 in the name 337 00:13:14,800 --> 00:13:20,639 srijith dash keyboard so i 338 00:13:18,240 --> 00:13:24,800 moved to that project using the command 339 00:13:20,639 --> 00:13:25,920 oc project it's regis dash keyboard 340 00:13:24,800 --> 00:13:27,760 okay 341 00:13:25,920 --> 00:13:29,760 so it's very similar to you using cube 342 00:13:27,760 --> 00:13:32,079 ctl command but 343 00:13:29,760 --> 00:13:34,560 i'm using oc because oc is a native 344 00:13:32,079 --> 00:13:36,800 client for open shift so now when you do 345 00:13:34,560 --> 00:13:39,680 oc get ports 346 00:13:36,800 --> 00:13:40,959 you see there is a word launcher 347 00:13:39,680 --> 00:13:43,120 uh 348 00:13:40,959 --> 00:13:44,800 port which is up and running right and 349 00:13:43,120 --> 00:13:46,639 it is up 350 00:13:44,800 --> 00:13:50,079 it is up for more than two hours now 351 00:13:46,639 --> 00:13:53,079 because i did a dry run before i started 352 00:13:50,079 --> 00:13:55,440 my live session just to make sure that 353 00:13:53,079 --> 00:13:57,839 democracy okay 354 00:13:55,440 --> 00:13:59,760 so there is a word launcher port up and 355 00:13:57,839 --> 00:14:00,880 running here okay 356 00:13:59,760 --> 00:14:04,240 and 357 00:14:00,880 --> 00:14:06,639 when you do oc get vms 358 00:14:04,240 --> 00:14:08,160 i see a virtual machine which is 359 00:14:06,639 --> 00:14:10,320 available 360 00:14:08,160 --> 00:14:12,240 and vmi 361 00:14:10,320 --> 00:14:15,839 there is that virtual machine which is 362 00:14:12,240 --> 00:14:18,399 also running okay so how does it all uh 363 00:14:15,839 --> 00:14:21,360 work so if you go to the ui and 364 00:14:18,399 --> 00:14:24,959 connecting to the openshift ui here 365 00:14:21,360 --> 00:14:26,399 uh you can deploy virtualization 366 00:14:24,959 --> 00:14:29,360 uh 367 00:14:26,399 --> 00:14:31,680 or keyboard via the operator framework 368 00:14:29,360 --> 00:14:32,560 so if you go to the operator hub within 369 00:14:31,680 --> 00:14:35,360 your 370 00:14:32,560 --> 00:14:38,240 kubernetes cluster or in openshift 371 00:14:35,360 --> 00:14:40,320 uh you can look at the 372 00:14:38,240 --> 00:14:42,959 operators which are available 373 00:14:40,320 --> 00:14:44,800 so look for virtualization 374 00:14:42,959 --> 00:14:47,120 okay 375 00:14:44,800 --> 00:14:49,680 so it shows up as open shift 376 00:14:47,120 --> 00:14:52,399 virtualization when you use open shift 377 00:14:49,680 --> 00:14:54,399 container platforms so you see here 378 00:14:52,399 --> 00:14:57,199 openshift virtualization 379 00:14:54,399 --> 00:14:59,680 you choose that and click on install and 380 00:14:57,199 --> 00:15:02,000 it gets installed so that's how you add 381 00:14:59,680 --> 00:15:04,959 the virtualization capabilities to your 382 00:15:02,000 --> 00:15:06,800 existing kubernetes cluster 383 00:15:04,959 --> 00:15:09,519 now remember one thing 384 00:15:06,800 --> 00:15:10,959 uh you may all know for kvm to work 385 00:15:09,519 --> 00:15:12,880 right 386 00:15:10,959 --> 00:15:15,600 you need to have virtualization 387 00:15:12,880 --> 00:15:18,240 capabilities available in your 388 00:15:15,600 --> 00:15:19,519 underlying hardware okay so if you're 389 00:15:18,240 --> 00:15:21,519 using a 390 00:15:19,519 --> 00:15:23,279 intel based cpu it should have the 391 00:15:21,519 --> 00:15:25,199 appropriate flags 392 00:15:23,279 --> 00:15:28,000 for amt you have other flags so make 393 00:15:25,199 --> 00:15:30,639 sure that your 394 00:15:28,000 --> 00:15:31,680 hardware is compatible to run virtual 395 00:15:30,639 --> 00:15:34,560 machines 396 00:15:31,680 --> 00:15:36,880 so when you translate that to kubernetes 397 00:15:34,560 --> 00:15:39,120 the kubernetes worker nodes or the 398 00:15:36,880 --> 00:15:42,320 minions should have the virtualization 399 00:15:39,120 --> 00:15:45,759 capabilities to create the vms okay 400 00:15:42,320 --> 00:15:47,759 so that's when kvm can actually find the 401 00:15:45,759 --> 00:15:50,720 correct worker nodes and schedule 402 00:15:47,759 --> 00:15:53,519 virtual machines to be created okay 403 00:15:50,720 --> 00:15:55,519 so those kvm related 404 00:15:53,519 --> 00:15:58,959 technical requirements 405 00:15:55,519 --> 00:16:01,839 uh are needed for keyboard as well okay 406 00:15:58,959 --> 00:16:03,680 so once you have the operator deployed 407 00:16:01,839 --> 00:16:06,839 under the installed operators you will 408 00:16:03,680 --> 00:16:09,600 see that operator you see openshift 409 00:16:06,839 --> 00:16:12,959 virtualization and it is now deployed in 410 00:16:09,600 --> 00:16:14,959 namespace called as openshift.cnb 411 00:16:12,959 --> 00:16:16,720 cnb expands to container native 412 00:16:14,959 --> 00:16:19,199 virtualization 413 00:16:16,720 --> 00:16:22,000 and that's how i deployed openshift 414 00:16:19,199 --> 00:16:24,320 virtualization functionality within my 415 00:16:22,000 --> 00:16:26,480 openshift cluster 416 00:16:24,320 --> 00:16:28,959 once you have that done 417 00:16:26,480 --> 00:16:31,120 you have the virtualization option 418 00:16:28,959 --> 00:16:32,320 available under the workloads 419 00:16:31,120 --> 00:16:34,240 okay 420 00:16:32,320 --> 00:16:36,880 you see virtualization and you see an 421 00:16:34,240 --> 00:16:39,440 option to create virtual machine 422 00:16:36,880 --> 00:16:41,759 and it is very similar to uh how you 423 00:16:39,440 --> 00:16:44,160 create a virtual machine in your 424 00:16:41,759 --> 00:16:45,360 standard virtual environments whether 425 00:16:44,160 --> 00:16:47,360 you're using 426 00:16:45,360 --> 00:16:49,759 uh lib world or the command line 427 00:16:47,360 --> 00:16:51,600 interface it follows the same pattern 428 00:16:49,759 --> 00:16:52,880 right so if you click on create virtual 429 00:16:51,600 --> 00:16:54,880 machine 430 00:16:52,880 --> 00:16:57,360 you have the option of importing your 431 00:16:54,880 --> 00:16:59,680 virtual machine definition or 432 00:16:57,360 --> 00:17:02,000 create a new virtual machine using the 433 00:16:59,680 --> 00:17:05,199 gui or the yammer 434 00:17:02,000 --> 00:17:07,360 so i'm going with the wizard okay 435 00:17:05,199 --> 00:17:08,799 uh i hope you can see my screen good 436 00:17:07,360 --> 00:17:10,880 enough 437 00:17:08,799 --> 00:17:13,439 uh you need to give the general details 438 00:17:10,880 --> 00:17:14,880 like name of the vm operating system and 439 00:17:13,439 --> 00:17:17,520 all those stuff 440 00:17:14,880 --> 00:17:19,760 so uh give the name 441 00:17:17,520 --> 00:17:22,240 indeed fedora 442 00:17:19,760 --> 00:17:24,079 then operating system you need to choose 443 00:17:22,240 --> 00:17:26,559 there are some operating systems which 444 00:17:24,079 --> 00:17:28,720 are pre-listed based on the operating 445 00:17:26,559 --> 00:17:32,559 system you choose it will use the 446 00:17:28,720 --> 00:17:34,640 appropriate para virtualized devices 447 00:17:32,559 --> 00:17:37,039 boot source you obviously need to 448 00:17:34,640 --> 00:17:38,960 provide the boot source for your road 449 00:17:37,039 --> 00:17:41,039 disk of the vm right so there are a 450 00:17:38,960 --> 00:17:44,400 couple of options which are available if 451 00:17:41,039 --> 00:17:46,400 you have a persistent volume claim 452 00:17:44,400 --> 00:17:48,720 which is acting as a disc for your 453 00:17:46,400 --> 00:17:50,720 virtual machine you can choose that or 454 00:17:48,720 --> 00:17:52,400 if you want to download a virtual 455 00:17:50,720 --> 00:17:55,360 machine image from your local 456 00:17:52,400 --> 00:17:58,000 environment or from public uh place you 457 00:17:55,360 --> 00:17:59,440 can click on url and give 458 00:17:58,000 --> 00:18:01,679 that you are 459 00:17:59,440 --> 00:18:05,440 so as part of the demonstration i'm 460 00:18:01,679 --> 00:18:08,000 using a fedora cloud image so you see 461 00:18:05,440 --> 00:18:11,919 fedora has cloud-based images 462 00:18:08,000 --> 00:18:14,400 so you can download the cucu image for 463 00:18:11,919 --> 00:18:17,919 fedora from here 464 00:18:14,400 --> 00:18:21,919 copy this and then use that url 465 00:18:17,919 --> 00:18:23,520 to use as a disk image okay over here so 466 00:18:21,919 --> 00:18:26,720 you give that url 467 00:18:23,520 --> 00:18:29,440 you give the flavor so flavor is like 468 00:18:26,720 --> 00:18:31,919 your virtual machine instance 469 00:18:29,440 --> 00:18:33,440 configuration like how much memory cpu 470 00:18:31,919 --> 00:18:35,520 disk etc 471 00:18:33,440 --> 00:18:37,520 and there is some workload profile which 472 00:18:35,520 --> 00:18:40,320 you can use basis which 473 00:18:37,520 --> 00:18:43,039 uh kvm will adjust some of the tuned d 474 00:18:40,320 --> 00:18:44,720 profiles under the hood okay 475 00:18:43,039 --> 00:18:47,039 so once you have that 476 00:18:44,720 --> 00:18:50,799 you go to the next okay just need to 477 00:18:47,039 --> 00:18:50,799 give some urls here so 478 00:18:50,880 --> 00:18:53,919 let me paste it 479 00:18:55,600 --> 00:18:59,760 so i just uh 480 00:18:57,200 --> 00:19:02,160 think i added 481 00:18:59,760 --> 00:19:04,559 a different urls if i keep the correct 482 00:19:02,160 --> 00:19:07,039 url here 483 00:19:04,559 --> 00:19:07,039 copy 484 00:19:07,360 --> 00:19:12,640 yeah because uh keyboard requires 485 00:19:10,720 --> 00:19:13,760 special hardware to 486 00:19:12,640 --> 00:19:17,679 run 487 00:19:13,760 --> 00:19:21,520 uh virtual machines right i'm using a 488 00:19:17,679 --> 00:19:21,520 machine which is available within my 489 00:19:21,760 --> 00:19:27,520 corporate network so that's why it is 490 00:19:24,480 --> 00:19:30,480 inside a console 491 00:19:27,520 --> 00:19:32,960 yeah so i choose a flavor 492 00:19:30,480 --> 00:19:34,880 just to satisfy this yeah 493 00:19:32,960 --> 00:19:36,720 tiny then 494 00:19:34,880 --> 00:19:40,160 choose a workload profile whether it is 495 00:19:36,720 --> 00:19:41,840 desktop or server hit next 496 00:19:40,160 --> 00:19:45,360 then in the next options you give the 497 00:19:41,840 --> 00:19:47,679 network interface so whether it is a 498 00:19:45,360 --> 00:19:50,080 port network or whether you need to have 499 00:19:47,679 --> 00:19:52,400 something called as multus so if you 500 00:19:50,080 --> 00:19:53,679 heard about multis if you have multiple 501 00:19:52,400 --> 00:19:55,440 interfaces 502 00:19:53,679 --> 00:19:58,160 available in your workflow nodes you can 503 00:19:55,440 --> 00:20:00,000 actually create bridges and then have 504 00:19:58,160 --> 00:20:01,679 direct connectivity given to the virtual 505 00:20:00,000 --> 00:20:03,520 machines if you wish 506 00:20:01,679 --> 00:20:05,520 so i'm going ahead with the standard 507 00:20:03,520 --> 00:20:06,720 port networking here 508 00:20:05,520 --> 00:20:08,880 and then 509 00:20:06,720 --> 00:20:12,240 storage you choose 510 00:20:08,880 --> 00:20:14,559 so we have a root disk of 15 gb 511 00:20:12,240 --> 00:20:16,320 so if you want to edit you can do that 512 00:20:14,559 --> 00:20:18,320 and on the advanced tab you have the 513 00:20:16,320 --> 00:20:20,320 option of giving cloud in it 514 00:20:18,320 --> 00:20:22,320 parameters like whether you need to give 515 00:20:20,320 --> 00:20:23,039 a sh key pair 516 00:20:22,320 --> 00:20:24,480 to 517 00:20:23,039 --> 00:20:28,080 do 518 00:20:24,480 --> 00:20:30,080 access via ssh over to the vms 519 00:20:28,080 --> 00:20:32,320 and then 520 00:20:30,080 --> 00:20:35,440 finally you review and 521 00:20:32,320 --> 00:20:37,280 deploy the vms okay so i already have 522 00:20:35,440 --> 00:20:40,000 the vm deployed 523 00:20:37,280 --> 00:20:41,360 i didn't take a chance to do it live 524 00:20:40,000 --> 00:20:43,360 because 525 00:20:41,360 --> 00:20:45,679 uh 526 00:20:43,360 --> 00:20:48,400 it probably could take 527 00:20:45,679 --> 00:20:51,440 more than 10 minutes right so what i did 528 00:20:48,400 --> 00:20:53,840 was i already had the virtual machines 529 00:20:51,440 --> 00:20:55,440 deployed like two hours ago 530 00:20:53,840 --> 00:20:58,000 so that's the virtual machine which you 531 00:20:55,440 --> 00:20:58,960 see here fedora 35 532 00:20:58,000 --> 00:21:01,440 so 533 00:20:58,960 --> 00:21:03,280 if you go to that virtual machine you 534 00:21:01,440 --> 00:21:05,120 see all the details pertaining to the 535 00:21:03,280 --> 00:21:08,559 virtual machine like 536 00:21:05,120 --> 00:21:11,039 the console the network interfaces disks 537 00:21:08,559 --> 00:21:12,799 everything so if i hit the console 538 00:21:11,039 --> 00:21:14,960 you should be able to connect to the 539 00:21:12,799 --> 00:21:18,000 console if you want to open it in a new 540 00:21:14,960 --> 00:21:19,840 window you can do that as well okay 541 00:21:18,000 --> 00:21:22,240 so you have the native way to connect 542 00:21:19,840 --> 00:21:25,039 the console uh using the different 543 00:21:22,240 --> 00:21:27,600 console options i'm using vnc here but 544 00:21:25,039 --> 00:21:29,280 it also supports spies and 545 00:21:27,600 --> 00:21:30,640 rtp 546 00:21:29,280 --> 00:21:31,600 okay 547 00:21:30,640 --> 00:21:35,360 now 548 00:21:31,600 --> 00:21:37,200 uh what i did was i actually added a 549 00:21:35,360 --> 00:21:38,880 service definition to this virtual 550 00:21:37,200 --> 00:21:40,640 machine 551 00:21:38,880 --> 00:21:42,880 so i believe most of you are familiar 552 00:21:40,640 --> 00:21:45,840 with kubernetes services 553 00:21:42,880 --> 00:21:47,600 so what i did was i created a service in 554 00:21:45,840 --> 00:21:50,159 my project 555 00:21:47,600 --> 00:21:51,280 to be associated to this new virtual 556 00:21:50,159 --> 00:21:53,200 machine 557 00:21:51,280 --> 00:21:56,640 so you see here there is a service in 558 00:21:53,200 --> 00:21:57,520 the name fedora 35 service 559 00:21:56,640 --> 00:21:59,440 and 560 00:21:57,520 --> 00:22:01,280 if you look at the yaml definition of 561 00:21:59,440 --> 00:22:02,960 that service 562 00:22:01,280 --> 00:22:04,720 this is how it is 563 00:22:02,960 --> 00:22:06,640 i'm using uh 564 00:22:04,720 --> 00:22:08,480 the 565 00:22:06,640 --> 00:22:11,760 uh not port 566 00:22:08,480 --> 00:22:14,159 uh notepod is nothing but you expose a 567 00:22:11,760 --> 00:22:15,840 port on your worker nodes 568 00:22:14,159 --> 00:22:17,360 so that you can connect to that node 569 00:22:15,840 --> 00:22:19,679 port and get 570 00:22:17,360 --> 00:22:22,799 translated into the 571 00:22:19,679 --> 00:22:26,320 vm port or the port port right so 572 00:22:22,799 --> 00:22:28,559 i'm using notepod based service here and 573 00:22:26,320 --> 00:22:31,039 associated that to the 574 00:22:28,559 --> 00:22:32,919 virtual machine which is up and running 575 00:22:31,039 --> 00:22:36,159 so the not port here is 576 00:22:32,919 --> 00:22:37,679 31220 so if i need to connect to my 577 00:22:36,159 --> 00:22:40,880 virtual machine 578 00:22:37,679 --> 00:22:42,159 i can basically do an so search 579 00:22:40,880 --> 00:22:42,960 so 580 00:22:42,159 --> 00:22:45,280 uh 581 00:22:42,960 --> 00:22:47,280 i use a fedora username which is a 582 00:22:45,280 --> 00:22:48,720 default username for the fedora cloud 583 00:22:47,280 --> 00:22:50,480 based image 584 00:22:48,720 --> 00:22:52,880 and connecting to the port three one 585 00:22:50,480 --> 00:22:55,600 double to zero okay and 190 586 00:22:52,880 --> 00:22:58,080 192.168.50.12 587 00:22:55,600 --> 00:23:02,000 is nothing but one of my worker nodes in 588 00:22:58,080 --> 00:23:04,720 kubernetes so if i do cube cpl 589 00:23:02,000 --> 00:23:04,720 get nodes 590 00:23:05,280 --> 00:23:09,120 you see i 591 00:23:06,840 --> 00:23:12,640 have three nodes 592 00:23:09,120 --> 00:23:13,919 acting as both master and worker okay 593 00:23:12,640 --> 00:23:15,360 so if i do 594 00:23:13,919 --> 00:23:17,760 dash of white 595 00:23:15,360 --> 00:23:20,480 you get to see the ip address here 192 596 00:23:17,760 --> 00:23:23,600 168 50.10 597 00:23:20,480 --> 00:23:25,520 11 and 12. so if i connect to 598 00:23:23,600 --> 00:23:27,679 one of these worker nodes whether it is 599 00:23:25,520 --> 00:23:31,280 10 11 or 12 600 00:23:27,679 --> 00:23:32,799 uh to the port 31220 i will land 601 00:23:31,280 --> 00:23:34,880 directly into the 602 00:23:32,799 --> 00:23:37,280 virtual machine so this is my fedora 603 00:23:34,880 --> 00:23:40,159 virtual machine so if you do fedora 604 00:23:37,280 --> 00:23:41,520 release it's fedora 35 and latest one 605 00:23:40,159 --> 00:23:43,760 uptime 606 00:23:41,520 --> 00:23:47,600 up for more than two hours 607 00:23:43,760 --> 00:23:51,279 uh so i've give 4gb ram and 608 00:23:47,600 --> 00:23:53,679 one cpu here okay yeah 609 00:23:51,279 --> 00:23:54,960 so this is a virtual machine which is up 610 00:23:53,679 --> 00:23:56,799 and running 611 00:23:54,960 --> 00:23:59,679 now other thing which i wanted to show 612 00:23:56,799 --> 00:24:03,039 is if i do oc get ports you may remember 613 00:23:59,679 --> 00:24:05,760 i had a word launcher port right 614 00:24:03,039 --> 00:24:07,600 so if i need to connect to that port 615 00:24:05,760 --> 00:24:09,279 i'm going to connect to the water 616 00:24:07,600 --> 00:24:12,000 launcher port 617 00:24:09,279 --> 00:24:14,559 and i'm going to 618 00:24:12,000 --> 00:24:16,480 run it terminal 619 00:24:14,559 --> 00:24:19,760 and now when i do 620 00:24:16,480 --> 00:24:21,919 push list 621 00:24:19,760 --> 00:24:24,320 see here so this is a virtual machine 622 00:24:21,919 --> 00:24:26,159 which is actually running right so 623 00:24:24,320 --> 00:24:27,600 remember what launcher port would 624 00:24:26,159 --> 00:24:29,840 actually make sure that the virtual 625 00:24:27,600 --> 00:24:33,039 machines are scheduled properly 626 00:24:29,840 --> 00:24:35,120 uh it downloads the image from the url 627 00:24:33,039 --> 00:24:36,880 and creates a persistent volume flame 628 00:24:35,120 --> 00:24:39,520 and persistent volumes 629 00:24:36,880 --> 00:24:41,279 as part of the broaching okay 630 00:24:39,520 --> 00:24:42,559 so the virtual machine disks are 631 00:24:41,279 --> 00:24:45,120 actually 632 00:24:42,559 --> 00:24:48,720 running as persistent volumes and it is 633 00:24:45,120 --> 00:24:50,640 requested via persistent volume flames 634 00:24:48,720 --> 00:24:53,039 yeah so that was a quick demonstration 635 00:24:50,640 --> 00:24:54,960 of uh how the virtual machine looked 636 00:24:53,039 --> 00:24:57,360 like in a cube board or openshift 637 00:24:54,960 --> 00:24:59,600 virtualization you can also use commands 638 00:24:57,360 --> 00:25:00,880 like word ctl 639 00:24:59,600 --> 00:25:02,799 to basically 640 00:25:00,880 --> 00:25:06,240 simplify the virtual machine creation 641 00:25:02,799 --> 00:25:07,039 rather than using the gui okay 642 00:25:06,240 --> 00:25:10,030 so 643 00:25:07,039 --> 00:25:11,520 i just wanted to close out by saying 644 00:25:10,030 --> 00:25:13,679 [Music] 645 00:25:11,520 --> 00:25:15,039 how does it 646 00:25:13,679 --> 00:25:17,760 aligned with 647 00:25:15,039 --> 00:25:20,320 uh the standard kubernetes environment 648 00:25:17,760 --> 00:25:22,799 right so the virtual machines inherit 649 00:25:20,320 --> 00:25:25,120 many functionalities from kubernetes 650 00:25:22,799 --> 00:25:27,440 like cube scheduler 651 00:25:25,120 --> 00:25:30,320 the high availability right if one of 652 00:25:27,440 --> 00:25:32,720 the virtual machines 653 00:25:30,320 --> 00:25:35,440 is not running properly 654 00:25:32,720 --> 00:25:39,279 the cubelet would actually let 655 00:25:35,440 --> 00:25:40,720 uh kubernetes aba know about that and it 656 00:25:39,279 --> 00:25:43,279 can be 657 00:25:40,720 --> 00:25:45,679 started fresh in a new uh 658 00:25:43,279 --> 00:25:47,760 ma new worker node right so all the 659 00:25:45,679 --> 00:25:50,159 benefits of cubelet and kubernetes you 660 00:25:47,760 --> 00:25:52,240 are actually going to use within 661 00:25:50,159 --> 00:25:55,279 uh keyboard right 662 00:25:52,240 --> 00:25:57,520 uh so containerized vms have the same 663 00:25:55,279 --> 00:25:59,440 characteristics as known containers like 664 00:25:57,520 --> 00:26:01,919 you need to give the cpu memory 665 00:25:59,440 --> 00:26:04,080 everything right you can also run linux 666 00:26:01,919 --> 00:26:04,880 and windows guest operating systems 667 00:26:04,080 --> 00:26:07,120 right 668 00:26:04,880 --> 00:26:09,360 and like i said storage is provided by 669 00:26:07,120 --> 00:26:12,159 both system volumes and the virtual 670 00:26:09,360 --> 00:26:14,559 machine images are uh 671 00:26:12,159 --> 00:26:17,440 provided by something called a cdi or 672 00:26:14,559 --> 00:26:20,320 containerized data input okay 673 00:26:17,440 --> 00:26:22,640 and like i said earlier it inherits 674 00:26:20,320 --> 00:26:24,559 all the port networkings 675 00:26:22,640 --> 00:26:26,240 now this is a 676 00:26:24,559 --> 00:26:27,679 single slide which gives you the 677 00:26:26,240 --> 00:26:28,640 convergence of 678 00:26:27,679 --> 00:26:30,559 both 679 00:26:28,640 --> 00:26:32,400 uh virtualization which you see with 680 00:26:30,559 --> 00:26:35,120 overt to the left 681 00:26:32,400 --> 00:26:38,559 and the traditional uh 682 00:26:35,120 --> 00:26:41,279 private cloud with openstack right so 683 00:26:38,559 --> 00:26:43,039 uh if you see cuboid sits in the middle 684 00:26:41,279 --> 00:26:45,360 right you have 685 00:26:43,039 --> 00:26:47,600 the cubelet uh 686 00:26:45,360 --> 00:26:49,840 being used as the agent in kubernetes 687 00:26:47,600 --> 00:26:52,960 running on the worker nodes but if you 688 00:26:49,840 --> 00:26:55,360 look at overt or openstack for that 689 00:26:52,960 --> 00:26:56,400 matter it will be the vdsm and the nova 690 00:26:55,360 --> 00:27:00,159 compute 691 00:26:56,400 --> 00:27:02,000 and the common element in all of this uh 692 00:27:00,159 --> 00:27:03,520 three different architecture is the 693 00:27:02,000 --> 00:27:05,679 libert 694 00:27:03,520 --> 00:27:07,919 camus and kvm right 695 00:27:05,679 --> 00:27:09,919 so if you can actually containerize that 696 00:27:07,919 --> 00:27:11,600 component right it's nothing but 697 00:27:09,919 --> 00:27:13,360 keyboard right 698 00:27:11,600 --> 00:27:15,039 so that's basically the benefit of 699 00:27:13,360 --> 00:27:18,000 having uh 700 00:27:15,039 --> 00:27:20,240 a single converged control plane or 701 00:27:18,000 --> 00:27:21,360 management interface 702 00:27:20,240 --> 00:27:22,159 to run 703 00:27:21,360 --> 00:27:24,159 the 704 00:27:22,159 --> 00:27:27,679 standard 705 00:27:24,159 --> 00:27:29,600 containerized workloads as well as your 706 00:27:27,679 --> 00:27:32,720 virtualization workloads whether it is 707 00:27:29,600 --> 00:27:34,799 database or any other 708 00:27:32,720 --> 00:27:37,440 solutions which you think requires more 709 00:27:34,799 --> 00:27:38,880 time to contain rise right 710 00:27:37,440 --> 00:27:41,840 a 711 00:27:38,880 --> 00:27:45,600 slightly more uh architectural overview 712 00:27:41,840 --> 00:27:47,200 you see the cubelet running on nodes 713 00:27:45,600 --> 00:27:50,000 you have the containers running as 714 00:27:47,200 --> 00:27:53,360 sports you have the virtual machine also 715 00:27:50,000 --> 00:27:55,840 created within a port using the 716 00:27:53,360 --> 00:27:58,480 vote launcher right so you have your 717 00:27:55,840 --> 00:28:00,559 master nodes running the api server and 718 00:27:58,480 --> 00:28:03,200 all those okay 719 00:28:00,559 --> 00:28:05,600 so how does the virtualization 720 00:28:03,200 --> 00:28:09,120 capabilities get added to the kubernetes 721 00:28:05,600 --> 00:28:09,120 api it's via the 722 00:28:09,600 --> 00:28:13,919 custom resource definitions or the 723 00:28:11,360 --> 00:28:17,039 operator framework okay so you extend 724 00:28:13,919 --> 00:28:19,039 the kubernetes api to have the virtual 725 00:28:17,039 --> 00:28:20,480 machines virtual machine instances and 726 00:28:19,039 --> 00:28:22,320 all those 727 00:28:20,480 --> 00:28:24,559 resources which 728 00:28:22,320 --> 00:28:25,919 make up the virtual machine management 729 00:28:24,559 --> 00:28:28,480 okay 730 00:28:25,919 --> 00:28:31,039 so a single api to manage 731 00:28:28,480 --> 00:28:33,279 all your workloads okay 732 00:28:31,039 --> 00:28:36,399 so that's where i stop uh 733 00:28:33,279 --> 00:28:37,840 that's my presentation i believe 734 00:28:36,399 --> 00:28:39,679 we have 735 00:28:37,840 --> 00:28:42,159 two minutes yep 736 00:28:39,679 --> 00:28:43,520 yep um we have a couple of little 737 00:28:42,159 --> 00:28:45,600 questions 738 00:28:43,520 --> 00:28:46,640 for free okay uh i'll just go straight 739 00:28:45,600 --> 00:28:48,799 into it 740 00:28:46,640 --> 00:28:51,919 first question is can you 741 00:28:48,799 --> 00:28:53,279 do things with the vms like deployments 742 00:28:51,919 --> 00:28:55,600 like 743 00:28:53,279 --> 00:28:58,640 deploy replicas do rolling updates 744 00:28:55,600 --> 00:29:02,159 things like that 745 00:28:58,640 --> 00:29:05,120 ideally yes uh when i say ideally yes 746 00:29:02,159 --> 00:29:08,640 because it is managed within kubernetes 747 00:29:05,120 --> 00:29:10,960 right you probably could extend uh 748 00:29:08,640 --> 00:29:12,799 virtual machines similar to a port you 749 00:29:10,960 --> 00:29:15,360 can use deployments or deployment 750 00:29:12,799 --> 00:29:18,080 configs for that matter but again it's 751 00:29:15,360 --> 00:29:21,120 easier said than done right rotting 752 00:29:18,080 --> 00:29:23,120 deployments when you say you need to 753 00:29:21,120 --> 00:29:26,399 you would have multiple replicas you 754 00:29:23,120 --> 00:29:27,600 made for the virtual machines to be 755 00:29:26,399 --> 00:29:30,799 scaled out 756 00:29:27,600 --> 00:29:32,240 created wait for the os to come right 757 00:29:30,799 --> 00:29:34,240 remember all the 758 00:29:32,240 --> 00:29:36,480 uh time lapse which you see in the 759 00:29:34,240 --> 00:29:38,840 traditional virtual environment still 760 00:29:36,480 --> 00:29:41,840 exist in 761 00:29:38,840 --> 00:29:43,840 kubernetes managed plane when you 762 00:29:41,840 --> 00:29:44,559 think about vms right 763 00:29:43,840 --> 00:29:47,200 but 764 00:29:44,559 --> 00:29:49,679 your question yes you can do that yeah 765 00:29:47,200 --> 00:29:52,080 so that's one of the benefits 766 00:29:49,679 --> 00:29:54,640 okay uh next question 767 00:29:52,080 --> 00:29:58,240 um our hypervisors other than kvm 768 00:29:54,640 --> 00:30:00,399 supported um i.e firecracker 769 00:29:58,240 --> 00:30:01,440 and no it's all again 770 00:30:00,399 --> 00:30:04,080 okay 771 00:30:01,440 --> 00:30:05,679 and the last question was can you have 772 00:30:04,080 --> 00:30:08,720 multiple 773 00:30:05,679 --> 00:30:11,039 vms behind the service 774 00:30:08,720 --> 00:30:11,039 you say 775 00:30:11,840 --> 00:30:18,080 i'm not sure whether i understood it but 776 00:30:14,399 --> 00:30:20,240 i'm thinking uh multiple keyword vms 777 00:30:18,080 --> 00:30:23,480 behind the server if you are thinking 778 00:30:20,240 --> 00:30:23,480 about service 779 00:30:24,080 --> 00:30:26,960 like kubernetes 780 00:30:28,399 --> 00:30:31,600 uh you're meant to say multiple 781 00:30:30,000 --> 00:30:35,520 kubernetes 782 00:30:31,600 --> 00:30:37,200 control planes i would say no but 783 00:30:35,520 --> 00:30:39,200 yeah that i think that requires more 784 00:30:37,200 --> 00:30:41,440 clarity 785 00:30:39,200 --> 00:30:41,440 okay 786 00:30:41,840 --> 00:30:44,480 okay i think we're out of time we'll 787 00:30:43,440 --> 00:30:47,520 have a chat 788 00:30:44,480 --> 00:30:50,240 we can um go over that one in the chat 789 00:30:47,520 --> 00:30:52,320 and they can clarify the question okay 790 00:30:50,240 --> 00:30:53,679 all right thank you very much very much 791 00:30:52,320 --> 00:30:56,840 richard thank you 792 00:30:53,679 --> 00:30:56,840 thank you