{"id":12740,"date":"2019-11-06T07:16:01","date_gmt":"2019-11-06T06:16:01","guid":{"rendered":"https:\/\/www.dbi-services.com\/blog\/creating-a-kubernetes-cluster-with-google-kubernetes-engine\/"},"modified":"2019-11-06T07:16:01","modified_gmt":"2019-11-06T06:16:01","slug":"creating-a-kubernetes-cluster-with-google-kubernetes-engine","status":"publish","type":"post","link":"https:\/\/www.dbi-services.com\/blog\/creating-a-kubernetes-cluster-with-google-kubernetes-engine\/","title":{"rendered":"Create a Kubernetes cluster with Google Kubernetes Engine"},"content":{"rendered":"<p>Nowadays the market for cloud providers is very competitive. Large companies are fighting a very hard battle over the services they provide. Each offers a wide range of more or less identical products with specific features for each.<\/p>\n<p>In my point of view, having deployed Kubernetes clusters in several environments (Cloud and On-Premise), I pay particular attention to Google Cloud for its Google Kubernetes Engine offer. The deployment of a Kubernetes cluster is very fast and allows us to have a test\/production environment in a few minutes.<\/p>\n<p>Therefore, in this blog post, we will explain how to create a Kubernetes cluster in Google Cloud with some useful additional resources.<\/p>\n<h3>Prerequisites<\/h3>\n<p>A Google account is needed. You can create one by following the sign-up link: <a href=\"https:\/\/cloud.google.com\">https:\/\/cloud.google.com<\/a>. Otherwise, you can use the free tier account: <a href=\"https:\/\/cloud.google.com\/free\/?hl=en\">https:\/\/cloud.google.com\/free\/?hl=en<\/a>.<\/p>\n<h3>Create your project<\/h3>\n<p>Go to the cloud portal through the following link: <a href=\"https:\/\/console.cloud.google.com\/home\/dashboard\">https:\/\/console.cloud.google.com\/home\/dashboard<\/a><\/p>\n<p>The first step is the creation of a project. Before creating a resource, you will need to create a project in order to encapsulate all your resources within it. To properly create a project, follow the below steps:<br \/>\n<a href=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/gke-project.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-large wp-image-35163\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/gke-project.png\" alt=\"\" width=\"1024\" height=\"195\" \/><\/a><\/p>\n<p>Enter your project name and click on create:<br \/>\n<a href=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/gke-project1.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-large wp-image-35164\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/gke-project1.png\" alt=\"\" width=\"1024\" height=\"692\" \/><\/a><\/p>\n<p>After a few seconds, your project will be created, and you will have access to the home dashboard:<br \/>\n<a href=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/gke-home-dashboard.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-large wp-image-35161\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/gke-home-dashboard.png\" alt=\"\" width=\"1024\" height=\"501\" \/><\/a><\/p>\n<h3>Create your cluster<\/h3>\n<p>Once the project is created and ready to use, let&#8217;s create now our Kubernetes cluster. Click on the Kubernetes Engine menu and clusters sub-menu to begin the creation process.<br \/>\n<a href=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/gke-create-cluster.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-large wp-image-35156\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/gke-create-cluster.png\" alt=\"\" width=\"562\" height=\"1024\" \/><\/a><\/p>\n<p>Once the Kubernetes Engine API is enabled, we can click on the create cluster button and configured our cluster as needed.<br \/>\n<a href=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/gke-create-cluster2.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-large wp-image-35158\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/gke-create-cluster2.png\" alt=\"\" width=\"938\" height=\"1024\" \/><\/a><\/p>\n<p>We choose a standard cluster with 3 cluster nodes. You can edit the resources of your cluster according to your needs. For our example, we kept the default configuration provided by the API.<\/p>\n<p>Click on the create button and after a few minutes, your cluster is ready for usage.<\/p>\n<h3>Start using your Kubernetes cluster<\/h3>\n<p>Google SDK is needed to use your Kubernetes cluster in your favorite client platform. To install Google SDK follow the instructions here: <a href=\"https:\/\/cloud.google.com\/sdk\/docs\/downloads-interactive\">https:\/\/cloud.google.com\/sdk\/docs\/downloads-interactive<\/a><\/p>\n<p>SDK Cloud is properly installed, we can now initialize our environment by the following steps:<\/p>\n<pre class=\"brush: bash; gutter: true; first-line: 1\">mehdi@MacBook-Pro: gcloud init\nWelcome! This command will take you through the configuration of gcloud.\n\u00a0\nSettings from your current configuration [default] are:\ncore:\n\u00a0 account: mehdi.bada68@gmail.com\n\u00a0 disable_usage_reporting: 'True'\n\u00a0 project: jx-k8s-2511\n\u00a0\nPick configuration to use:\n\u00a0[1] Re-initialize this configuration [default] with new settings\n\u00a0[2] Create a new configuration\nPlease enter your numeric choice:\u00a0 1\n\u00a0\nYour current configuration has been set to: [default]\n\u00a0\nYou can skip diagnostics next time by using the following flag:\n\u00a0 gcloud init --skip-diagnostics\n\u00a0\nNetwork diagnostic detects and fixes local network connection issues.\nChecking network connection...done.\nReachability Check passed.\nNetwork diagnostic passed (1\/1 checks passed).\n\u00a0\nChoose the account you would like to use to perform operations for\nthis configuration:\n\u00a0[1] mehdi.bada68@gmail.com\n\u00a0[2] Log in with a new account\nPlease enter your numeric choice:\u00a0 1\n\u00a0\nYou are logged in as: [mehdi.bada68@gmail.com].\n\u00a0\nPick cloud project to use:\n\u00a0[1] kubernetes-infra-258110\n\u00a0[2] Create a new project\nPlease enter numeric choice or text value (must exactly match list\nitem):\u00a0 1\n\u00a0\nYour current project has been set to: [kubernetes-infra-258110].\n\u00a0\nDo you want to configure a default Compute Region and Zone? (Y\/n)?\u00a0 Y\n\u00a0\nWhich Google Compute Engine zone would you like to use as project\ndefault?\nIf you do not specify a zone via a command-line flag while working\nwith Compute Engine resources, the default is assumed.\n\u00a0\nPlease enter numeric choice or text value (must exactly match list\nitem):\u00a0 8<\/pre>\n<p>Login now to gcloud :<\/p>\n<pre class=\"brush: bash; gutter: true; first-line: 1\">mehdi@MacBook-Pro: gcloud auth login\n\u2026 \nYou are now logged in as [mehdi.bada68@gmail.com].\nYour current project is [kubernetes-infra-258110].  You can change this setting by running:\n  $ gcloud config set project PROJECT_ID<\/pre>\n<p>Update your ~.\/kube\/config file with the credentials of the new cluster created before:<\/p>\n<pre class=\"brush: bash; gutter: true; first-line: 1\">mehdi@MacBook-Pro: gcloud container clusters get-credentials standard-cluster-1\nFetching cluster endpoint and auth data.\nkubeconfig entry generated for standard-cluster-1.<\/pre>\n<p>Your kubectl client is now connected to your remote GKE cluster.<\/p>\n<pre class=\"brush: bash; gutter: true; first-line: 1\">mehdi@MacBook-Pro: kubectl get nodes -o wide\nNAME                                                STATUS   ROLES    AGE   VERSION          INTERNAL-IP   EXTERNAL-IP     OS-IMAGE                             KERNEL-VERSION   CONTAINER-RUNTIME\ngke-standard-cluster-1-default-pool-1ac453ab-6tj4   Ready       56m   v1.13.11-gke.9   10.128.0.3    34.70.191.147   Container-Optimized OS from Google   4.14.145+        docker:\/\/18.9.7\ngke-standard-cluster-1-default-pool-1ac453ab-s242   Ready       56m   v1.13.11-gke.9   10.128.0.4    35.188.3.165    Container-Optimized OS from Google   4.14.145+        docker:\/\/18.9.7\ngke-standard-cluster-1-default-pool-1ac453ab-w0j0   Ready       56m   v1.13.11-gke.9   10.128.0.2    34.70.107.231   Container-Optimized OS from Google   4.14.145+        docker:\/\/18.9.7<\/pre>\n<h3>Deploy Kubernetes Dashboard<\/h3>\n<p>After configuring the kubectl client we can start deploying resources on the Kubernetes cluster. One of the most popular resources in Kubernetes is the dashboard. It allows users and admin having a graphical view of all cluster resources.<\/p>\n<p>Download the dashboard deployment locally:<\/p>\n<pre class=\"brush: bash; gutter: true; first-line: 1\">curl -o dashboard.yaml  https:\/\/raw.githubusercontent.com\/kubernetes\/dashboard\/v2.0.0-beta4\/aio\/deploy\/recommended.yaml<\/pre>\n<p>Then apply the deployment:<\/p>\n<pre class=\"brush: bash; gutter: true; first-line: 1\">mehdi@MacBook-Pro: kubectl apply -f dashboard.yaml\nnamespace\/kubernetes-dashboard created\nserviceaccount\/kubernetes-dashboard created\nservice\/kubernetes-dashboard created\nsecret\/kubernetes-dashboard-certs created\nsecret\/kubernetes-dashboard-csrf created\nsecret\/kubernetes-dashboard-key-holder created\nconfigmap\/kubernetes-dashboard-settings created\nrole.rbac.authorization.k8s.io\/kubernetes-dashboard created\nclusterrole.rbac.authorization.k8s.io\/kubernetes-dashboard created\nrolebinding.rbac.authorization.k8s.io\/kubernetes-dashboard created\nclusterrolebinding.rbac.authorization.k8s.io\/kubernetes-dashboard created\ndeployment.apps\/kubernetes-dashboard created\nservice\/dashboard-metrics-scraper created\ndeployment.apps\/dashboard-metrics-scraper created<\/pre>\n<p>Create an admin Service Account and Cluster Role Binding that you can use to securely connect to the dashboard with admin-level permissions:<\/p>\n<pre class=\"brush: bash; gutter: true; first-line: 1\">mehdi@MacBook-Pro: vi admin-sa.yaml \n\napiVersion: v1\nkind: ServiceAccount\nmetadata:\n  name: admin\n  namespace: kubernetes-dashboard\n---\napiVersion: rbac.authorization.k8s.io\/v1beta1\nkind: ClusterRoleBinding\nmetadata:\n  name: admin\nroleRef:\n  apiGroup: rbac.authorization.k8s.io\n  kind: ClusterRole\n  name: cluster-admin\nsubjects:\n- kind: ServiceAccount\n  name: admin\n  namespace: kubernetes-dashboard\n\nmehdi@MacBook-Pro: kubectl apply -f admin-sa.yaml\nserviceaccount\/admin created\nclusterrolebinding.rbac.authorization.k8s.io\/admin created<\/pre>\n<p>First, retrieve the authentication token for the admin service account, as below:<\/p>\n<pre class=\"brush: bash; gutter: true; first-line: 1\">mehdi@MacBook-Pro: kubectl -n kubernetes-dashboard describe secret $(kubectl -n kubernetes-dashboard get secret | grep admin | awk '{print $1}')\nName:         admin-token-dpsl9\nNamespace:    kubernetes-dashboard\nLabels:       \nAnnotations:  kubernetes.io\/service-account.name: admin\n              kubernetes.io\/service-account.uid: 888de3dc-ffff-11e9-b5ca-42010a800046\n\nType:  kubernetes.io\/service-account-token\n\nData\n====\nca.crt:     1119 bytes\nnamespace:  20 bytes\ntoken:      eyJhbGciOiJSUzI1NiIsImtpZCI6IiJ9.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJrdWJlcm5ldGVzLWRhc2hib2FyZCIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VjcmV0Lm5hbWUiOiJhZG1pbi10b2tlbi1kcHNsOSIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VydmljZS1hY2NvdW50Lm5hbWUiOiJhZG1pbiIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VydmljZS1hY2NvdW50LnVpZCI6Ijg4OGRlM2RjLWZmZmYtMTFlOS1iNWNhLTQyMDEwYTgwMDA0NiIsInN1YiI6InN5c3RlbTpzZXJ2aWNlYWNjb3VudDprdWJlcm5ldGVzLWRhc2hib2FyZDphZG1pbiJ9.DBrfylt1RFDpHEuTy4l0BY-kRwFqm9Tvfne8Vu-IZVghy87vVWtsCatjt2wzCtMjX-I5oB0YAYmio7pTwPV-Njyd_VvbWupqOF7yiYE72ZXri0liLnQN5qbtyOmswsjim0ehG_yQSHaAqp21cQdPXb59ItBLN7q0-dh8wBRyOMAVLttjbmzBb02XxtJlALYg8F4hAkyHjJAzHAyntMylUXyS2gn471WUYFs1usDDpA8uZRU3_K6oyccXa-xqs8kKRB1Ch6n4Cq9TeMKkoUyv0_alEEQvwkp_uQCl2Rddk7bLNnjfDXDPC9LXOT-2xfvUf8COe5dO-rUXemHJlhPUHw<\/pre>\n<p>Copy the token value.<\/p>\n<p>Access to the Kubernetes dashboard using the kubectl proxy command line.<\/p>\n<pre class=\"brush: bash; gutter: true; first-line: 1\">mehdi@MacBook-Pro: kubectl proxy\nStarting to serve on 127.0.0.1:8001<\/pre>\n<p>The dashboard is now available in the following link: <a href=\"http:\/\/localhost:8001\/api\/v1\/namespaces\/kubernetes-dashboard\/services\/https:kubernetes-dashboard:\/proxy\/#\/login\">http:\/\/localhost:8001\/api\/v1\/namespaces\/kubernetes-dashboard\/services\/https:kubernetes-dashboard:\/proxy\/#\/login<\/a><\/p>\n<p>Choose the token authentication and paste the value from the previous output.<\/p>\n<p>You have now access to the Kubernetes dashboard and deployed your first Kubernetes resource!<br \/>\n<a href=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/gke-dashboard.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/gke-dashboard.png\" alt=\"\" width=\"1024\" height=\"546\" class=\"aligncenter size-large wp-image-35178\" \/><\/a><\/p>\n<h3>Deploy an Ingress Load Balancer<\/h3>\n<p>In order to access your cluster service externally, we need to create an ingress load balancer for our GKE cluster. The ingress load balancer will make HTTP\/HTTPS applications accessible publicly through the creation of an external IP address for the cluster.<\/p>\n<p>Before creating the ingress, we need to deploy a test application for our example. Let\u2019s deploy an NGINX server.<\/p>\n<pre class=\"brush: bash; gutter: true; first-line: 1\">mehdi@MacBook-Pro: vi nginx-deployment.yaml\n\napiVersion: apps\/v1beta2\nkind: Deployment\nmetadata:\n  name: nginx-deployment\nspec:\n  selector:\n    matchLabels:\n      app: nginx\n  replicas: 2\n  template:\n    metadata:\n      labels:\n        app: nginx\n    spec:\n      containers:\n      - name: nginx\n        image: nginx\n        ports:\n        - containerPort: 80\n---\napiVersion: v1\nkind: Service\nmetadata:\n  name: nginx\n  labels:\n    app: nginx\nspec:\n  type: NodePort\n  ports:\n    - port: 80\n  selector:\n    app: nginx\n\n\nmehdi@MacBook-Pro: kubectl apply -f nginx-deployment.yaml\n\ndeployment.apps\/nginx-deployment unchanged\nservice\/nginx created<\/pre>\n<p>Create the ingress resource and deploy it as following:<\/p>\n<pre class=\"brush: bash; gutter: true; first-line: 1\">mehdi@MacBook-Pro: vi basic-ingress.yaml\napiVersion: extensions\/v1beta1\nkind: Ingress\nmetadata:\nname: basic-ingress\nspec:\nrules:\n- http:\npaths:\n- backend:\nserviceName: nginx\nservicePort: 80\n\nmehdi@MacBook-Pro: kubectl apply -f basic-ingress.yaml\ningress.extensions\/basic-ingress created<\/pre>\n<p>Verify the status of the ingress:<\/p>\n<pre class=\"brush: bash; gutter: true; first-line: 1\">mehdi@MacBook-Pro: kubectl get ing -o wide\nNAME            HOSTS   ADDRESS         PORTS   AGE\nbasic-ingress   *       34.102.214.94   80      8h<\/pre>\n<p>The ingress resources have been properly created. We can see the result directly from the Google Cloud dashboard.<br \/>\n<a href=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/gke-ingress.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/gke-ingress.png\" alt=\"\" width=\"1024\" height=\"357\" class=\"aligncenter size-large wp-image-35176\" \/><\/a><\/p>\n<p>The NGINX service is now available via the Ingress Load Balancer and can be accessed through:<br \/>\n<a href=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/gke-ingress1.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/gke-ingress1.png\" alt=\"\" width=\"1024\" height=\"279\" class=\"aligncenter size-large wp-image-35177\" \/><\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Nowadays the market for cloud providers is very competitive. Large companies are fighting a very hard battle over the services they provide. Each offers a wide range of more or less identical products with specific features for each. In my point of view, having deployed Kubernetes clusters in several environments (Cloud and On-Premise), I pay [&hellip;]<\/p>\n","protected":false},"author":109,"featured_media":12744,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[229,1320,1504,1522],"tags":[601,1669,1670,1671,89],"type_dbi":[],"class_list":["post-12740","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-database-administration-monitoring","category-devops","category-docker","category-kubernetes","tag-docker","tag-gke","tag-googlecloud","tag-ingress","tag-kubernetes"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v27.2 (Yoast SEO v27.2) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Create a Kubernetes cluster with Google Kubernetes Engine - dbi Blog<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.dbi-services.com\/blog\/creating-a-kubernetes-cluster-with-google-kubernetes-engine\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Create a Kubernetes cluster with Google Kubernetes Engine\" \/>\n<meta property=\"og:description\" content=\"Nowadays the market for cloud providers is very competitive. Large companies are fighting a very hard battle over the services they provide. Each offers a wide range of more or less identical products with specific features for each. In my point of view, having deployed Kubernetes clusters in several environments (Cloud and On-Premise), I pay [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.dbi-services.com\/blog\/creating-a-kubernetes-cluster-with-google-kubernetes-engine\/\" \/>\n<meta property=\"og:site_name\" content=\"dbi Blog\" \/>\n<meta property=\"article:published_time\" content=\"2019-11-06T06:16:01+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/gke-create-cluster.png\" \/>\n\t<meta property=\"og:image:width\" content=\"640\" \/>\n\t<meta property=\"og:image:height\" content=\"1166\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"DevOps\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"DevOps\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"7 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/creating-a-kubernetes-cluster-with-google-kubernetes-engine\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/creating-a-kubernetes-cluster-with-google-kubernetes-engine\/\"},\"author\":{\"name\":\"DevOps\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/4cd1b5f8a3de93f05a16ab8d7d2b7735\"},\"headline\":\"Create a Kubernetes cluster with Google Kubernetes Engine\",\"datePublished\":\"2019-11-06T06:16:01+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/creating-a-kubernetes-cluster-with-google-kubernetes-engine\/\"},\"wordCount\":676,\"commentCount\":0,\"image\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/creating-a-kubernetes-cluster-with-google-kubernetes-engine\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/gke-create-cluster.png\",\"keywords\":[\"Docker\",\"GKE\",\"GoogleCloud\",\"Ingress\",\"kubernetes\"],\"articleSection\":[\"Database Administration &amp; Monitoring\",\"DevOps\",\"Docker\",\"Kubernetes\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.dbi-services.com\/blog\/creating-a-kubernetes-cluster-with-google-kubernetes-engine\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/creating-a-kubernetes-cluster-with-google-kubernetes-engine\/\",\"url\":\"https:\/\/www.dbi-services.com\/blog\/creating-a-kubernetes-cluster-with-google-kubernetes-engine\/\",\"name\":\"Create a Kubernetes cluster with Google Kubernetes Engine - dbi Blog\",\"isPartOf\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/creating-a-kubernetes-cluster-with-google-kubernetes-engine\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/creating-a-kubernetes-cluster-with-google-kubernetes-engine\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/gke-create-cluster.png\",\"datePublished\":\"2019-11-06T06:16:01+00:00\",\"author\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/4cd1b5f8a3de93f05a16ab8d7d2b7735\"},\"breadcrumb\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/creating-a-kubernetes-cluster-with-google-kubernetes-engine\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.dbi-services.com\/blog\/creating-a-kubernetes-cluster-with-google-kubernetes-engine\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/creating-a-kubernetes-cluster-with-google-kubernetes-engine\/#primaryimage\",\"url\":\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/gke-create-cluster.png\",\"contentUrl\":\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/gke-create-cluster.png\",\"width\":640,\"height\":1166},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/creating-a-kubernetes-cluster-with-google-kubernetes-engine\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Accueil\",\"item\":\"https:\/\/www.dbi-services.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Create a Kubernetes cluster with Google Kubernetes Engine\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#website\",\"url\":\"https:\/\/www.dbi-services.com\/blog\/\",\"name\":\"dbi Blog\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.dbi-services.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/4cd1b5f8a3de93f05a16ab8d7d2b7735\",\"name\":\"DevOps\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/secure.gravatar.com\/avatar\/cdd2dd7441774355062c0f0f68612296b059cd1e2ff6c7af0b15dba0ed64a85f?s=96&d=mm&r=g\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/cdd2dd7441774355062c0f0f68612296b059cd1e2ff6c7af0b15dba0ed64a85f?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/cdd2dd7441774355062c0f0f68612296b059cd1e2ff6c7af0b15dba0ed64a85f?s=96&d=mm&r=g\",\"caption\":\"DevOps\"},\"url\":\"https:\/\/www.dbi-services.com\/blog\/author\/devops\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Create a Kubernetes cluster with Google Kubernetes Engine - dbi Blog","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.dbi-services.com\/blog\/creating-a-kubernetes-cluster-with-google-kubernetes-engine\/","og_locale":"en_US","og_type":"article","og_title":"Create a Kubernetes cluster with Google Kubernetes Engine","og_description":"Nowadays the market for cloud providers is very competitive. Large companies are fighting a very hard battle over the services they provide. Each offers a wide range of more or less identical products with specific features for each. In my point of view, having deployed Kubernetes clusters in several environments (Cloud and On-Premise), I pay [&hellip;]","og_url":"https:\/\/www.dbi-services.com\/blog\/creating-a-kubernetes-cluster-with-google-kubernetes-engine\/","og_site_name":"dbi Blog","article_published_time":"2019-11-06T06:16:01+00:00","og_image":[{"width":640,"height":1166,"url":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/gke-create-cluster.png","type":"image\/png"}],"author":"DevOps","twitter_card":"summary_large_image","twitter_misc":{"Written by":"DevOps","Est. reading time":"7 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.dbi-services.com\/blog\/creating-a-kubernetes-cluster-with-google-kubernetes-engine\/#article","isPartOf":{"@id":"https:\/\/www.dbi-services.com\/blog\/creating-a-kubernetes-cluster-with-google-kubernetes-engine\/"},"author":{"name":"DevOps","@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/4cd1b5f8a3de93f05a16ab8d7d2b7735"},"headline":"Create a Kubernetes cluster with Google Kubernetes Engine","datePublished":"2019-11-06T06:16:01+00:00","mainEntityOfPage":{"@id":"https:\/\/www.dbi-services.com\/blog\/creating-a-kubernetes-cluster-with-google-kubernetes-engine\/"},"wordCount":676,"commentCount":0,"image":{"@id":"https:\/\/www.dbi-services.com\/blog\/creating-a-kubernetes-cluster-with-google-kubernetes-engine\/#primaryimage"},"thumbnailUrl":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/gke-create-cluster.png","keywords":["Docker","GKE","GoogleCloud","Ingress","kubernetes"],"articleSection":["Database Administration &amp; Monitoring","DevOps","Docker","Kubernetes"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.dbi-services.com\/blog\/creating-a-kubernetes-cluster-with-google-kubernetes-engine\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.dbi-services.com\/blog\/creating-a-kubernetes-cluster-with-google-kubernetes-engine\/","url":"https:\/\/www.dbi-services.com\/blog\/creating-a-kubernetes-cluster-with-google-kubernetes-engine\/","name":"Create a Kubernetes cluster with Google Kubernetes Engine - dbi Blog","isPartOf":{"@id":"https:\/\/www.dbi-services.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.dbi-services.com\/blog\/creating-a-kubernetes-cluster-with-google-kubernetes-engine\/#primaryimage"},"image":{"@id":"https:\/\/www.dbi-services.com\/blog\/creating-a-kubernetes-cluster-with-google-kubernetes-engine\/#primaryimage"},"thumbnailUrl":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/gke-create-cluster.png","datePublished":"2019-11-06T06:16:01+00:00","author":{"@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/4cd1b5f8a3de93f05a16ab8d7d2b7735"},"breadcrumb":{"@id":"https:\/\/www.dbi-services.com\/blog\/creating-a-kubernetes-cluster-with-google-kubernetes-engine\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.dbi-services.com\/blog\/creating-a-kubernetes-cluster-with-google-kubernetes-engine\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.dbi-services.com\/blog\/creating-a-kubernetes-cluster-with-google-kubernetes-engine\/#primaryimage","url":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/gke-create-cluster.png","contentUrl":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/gke-create-cluster.png","width":640,"height":1166},{"@type":"BreadcrumbList","@id":"https:\/\/www.dbi-services.com\/blog\/creating-a-kubernetes-cluster-with-google-kubernetes-engine\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Accueil","item":"https:\/\/www.dbi-services.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Create a Kubernetes cluster with Google Kubernetes Engine"}]},{"@type":"WebSite","@id":"https:\/\/www.dbi-services.com\/blog\/#website","url":"https:\/\/www.dbi-services.com\/blog\/","name":"dbi Blog","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.dbi-services.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/4cd1b5f8a3de93f05a16ab8d7d2b7735","name":"DevOps","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/cdd2dd7441774355062c0f0f68612296b059cd1e2ff6c7af0b15dba0ed64a85f?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/cdd2dd7441774355062c0f0f68612296b059cd1e2ff6c7af0b15dba0ed64a85f?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/cdd2dd7441774355062c0f0f68612296b059cd1e2ff6c7af0b15dba0ed64a85f?s=96&d=mm&r=g","caption":"DevOps"},"url":"https:\/\/www.dbi-services.com\/blog\/author\/devops\/"}]}},"_links":{"self":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/12740","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/users\/109"}],"replies":[{"embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/comments?post=12740"}],"version-history":[{"count":0,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/12740\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/media\/12744"}],"wp:attachment":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/media?parent=12740"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/categories?post=12740"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/tags?post=12740"},{"taxonomy":"type","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/type_dbi?post=12740"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}