{"id":10052,"date":"2020-08-26T08:39:59","date_gmt":"2020-08-26T13:39:59","guid":{"rendered":"https:\/\/sterling.com\/?p=10052"},"modified":"2020-08-26T08:39:59","modified_gmt":"2020-08-26T13:39:59","slug":"deployment-using-tanzu-kubernetes-grid","status":"publish","type":"post","link":"https:\/\/sterling.com\/stargazer\/?p=10052","title":{"rendered":"Automated Kubernetes Deployment using Tanzu Kubernetes Grid"},"content":{"rendered":"<p><span style=\"font-size: 14pt;\">written by Billy Downing<\/span><\/p>\n<p><strong><span style=\"font-size: 14pt;\">What is Tanzu Kubernetes Grid: Architecture?<\/span><\/strong><\/p>\n<p>Tanzu Kubernetes Grid (TKG) is an implementation of several open-source projects to provide automated provisioning and lifecycle management of Kubernetes clusters.<\/p>\n<p><span data-preserver-spaces=\"true\">These include:<\/span><\/p>\n<ul>\n<li><span data-preserver-spaces=\"true\">ClusterAPI<\/span><\/li>\n<li><span data-preserver-spaces=\"true\">Calico CNI (as well as exploring Antrea at the time of writing)<\/span><\/li>\n<li><span data-preserver-spaces=\"true\">kubeadm<\/span><\/li>\n<li><span data-preserver-spaces=\"true\">vSphere CSI<\/span><\/li>\n<li><span data-preserver-spaces=\"true\">etcd<\/span><\/li>\n<li><span data-preserver-spaces=\"true\">coreDNS<\/span><\/li>\n<li><span data-preserver-spaces=\"true\">vSphere Cloud Provider (coupled with a TKG CLI\/UI for ease of use)<\/span><\/li>\n<\/ul>\n<p>In this scenario, we are going to deploy a TKG environment to vSphere 6.7u3. TKG is deployed on top of the underlying infrastructure provider as a virtual machine, therefore, we are allowed to deploy TKG to several environments. This includes vSphere 7 with Kubernetes, vSphere 6.7, and AWS, for example. This provides consumers the ability to easily deploy and manage VMware supported, upstream conformant, Kubernetes clusters in their existing vSphere on-prem environment. NSX-T or VMware Cloud Foundation is not necessary at this point.<\/p>\n<p><img fetchpriority=\"high\" decoding=\"async\" class=\"alignnone size-medium wp-image-10053\" src=\"https:\/\/sterling.com\/stargazer\/wp-content\/uploads\/2020\/08\/figure-1-1-211x300.png\" alt=\"\" width=\"211\" height=\"300\" \/><\/p>\n<p><span style=\"font-size: 8pt;\">Figure 1: ClusterAPI Logo, source: <span style=\"font-size: 10pt;\">https:\/\/cluster-api.sigs.k8s.io\/<\/span><\/span><\/p>\n<h2><span style=\"font-size: 14pt;\">What is TKG when compared to vSphere 7 with Kubernetes?<\/span><\/h2>\n<p>A common question addressed in forums and blogs is the difference between vSphere 7 with Kubernetes and Tanzu Kubernetes Grid.<\/p>\n<p>To begin with, Tanzu is VMware\u2019s Modern Application Product Portfolio.\u00a0 Several products exist within the build-out of the \u2018Build, Run, Manage\u2019 mantra.<\/p>\n<p><strong>vSphere 7 with Kubernetes<\/strong><\/p>\n<ul>\n<li>vSphere 7 with Kubernetes is the deployment of container workloads directly on ESXi hosts, managed by Virtual Machine K8s control nodes. The architecture is built on top of the VMware Cloud Foundation (to aid in the deployment of all necessary components at the time of this writing), as shown in Figure 2. To run Linux containers and manage ESXi hosts via Kubernetes to schedule workloads VMware had to rewrite some native Linux packages to run in ESXi. The main two components are Spherelet and CRX. Installing these packages to an ESXi cluster and enabling Kubernetes in vSphere 7 creates a \u2018Supervisor Cluster\u2019 (a cluster that supports Kubernetes workloads, or Vsphere pods, and virtual machines side-by-side).<\/li>\n<li><span data-preserver-spaces=\"true\">Spherelet \u2013 This is the component that exists within the ESXi hosts to communicate with the Kubernetes control nodes, replacing the kubelet.<\/span><\/li>\n<li><span data-preserver-spaces=\"true\">CRX is the container runtime deployed in ESXi to facilitate container workloads.<\/span><\/li>\n<\/ul>\n<p><span data-preserver-spaces=\"true\">Container Runtime for ESXi (CRX) is broken down in Figure 2 and shows the three tiers that make it function. Since ESXi is not Linux, VMware created a \u2018shim\u2019 virtual machine layer to present the Linux kernel to containers without the bloat of a typical virtual machine. <\/span><\/p>\n<p>More on this can be found here:\u00a0<a href=\"https:\/\/blogs.vmware.com\/vsphere\/2020\/04\/vsphere-7-vsphere-pod-service.html\"><span data-preserver-spaces=\"true\">https:\/\/blogs.vmware.com\/vsphere\/2020\/04\/vsphere-7-vsphere-pod-service.html<\/span><\/a><span data-preserver-spaces=\"true\">\u00a0<\/span><\/p>\n<p><span style=\"font-size: 14pt;\"><strong>Tanzu Kubernetes Grid<\/strong><\/span><\/p>\n<p>As mentioned above, TKG is a collection of open-source projects bundled together by VMware in a single deployment. VMware also verifies the compatibility of versions, as well as some security audits which relieves the user from having to perform the same functions on their own. This guarantees the cluster deployed is built on best practices and supported by VMware. In this scenario, we highlight the usage of ClusterAPI for comparison. ClusterAPI is a project designed to use Kubernetes to manage Kubernetes.<\/p>\n<p>For example, several custom resource definitions are created within a ClusterAPI enabled Kubernetes cluster to extend the API. For example, the creation of \u2018Machine\u2019 objects. Much like how Kubernetes life cycles and manages pods, deployments, and services, ClusterAPI enables a cluster to manage other Kubernetes Clusters as objects made up of \u2018Machines.\u2019 This means that to deploy a TKG guest (or workload) cluster you must first deploy a TKG management cluster.<\/p>\n<p>This is where some confusion sets in. Within a vSphere 7 with Kubernetes deployment, the Supervisor Cluster created during install, acts as the management cluster for deploying and managing TKG guest clusters. Therefore, after enabling vSphere 7 with Kubernetes you can immediately be creating and managing TKG guest clusters across namespaces. Conversely, when deploying TKG clusters to vSphere 6.7, the original Supervisor cluster does not exist so there needs to be an automated way to deploy the original management cluster from which to spawn guest clusters (hence the \u2018turtles down\u2019 logo for ClusterAPI). The process of how to solve this problem is explained in the deployment process section below.<\/p>\n<p><strong>Summarize the Differences: It lies in where the container runtime exists<\/strong><\/p>\n<ul>\n<li>vSphere 7 with Kubernetes deploys the container runtime directly on the bare metal ESXi hosts whereas the TKG cluster deploys the container runtime within the virtual worker nodes created.<\/li>\n<li>vSphere 7 with Kubernetes is not completely K8s upstream conformant, therefore limitations exist in deploying extensions, add-ons, and so forth, whereas TKG deploys completely upstream conformant Kubernetes clusters that you have full control over.<\/li>\n<\/ul>\n<p><strong>Use-Case: When to use TKG and when to use vSphere 7 with Kubernetes<\/strong><\/p>\n<p><strong>vSphere 7 with Kubernetes:<\/strong><\/p>\n<ul>\n<li>Use when essential features of container management are required. (Kubernetes Native objects)<\/li>\n<li>Use when running containers on bare metal is a requirement<\/li>\n<\/ul>\n<p><strong>Tanzu Kubernetes Grid<\/strong><\/p>\n<ul>\n<li>Use when full control over the control nodes are required<\/li>\n<li>Use when fully upstream conformant Kubernetes is required<\/li>\n<li>Use when cluster customization is needed (extensions, add-ons, etc.)<\/li>\n<\/ul>\n<p>Reminder: These tools are not mutually exclusive. TKG can run on top of vSphere 7 with Kubernetes to provide the best of both worlds, and each solution can run independently<\/p>\n<p><img decoding=\"async\" class=\"alignleft size-large wp-image-10057\" src=\"https:\/\/sterling.com\/stargazer\/wp-content\/uploads\/2020\/08\/figure-2-1.png\" alt=\"\" width=\"640\" height=\"466\" \/><\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p><span style=\"font-size: 10pt;\">Figure 2 &#8211; Overview Architecture of vSphere 7 with Kubernetes versus vSphere 6.7 with TKG Clusters<\/span><\/p>\n<p>&nbsp;<\/p>\n<h2><span style=\"font-size: 14pt;\">Deployment Process:<\/span><\/h2>\n<p>In this scenario, we are going to deploy TKG onto an existing vSphere 6.7u3 environment. This, for a lot of users, will provide the fastest path to implementation of Tanzu Kubernetes Grid managed clusters. In this way, we can automate the deployment of Kubernetes clusters without needing vSphere 7 with Kubernetes, NSX-T, or anything else. This will deploy self-containing, upstream conformant Kubernetes clusters that we can manipulate however needed.<\/p>\n<p><strong>First Step:<\/strong><\/p>\n<ol>\n<li>Gather Tools needed<\/li>\n<\/ol>\n<p style=\"padding-left: 120px;\">TKG CLI Binary<\/p>\n<p><img decoding=\"async\" class=\"wp-image-10060 size-large aligncenter\" src=\"https:\/\/sterling.com\/stargazer\/wp-content\/uploads\/2020\/08\/figure-3-1.png\" alt=\"\" width=\"567\" height=\"76\" \/><\/p>\n<p style=\"text-align: center;\"><span style=\"font-size: 10pt;\">Figure 3 &#8211; Example TKG Version output<\/span><\/p>\n<ul>\n<li>Kubectl Binary<\/li>\n<li><span data-preserver-spaces=\"true\">Docker Desktop<\/span><\/li>\n<li><span data-preserver-spaces=\"true\">OVAs\/Templates for TKG worker\/control nodes and load balancer<\/span><\/li>\n<\/ul>\n<p style=\"text-align: center;\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-large wp-image-10066\" src=\"https:\/\/sterling.com\/stargazer\/wp-content\/uploads\/2020\/08\/figure-4.png\" alt=\"\" width=\"484\" height=\"151\" \/><span style=\"font-size: 10pt;\">Figure 4 &#8211; Example Templates needed to deploy TKG clusters (VMware Provided)<\/span><\/p>\n<p><strong>Second Step:<\/strong><\/p>\n<ol>\n<li>Deploy Management Cluster<\/li>\n<\/ol>\n<p>Using the TKG CLI to open a web app workspace used to gather inputs and kick-off deployment, there are options to deploy to AWS or vSphere.<\/p>\n<p>Figures 5 through 7 are examples of the sort of inputs required when deploying a Tanzu Kubernetes Grid management cluster to vSphere 6.7<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-10069 alignleft\" src=\"https:\/\/sterling.com\/stargazer\/wp-content\/uploads\/2020\/08\/figure-5-1024x257.png\" alt=\"\" width=\"1040\" height=\"260\" \/><\/p>\n<p><span style=\"font-size: 10pt;\">Figure 5 &#8211; WebUI Generated from the TKG CLI &#8216;tkg init&#8217; command<\/span><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-10071 alignleft\" src=\"https:\/\/sterling.com\/stargazer\/wp-content\/uploads\/2020\/08\/figure-6-1024x446.png\" alt=\"\" width=\"823\" height=\"358\" \/><\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p><span style=\"font-size: 10pt;\">Figure 6 &#8211; Example Input for TKG deployment, selecting the control plane settings, and identifying the Templates uploaded to our environment as part of the prerequisites.<\/span><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignleft wp-image-10073\" src=\"https:\/\/sterling.com\/stargazer\/wp-content\/uploads\/2020\/08\/figure-7-1024x388.png\" alt=\"\" width=\"803\" height=\"305\" \/><\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p><span style=\"font-size: 10pt;\">Figure 7 &#8211; Example input for TKG deployment, selecting the network attachments (vDS Port Group in this example)<\/span><\/p>\n<p>Once the inputs are provided, the process is started.<\/p>\n<p>The trick with ClusterAPI, and the TKG method of deployment, is how to create the initial Kubernetes cluster to then manage and deploy the subsequent clusters.\u00a0 It is a classic chicken and the egg scenario. If we are managing Kubernetes with Kubernetes and its turtles down, where does the original cluster come from?<\/p>\n<p>Here is where Docker Desktop, or the ability to deploy containers locally on your workstation, is important. The initial step for deploying a TKG environment is to deploy a Kubernetes-in-Docker container. This will use the local workspace to spawn a KIND (Kubernetes IN Docker) environment that will be the initial kick-off point for subsequent clusters.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-10085\" src=\"https:\/\/sterling.com\/stargazer\/wp-content\/uploads\/2020\/08\/figure-8.png\" alt=\"\" width=\"971\" height=\"85\" \/><\/p>\n<p style=\"text-align: center;\"><span style=\"font-size: 10pt;\">Figure 8 &#8211; Example Docker Image pulled for KIND version 18 on the local workspace<\/span><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-10086 \" src=\"https:\/\/sterling.com\/stargazer\/wp-content\/uploads\/2020\/08\/figure-9-1024x41.png\" alt=\"\" width=\"967\" height=\"39\" \/><\/p>\n<p style=\"text-align: center;\"><span style=\"font-size: 10pt;\">Figure 9 &#8211; Example of KIND container running acting as the initial Kubernetes ClusterAPI cluster<\/span><\/p>\n<p>From a high level, the TKG process will automate the deployment of a KIND Cluster locally, which will then be used to bootstrap the management cluster in our destination vSphere 6.7 environments. Once the destination environment is stood up, the KIND cluster will transfer roles and terminate, leaving us with a freshly installed Kubernetes management cluster in our destination platform (vsphere 6.7), as shown in Figure 10.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-10087 alignnone\" src=\"https:\/\/sterling.com\/stargazer\/wp-content\/uploads\/2020\/08\/figure-10.png\" alt=\"\" width=\"616\" height=\"278\" \/><\/p>\n<p><span style=\"font-size: 10pt;\">Figure 10 &#8211; TKG, ClusterAPI, Management Cluster deployed through TKG WebUI \u2013 One control, worker, and load balancer node<\/span><\/p>\n<p>Once logged into the newly deployed cluster using kubectl, we can see the nodes deployed such as in Figure 11.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignleft wp-image-10092\" src=\"https:\/\/sterling.com\/stargazer\/wp-content\/uploads\/2020\/08\/figure-11-1024x60.png\" alt=\"\" width=\"864\" height=\"51\" \/><\/p>\n<p><span style=\"font-size: 10pt;\">Figure 11 &#8211; TKG Management Cluster Nodes<\/span><\/p>\n<p><strong>Final Step: <\/strong><\/p>\n<ol>\n<li>Deploy and verify workload clusters:<\/li>\n<\/ol>\n<p>Through the TKG Deployment process, we have successfully deployed a management cluster into our vSphere 6.7 environment which we can now use to deploy and lifecycle additional clusters to run workloads.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignleft size-large wp-image-10095\" src=\"https:\/\/sterling.com\/stargazer\/wp-content\/uploads\/2020\/08\/figure-12.png\" alt=\"\" width=\"420\" height=\"62\" \/><\/p>\n<p><span style=\"font-size: 10pt;\">Figure 12 &#8211; TKG CLI displaying a connection to our newly deployed TKG Management Cluster on vSphere 6.7<\/span><\/p>\n<p>Here, we will use the standard TKG CLI to easily create an entire cluster by sending the manifest to the TKG management K8\u2019s cluster, Figure 13, named tkg-03-workload cluster.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignleft wp-image-10098\" src=\"https:\/\/sterling.com\/stargazer\/wp-content\/uploads\/2020\/08\/figure-13-1024x157.png\" alt=\"\" width=\"873\" height=\"135\" \/><\/p>\n<p><span style=\"font-size: 10pt;\">Figure 13 &#8211; Using the TKG CLI to deploy TKG guest (workload) clusters<\/span><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignleft wp-image-10100\" src=\"https:\/\/sterling.com\/stargazer\/wp-content\/uploads\/2020\/08\/figure-13-1-1024x157.png\" alt=\"\" width=\"873\" height=\"135\" \/><\/p>\n<p><span style=\"font-size: 10pt;\"><span style=\"font-size: 10pt;\"><img loading=\"lazy\" decoding=\"async\" class=\"alignleft wp-image-10105\" src=\"https:\/\/sterling.com\/stargazer\/wp-content\/uploads\/2020\/08\/figure-14b-1024x114.png\" alt=\"\" width=\"871\" height=\"98\" \/>Figure 14 &#8211; Using Kubectl to interact with our newly deployed TKG guest (workload) cluster\u00a0<\/span><\/span><\/p>\n<h2><span style=\"font-size: 14pt;\">Results<\/span><\/h2>\n<p>At this point, we\u2019ve used Tanzu Kubernetes Grid to deploy a management Kubernetes cluster supporting all ClusterAPI custom resource definitions and control loops, in addition to using that management cluster to deploy multiple subsequent workload clusters ready for application loads, all on top of our existing vSphere 6.7u3 environment, Figure 15 and Figure 16.<\/p>\n<p><span style=\"font-size: 10pt;\"><img loading=\"lazy\" decoding=\"async\" class=\"alignleft wp-image-10111\" src=\"https:\/\/sterling.com\/stargazer\/wp-content\/uploads\/2020\/08\/figure-15-1024x197.png\" alt=\"\" width=\"877\" height=\"170\" \/><span style=\"font-size: 10pt;\">Figure 15 &#8211; Example of viewing ClusterAPI CRD objects, Cluster and Machine<\/span><\/span><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignleft wp-image-10117 size-large\" src=\"https:\/\/sterling.com\/stargazer\/wp-content\/uploads\/2020\/08\/figure-16-1024x524.png\" alt=\"\" width=\"640\" height=\"328\" \/><\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p><span style=\"font-size: 10pt;\">Figure 16 &#8211; All machines deployed in our environment without interacting directly with the vSphere client<\/span><\/p>\n<p><span style=\"font-size: 14pt;\"><strong>Summary<\/strong><\/span><\/p>\n<p>In summary, we have gone through what makes up a Tanzu Kubernetes Grid Cluster, the differences from vSphere 7 with Kubernetes, and successfully deployed a management and workload cluster to our already existing vSphere 6.7u3 environment. Overall, this affords us the ability to perform CRUD operations on Kubernetes clusters and provision them as needed without having to upend our existing environment. This is a tremendous use-case for those looking to begin migrating applications to container platforms while benefitting from the automated processes from VMware to build their Kubernetes foundation without having to upgrade vSphere.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>written by Billy Downing What is Tanzu Kubernetes Grid: Architecture? Tanzu Kubernetes Grid (TKG) is an implementation of several open-source projects to provide automated provisioning and lifecycle management of Kubernetes [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":10137,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[12,13,14,15,11],"tags":[45,23,24,25,26,53],"class_list":["post-10052","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-announcements","category-blog","category-cloud","category-data-center","category-news","tag-cloud-application","tag-kubernetes","tag-tanzu","tag-tanzulanding","tag-vmware","tag-vmware-cloud"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Automated Kubernetes Deployment using Tanzu Kubernetes Grid - Sterling<\/title>\n<meta name=\"robots\" content=\"noindex, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Automated Kubernetes Deployment using Tanzu Kubernetes Grid - Sterling\" \/>\n<meta property=\"og:description\" content=\"written by Billy Downing What is Tanzu Kubernetes Grid: Architecture? Tanzu Kubernetes Grid (TKG) is an implementation of several open-source projects to provide automated provisioning and lifecycle management of Kubernetes [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/sterling.com\/stargazer\/?p=10052\" \/>\n<meta property=\"og:site_name\" content=\"Sterling\" \/>\n<meta property=\"article:publisher\" content=\"http:\/\/facebook.com\/SterlingComp\/\" \/>\n<meta property=\"article:published_time\" content=\"2020-08-26T13:39:59+00:00\" \/>\n<meta name=\"author\" content=\"Sterling\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@sterlingcomp\" \/>\n<meta name=\"twitter:site\" content=\"@sterlingcomp\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Sterling\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"8 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/sterling.com\\\/stargazer\\\/?p=10052#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/sterling.com\\\/stargazer\\\/?p=10052\"},\"author\":{\"name\":\"Sterling\",\"@id\":\"https:\\\/\\\/sterling.com\\\/stargazer\\\/#\\\/schema\\\/person\\\/b812a18f3a1e77cd0925429d1546e49d\"},\"headline\":\"Automated Kubernetes Deployment using Tanzu Kubernetes Grid\",\"datePublished\":\"2020-08-26T13:39:59+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/sterling.com\\\/stargazer\\\/?p=10052\"},\"wordCount\":1647,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/sterling.com\\\/stargazer\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/sterling.com\\\/stargazer\\\/?p=10052#primaryimage\"},\"thumbnailUrl\":\"\",\"keywords\":[\"cloud application\",\"kubernetes\",\"tanzu\",\"tanzulanding\",\"vmware\",\"vmware cloud\"],\"articleSection\":[\"Announcements\",\"Blog\",\"Cloud\",\"Data Center\",\"News\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/sterling.com\\\/stargazer\\\/?p=10052\",\"url\":\"https:\\\/\\\/sterling.com\\\/stargazer\\\/?p=10052\",\"name\":\"Automated Kubernetes Deployment using Tanzu Kubernetes Grid - Sterling\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/sterling.com\\\/stargazer\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/sterling.com\\\/stargazer\\\/?p=10052#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/sterling.com\\\/stargazer\\\/?p=10052#primaryimage\"},\"thumbnailUrl\":\"\",\"datePublished\":\"2020-08-26T13:39:59+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/sterling.com\\\/stargazer\\\/?p=10052#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/sterling.com\\\/stargazer\\\/?p=10052\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/sterling.com\\\/stargazer\\\/?p=10052#primaryimage\",\"url\":\"\",\"contentUrl\":\"\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/sterling.com\\\/stargazer\\\/?p=10052#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/sterling.com\\\/stargazer\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Automated Kubernetes Deployment using Tanzu Kubernetes Grid\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/sterling.com\\\/stargazer\\\/#website\",\"url\":\"https:\\\/\\\/sterling.com\\\/stargazer\\\/\",\"name\":\"Sterling\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\\\/\\\/sterling.com\\\/stargazer\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/sterling.com\\\/stargazer\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/sterling.com\\\/stargazer\\\/#organization\",\"name\":\"Sterling\",\"url\":\"https:\\\/\\\/sterling.com\\\/stargazer\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/sterling.com\\\/stargazer\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/sterling.com\\\/stargazer\\\/wp-content\\\/uploads\\\/2023\\\/03\\\/Sterling-Computers-Logo-TM.png\",\"contentUrl\":\"https:\\\/\\\/sterling.com\\\/stargazer\\\/wp-content\\\/uploads\\\/2023\\\/03\\\/Sterling-Computers-Logo-TM.png\",\"width\":399,\"height\":145,\"caption\":\"Sterling\"},\"image\":{\"@id\":\"https:\\\/\\\/sterling.com\\\/stargazer\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"http:\\\/\\\/facebook.com\\\/SterlingComp\\\/\",\"https:\\\/\\\/x.com\\\/sterlingcomp\",\"https:\\\/\\\/www.instagram.com\\\/sterlingcomputers\\\/\",\"http:\\\/\\\/youtube.com\\\/@sterlingcomp\",\"https:\\\/\\\/www.linkedin.com\\\/company\\\/sterling-computers\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/sterling.com\\\/stargazer\\\/#\\\/schema\\\/person\\\/b812a18f3a1e77cd0925429d1546e49d\",\"name\":\"Sterling\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/49107847cab9312fecfc9475e27da24373a491ca9faf45408ea019ad846f2c44?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/49107847cab9312fecfc9475e27da24373a491ca9faf45408ea019ad846f2c44?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/49107847cab9312fecfc9475e27da24373a491ca9faf45408ea019ad846f2c44?s=96&d=mm&r=g\",\"caption\":\"Sterling\"},\"url\":\"https:\\\/\\\/sterling.com\\\/stargazer\\\/?author=2\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Automated Kubernetes Deployment using Tanzu Kubernetes Grid - Sterling","robots":{"index":"noindex","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"og_locale":"en_US","og_type":"article","og_title":"Automated Kubernetes Deployment using Tanzu Kubernetes Grid - Sterling","og_description":"written by Billy Downing What is Tanzu Kubernetes Grid: Architecture? Tanzu Kubernetes Grid (TKG) is an implementation of several open-source projects to provide automated provisioning and lifecycle management of Kubernetes [&hellip;]","og_url":"https:\/\/sterling.com\/stargazer\/?p=10052","og_site_name":"Sterling","article_publisher":"http:\/\/facebook.com\/SterlingComp\/","article_published_time":"2020-08-26T13:39:59+00:00","author":"Sterling","twitter_card":"summary_large_image","twitter_creator":"@sterlingcomp","twitter_site":"@sterlingcomp","twitter_misc":{"Written by":"Sterling","Est. reading time":"8 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/sterling.com\/stargazer\/?p=10052#article","isPartOf":{"@id":"https:\/\/sterling.com\/stargazer\/?p=10052"},"author":{"name":"Sterling","@id":"https:\/\/sterling.com\/stargazer\/#\/schema\/person\/b812a18f3a1e77cd0925429d1546e49d"},"headline":"Automated Kubernetes Deployment using Tanzu Kubernetes Grid","datePublished":"2020-08-26T13:39:59+00:00","mainEntityOfPage":{"@id":"https:\/\/sterling.com\/stargazer\/?p=10052"},"wordCount":1647,"commentCount":0,"publisher":{"@id":"https:\/\/sterling.com\/stargazer\/#organization"},"image":{"@id":"https:\/\/sterling.com\/stargazer\/?p=10052#primaryimage"},"thumbnailUrl":"","keywords":["cloud application","kubernetes","tanzu","tanzulanding","vmware","vmware cloud"],"articleSection":["Announcements","Blog","Cloud","Data Center","News"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/sterling.com\/stargazer\/?p=10052","url":"https:\/\/sterling.com\/stargazer\/?p=10052","name":"Automated Kubernetes Deployment using Tanzu Kubernetes Grid - Sterling","isPartOf":{"@id":"https:\/\/sterling.com\/stargazer\/#website"},"primaryImageOfPage":{"@id":"https:\/\/sterling.com\/stargazer\/?p=10052#primaryimage"},"image":{"@id":"https:\/\/sterling.com\/stargazer\/?p=10052#primaryimage"},"thumbnailUrl":"","datePublished":"2020-08-26T13:39:59+00:00","breadcrumb":{"@id":"https:\/\/sterling.com\/stargazer\/?p=10052#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/sterling.com\/stargazer\/?p=10052"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/sterling.com\/stargazer\/?p=10052#primaryimage","url":"","contentUrl":""},{"@type":"BreadcrumbList","@id":"https:\/\/sterling.com\/stargazer\/?p=10052#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/sterling.com\/stargazer\/"},{"@type":"ListItem","position":2,"name":"Automated Kubernetes Deployment using Tanzu Kubernetes Grid"}]},{"@type":"WebSite","@id":"https:\/\/sterling.com\/stargazer\/#website","url":"https:\/\/sterling.com\/stargazer\/","name":"Sterling","description":"","publisher":{"@id":"https:\/\/sterling.com\/stargazer\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/sterling.com\/stargazer\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/sterling.com\/stargazer\/#organization","name":"Sterling","url":"https:\/\/sterling.com\/stargazer\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/sterling.com\/stargazer\/#\/schema\/logo\/image\/","url":"https:\/\/sterling.com\/stargazer\/wp-content\/uploads\/2023\/03\/Sterling-Computers-Logo-TM.png","contentUrl":"https:\/\/sterling.com\/stargazer\/wp-content\/uploads\/2023\/03\/Sterling-Computers-Logo-TM.png","width":399,"height":145,"caption":"Sterling"},"image":{"@id":"https:\/\/sterling.com\/stargazer\/#\/schema\/logo\/image\/"},"sameAs":["http:\/\/facebook.com\/SterlingComp\/","https:\/\/x.com\/sterlingcomp","https:\/\/www.instagram.com\/sterlingcomputers\/","http:\/\/youtube.com\/@sterlingcomp","https:\/\/www.linkedin.com\/company\/sterling-computers"]},{"@type":"Person","@id":"https:\/\/sterling.com\/stargazer\/#\/schema\/person\/b812a18f3a1e77cd0925429d1546e49d","name":"Sterling","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/49107847cab9312fecfc9475e27da24373a491ca9faf45408ea019ad846f2c44?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/49107847cab9312fecfc9475e27da24373a491ca9faf45408ea019ad846f2c44?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/49107847cab9312fecfc9475e27da24373a491ca9faf45408ea019ad846f2c44?s=96&d=mm&r=g","caption":"Sterling"},"url":"https:\/\/sterling.com\/stargazer\/?author=2"}]}},"_links":{"self":[{"href":"https:\/\/sterling.com\/stargazer\/index.php?rest_route=\/wp\/v2\/posts\/10052","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/sterling.com\/stargazer\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/sterling.com\/stargazer\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/sterling.com\/stargazer\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/sterling.com\/stargazer\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=10052"}],"version-history":[{"count":0,"href":"https:\/\/sterling.com\/stargazer\/index.php?rest_route=\/wp\/v2\/posts\/10052\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/sterling.com\/stargazer\/index.php?rest_route=\/"}],"wp:attachment":[{"href":"https:\/\/sterling.com\/stargazer\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=10052"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/sterling.com\/stargazer\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=10052"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/sterling.com\/stargazer\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=10052"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}