{"id":12898,"date":"2019-10-22T15:22:44","date_gmt":"2019-10-22T13:22:44","guid":{"rendered":"https:\/\/www.dbi-services.com\/blog\/kubernetes-dns-resolution-using-coredns-force-update-deployment\/"},"modified":"2019-10-22T15:22:44","modified_gmt":"2019-10-22T13:22:44","slug":"kubernetes-dns-resolution-using-coredns-force-update-deployment","status":"publish","type":"post","link":"https:\/\/www.dbi-services.com\/blog\/kubernetes-dns-resolution-using-coredns-force-update-deployment\/","title":{"rendered":"Kubernetes DNS resolution using CoreDNS (force update deployment)"},"content":{"rendered":"<p>After installing your Kubernetes cluster composed by masters and workers, a few configurations steps need to complete. In fact, the join command is not the last operation to perform, in order to have a fully operational cluster.<br \/>\n<em>See how to deploy a k8s cluster using kubeadm here: <a href=\"https:\/\/www.dbi-services.com\/blog\/kubernetes-how-to-install-a-single-master-cluster-with-kubeadm\/\">https:\/\/www.dbi-services.com\/blog\/kubernetes-how-to-install-a-single-master-cluster-with-kubeadm\/<\/a> <\/em>.<br \/>\nOne of the most important steps in the configuration is the name resolution (DNS) within the k8s cluster. In this blog post, we will see how to properly configure CoreDNS for the entire cluster.<\/p>\n<p>Before beginning, it\u2019s important to know that Kubernetes have 2 DNS versions: Kube-DNS and CoreDNS. Initially, the first versions of Kubernetes started with Kube-DNS and change to CoreDNS since version 1.10. For people who wants to know more about the comparison between both: <em><a href=\"https:\/\/coredns.io\/2018\/11\/27\/cluster-dns-coredns-vs-kube-dns\/\">https:\/\/coredns.io\/2018\/11\/27\/cluster-dns-coredns-vs-kube-dns\/<\/a><\/em><\/p>\n<h3>Pre-requisites:<\/h3>\n<p>&gt; You need to have a Kubernetes cluster with kubectl command-line tool configured<br \/>\n&gt; Kubernetes version 1.6 and above<br \/>\n&gt; At least a 3 nodes cluster (1 master and 2 workers)<\/p>\n<p>Once the cluster is initialized and worker nodes have been joined, you can check the status of the nodes and list all pods of the kube-system namespace as follows:<\/p>\n<pre class=\"brush: bash; gutter: true; first-line: 1\">[docker@docker-manager000 ~]$ kubectl get nodes -o wide\nNAME                STATUS   ROLES    AGE   VERSION   INTERNAL-IP   EXTERNAL-IP   OS-IMAGE                KERNEL-VERSION               CONTAINER-RUNTIME\ndocker-manager000   Ready    master   55d   v1.15.3   10.36.0.10    &lt;none&gt;        CentOS Linux 7 (Core)   3.10.0-957.12.2.el7.x86_64   docker:\/\/18.9.6\ndocker-worker000    Ready    &lt;none&gt;   46d   v1.15.3   10.36.0.11    &lt;none&gt;        CentOS Linux 7 (Core)   3.10.0-957.10.1.el7.x86_64   docker:\/\/18.9.5\ndocker-worker001    Ready    &lt;none&gt;   46d   v1.15.3   10.36.0.12    &lt;none&gt;        CentOS Linux 7 (Core)   3.10.0-957.10.1.el7.x86_64   docker:\/\/18.9.5<\/pre>\n<p>According to the previous command, our cluster is composed of 3 nodes:<br \/>\n&gt; docker-manager000<br \/>\n&gt; docker-worker000<br \/>\n&gt; docker-worker001<br \/>\nwhich means that pods will be scheduled across all the above hosts. So, each host should be able to resolve the service names with IP addresses. <strong>The CoreDNS pods enable this operation and need to be deployed in all hosts.<\/strong><\/p>\n<p>Let\u2019s check the pod&#8217;s deployment in the kube-system namespace:<\/p>\n<pre class=\"brush: bash; gutter: true; first-line: 1\">[docker@docker-manager000 ~]$ kubectl get pods -o wide -n kube-system\nNAME                                        READY   STATUS    RESTARTS   AGE   IP              NODE                NOMINATED NODE   READINESS GATES\ncalico-kube-controllers-65b8787765-894gs    1\/1     Running   16         55d   172.20.123.30   docker-manager000              \ncalico-node-5zhsp                           1\/1     Running   6          46d   10.36.0.12      docker-worker001               \ncalico-node-gq5s9                           1\/1     Running   8          46d   10.36.0.11      docker-worker000               \ncalico-node-pjrfm                           1\/1     Running   16         55d   10.36.0.10      docker-manager000              \ncoredns-686f555694-mdsvd                    1\/1     Running   6          35d   172.20.123.26   docker-manager000              \ncoredns-686f555694-w25wn                    1\/1     Running   6          35d   172.20.123.28   docker-manager000              \netcd-docker-manager000                      1\/1     Running   16         55d   10.36.0.10      docker-manager000              \nkube-apiserver-docker-manager000            1\/1     Running   0          13d   10.36.0.10      docker-manager000              \nkube-controller-manager-docker-manager000   1\/1     Running   46         55d   10.36.0.10      docker-manager000              \nkube-proxy-gwkdh                            1\/1     Running   7          46d   10.36.0.11      docker-worker000               \nkube-proxy-lr5cf                            1\/1     Running   6          46d   10.36.0.12      docker-worker001               \nkube-proxy-mn7mt                            1\/1     Running   16         55d   10.36.0.10      docker-manager000              \nkube-scheduler-docker-manager000            1\/1     Running   45         55d   10.36.0.10      docker-manager000<\/pre>\n<p>In more details, let\u2019s verify the deployment of coredns pods:<\/p>\n<pre class=\"brush: bash; gutter: true; first-line: 1\">[docker@docker-manager000 ~]$ kubectl get pods -o wide -n kube-system | grep coredns\n\ncoredns-686f555694-mdsvd                    1\/1     Running   6          35d   172.20.123.26   docker-manager000              \ncoredns-686f555694-w25wn                    1\/1     Running   6          35d   172.20.123.28   docker-manager000<\/pre>\n<p>Only 2 CoreDNS pods have been deployed within the same host: docker-manager000, our master node. The service name resolution will not work in our cluster for all pods. Let\u2019s verify this supposition&#8230;<\/p>\n<h3>DNS Resolution test<\/h3>\n<p>Create a simple Pod to use for DNS testing:<\/p>\n<pre class=\"brush: bash; gutter: true; first-line: 1\">[docker@docker-manager000 ~]$ cat &gt; test-DNS.yaml &lt;&lt; EOF\napiVersion: v1\nkind: Pod\nmetadata:\n  name: busybox\n  namespace: default\nspec:\n  containers:\n  - name: busybox\n    image: busybox:1.28\n    command:\n      - sleep\n      - &quot;3600&quot;\n    imagePullPolicy: IfNotPresent\n  restartPolicy: Always\nEOF\n\n[docker@docker-manager000 ~]$ kubectl apply -f test-DNS.yaml<\/pre>\n<p>Verify the status of the Pod previously deployed:<\/p>\n<pre class=\"brush: bash; gutter: true; first-line: 1\">[docker@docker-manager000 ~]$ kubectl get pods -o wide\nNAME      READY   STATUS    RESTARTS   AGE   IP              NODE               NOMINATED NODE   READINESS GATES\nbusybox   1\/1     Running   0          13s   172.20.145.19   docker-worker000              <\/pre>\n<p>The Pod will be deployed on one of the worker nodes. In our case it&#8217;s docker-worker000.<\/p>\n<p>Once the pod is running we can execute a nslookup command in order to verify if the DNS is working or not: <\/p>\n<pre class=\"brush: bash; gutter: true; first-line: 1\">[docker@docker-manager000 ~]$ kubectl exec -it busybox -- nslookup kubernetes.default\n\nServer:    172.21.0.10\nAddress 1: 172.21.0.10 kube-dns.kube-system.svc.cluster.local\n\nnslookup: can't resolve 'kubernetes.default'<\/pre>\n<p>As supposed, the DNS is not working properly. The next steps will be to deploy the CoreDNS pods in all cluster nodes, docker-worker000, and docker-worker001 in our example. <\/p>\n<h3>CoreDNS update deployment<\/h3>\n<p>The first step is to update the CoreDNS deployment in order to increase the number of replicas, as following: <\/p>\n<pre class=\"brush: bash; gutter: true; first-line: 1\">[docker@docker-manager000 ~]$ kubectl edit deployment coredns -n kube-system\n# Please edit the object below. Lines beginning with a '#' will be ignored,\n# and an empty file will abort the edit. If an error occurs while saving this file will be\n# reopened with the relevant failures.\n#\napiVersion: extensions\/v1beta1\nkind: Deployment\nmetadata:\n  annotations:\n    deployment.kubernetes.io\/revision: \"13\"\n  creationTimestamp: \"2019-08-28T07:36:28Z\"\n  generation: 14\n  labels:\n    k8s-app: kube-dns\n  name: coredns\n  namespace: kube-system\n  resourceVersion: \"6455829\"\n  selfLink: \/apis\/extensions\/v1beta1\/namespaces\/kube-system\/deployments\/coredns\n  uid: 3ebfd10f-c58b-43f4-84f1-a9f56dbdffdc\nspec:\n  progressDeadlineSeconds: 600\n  replicas: 3\n...<\/pre>\n<p>We updated the number of replica from 2 to 3. Then save the changes and wait a few seconds for new CoreDNS pod deployment within the kube-system namespace. <\/p>\n<pre class=\"brush: bash; gutter: true; first-line: 1\">[docker@docker-manager000 ~]$ kubectl get pods -o wide -n kube-system | grep coredns\ncoredns-686f555694-k4678                    1\/1     Running   10         36d   172.20.27.186   docker-worker001               \ncoredns-686f555694-mdsvd                    1\/1     Running   6          36d   172.20.123.26   docker-manager000              \ncoredns-686f555694-w25wn                    1\/1     Running   6          36d   172.20.123.28   docker-manager000              <\/pre>\n<p>At this step, the funniest happens because of the Kubernetes scheduler is considering that only 1 CoreDNS pod is needed in addition because 2 pods have been already created before. For this reason, only 1 CoreDNS pod has been deployed in the docker-worker001 randomly. <\/p>\n<p>A workaround is to force update the CoreDNS deployment as follows: <\/p>\n<pre class=\"brush: bash; gutter: true; first-line: 1\">[docker@docker-manager000 ~]$ wget https:\/\/raw.githubusercontent.com\/zlabjp\/kubernetes-scripts\/master\/force-update-deployment \n[docker@docker-manager000 ~]$ chmod +x force-update-deployment\n[docker@docker-manager000 ~]$ .\/force-update-deployment coredns -n kube-system<\/pre>\n<p>Check now the status of the CoreDNS pods: <\/p>\n<pre class=\"brush: bash; gutter: true; first-line: 1\">[docker@docker-manager000 ~]$ kubectl get pods -o wide -n kube-system | grep coredns\ncoredns-7dc96b7db7-7ndwr                    1\/1     Running   0          35s   172.20.145.36   docker-worker000               \ncoredns-7dc96b7db7-v7wjg                    1\/1     Running   0          28s   172.20.123.27   docker-manager000              \ncoredns-7dc96b7db7-v9qcq                    1\/1     Running   0          35s   172.20.27.181   docker-worker001               <\/pre>\n<p>The script should redeploy a CoreDNS pod on all hosts. <\/p>\n<p>It may some times that the CoreDNS pods will not be redeployed in all hosts (some times 2 pods in the same host), in such case, execute again the script until 1 CoreDNS pod is deployed on each cluster nodes.<\/p>\n<p>The DNS resolution should now work properly within the entire cluster. Let&#8217;s verify it by replaying the DNS resolution test. <\/p>\n<p>Remove and redeploy the busybox deployment as follows:<\/p>\n<pre class=\"brush: bash; gutter: true; first-line: 1\">[docker@docker-manager000 ~]$ kubectl delete -f test-DNS.yaml\npod \"busybox\" deleted\n[docker@docker-manager000 ~]$ kubectl apply -f test-DNS.yaml\npod\/busybox created\n#Check pod status\n[docker@docker-manager000 ~]$ kubectl get pods -o wide\nNAME      READY   STATUS    RESTARTS   AGE   IP              NODE               NOMINATED NODE   READINESS GATES\nbusybox   1\/1     Running   0          13s   172.20.145.19   docker-worker000              <\/pre>\n<p>Once the pod is running we can execute a nslookup command to confirm that the DNS is properly working: <\/p>\n<pre class=\"brush: bash; gutter: true; first-line: 1\">[docker@docker-manager000 ~]$ kubectl exec -it busybox -- nslookup kubernetes.default\n\nServer:    172.21.0.10\nAddress 1: 172.21.0.10 kube-dns.kube-system.svc.cluster.local\n\nName:      kubernetes.default\nAddress 1: 172.21.0.1 kubernetes.default.svc.cluster.local<\/pre>\n<p>Now our internal cluster DNS is working well \ud83d\ude42 !!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>After installing your Kubernetes cluster composed by masters and workers, a few configurations steps need to complete. In fact, the join command is not the last operation to perform, in order to have a fully operational cluster. See how to deploy a k8s cluster using kubeadm here: https:\/\/www.dbi-services.com\/blog\/kubernetes-how-to-install-a-single-master-cluster-with-kubeadm\/ . One of the most important steps [&hellip;]<\/p>\n","protected":false},"author":109,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[1320,1504,1522],"tags":[1718,151,601,89],"type_dbi":[],"class_list":["post-12898","post","type-post","status-publish","format-standard","hentry","category-devops","category-docker","category-kubernetes","tag-coredns","tag-devops","tag-docker","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>Kubernetes DNS resolution using CoreDNS (force update deployment) - 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\/kubernetes-dns-resolution-using-coredns-force-update-deployment\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Kubernetes DNS resolution using CoreDNS (force update deployment)\" \/>\n<meta property=\"og:description\" content=\"After installing your Kubernetes cluster composed by masters and workers, a few configurations steps need to complete. In fact, the join command is not the last operation to perform, in order to have a fully operational cluster. See how to deploy a k8s cluster using kubeadm here: https:\/\/www.dbi-services.com\/blog\/kubernetes-how-to-install-a-single-master-cluster-with-kubeadm\/ . One of the most important steps [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.dbi-services.com\/blog\/kubernetes-dns-resolution-using-coredns-force-update-deployment\/\" \/>\n<meta property=\"og:site_name\" content=\"dbi Blog\" \/>\n<meta property=\"article:published_time\" content=\"2019-10-22T13:22:44+00:00\" \/>\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=\"6 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\/kubernetes-dns-resolution-using-coredns-force-update-deployment\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/kubernetes-dns-resolution-using-coredns-force-update-deployment\/\"},\"author\":{\"name\":\"DevOps\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/4cd1b5f8a3de93f05a16ab8d7d2b7735\"},\"headline\":\"Kubernetes DNS resolution using CoreDNS (force update deployment)\",\"datePublished\":\"2019-10-22T13:22:44+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/kubernetes-dns-resolution-using-coredns-force-update-deployment\/\"},\"wordCount\":611,\"commentCount\":0,\"keywords\":[\"coredns\",\"DevOps\",\"Docker\",\"kubernetes\"],\"articleSection\":[\"DevOps\",\"Docker\",\"Kubernetes\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.dbi-services.com\/blog\/kubernetes-dns-resolution-using-coredns-force-update-deployment\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/kubernetes-dns-resolution-using-coredns-force-update-deployment\/\",\"url\":\"https:\/\/www.dbi-services.com\/blog\/kubernetes-dns-resolution-using-coredns-force-update-deployment\/\",\"name\":\"Kubernetes DNS resolution using CoreDNS (force update deployment) - dbi Blog\",\"isPartOf\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#website\"},\"datePublished\":\"2019-10-22T13:22:44+00:00\",\"author\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/4cd1b5f8a3de93f05a16ab8d7d2b7735\"},\"breadcrumb\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/kubernetes-dns-resolution-using-coredns-force-update-deployment\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.dbi-services.com\/blog\/kubernetes-dns-resolution-using-coredns-force-update-deployment\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/kubernetes-dns-resolution-using-coredns-force-update-deployment\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Accueil\",\"item\":\"https:\/\/www.dbi-services.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Kubernetes DNS resolution using CoreDNS (force update deployment)\"}]},{\"@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":"Kubernetes DNS resolution using CoreDNS (force update deployment) - 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\/kubernetes-dns-resolution-using-coredns-force-update-deployment\/","og_locale":"en_US","og_type":"article","og_title":"Kubernetes DNS resolution using CoreDNS (force update deployment)","og_description":"After installing your Kubernetes cluster composed by masters and workers, a few configurations steps need to complete. In fact, the join command is not the last operation to perform, in order to have a fully operational cluster. See how to deploy a k8s cluster using kubeadm here: https:\/\/www.dbi-services.com\/blog\/kubernetes-how-to-install-a-single-master-cluster-with-kubeadm\/ . One of the most important steps [&hellip;]","og_url":"https:\/\/www.dbi-services.com\/blog\/kubernetes-dns-resolution-using-coredns-force-update-deployment\/","og_site_name":"dbi Blog","article_published_time":"2019-10-22T13:22:44+00:00","author":"DevOps","twitter_card":"summary_large_image","twitter_misc":{"Written by":"DevOps","Est. reading time":"6 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.dbi-services.com\/blog\/kubernetes-dns-resolution-using-coredns-force-update-deployment\/#article","isPartOf":{"@id":"https:\/\/www.dbi-services.com\/blog\/kubernetes-dns-resolution-using-coredns-force-update-deployment\/"},"author":{"name":"DevOps","@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/4cd1b5f8a3de93f05a16ab8d7d2b7735"},"headline":"Kubernetes DNS resolution using CoreDNS (force update deployment)","datePublished":"2019-10-22T13:22:44+00:00","mainEntityOfPage":{"@id":"https:\/\/www.dbi-services.com\/blog\/kubernetes-dns-resolution-using-coredns-force-update-deployment\/"},"wordCount":611,"commentCount":0,"keywords":["coredns","DevOps","Docker","kubernetes"],"articleSection":["DevOps","Docker","Kubernetes"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.dbi-services.com\/blog\/kubernetes-dns-resolution-using-coredns-force-update-deployment\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.dbi-services.com\/blog\/kubernetes-dns-resolution-using-coredns-force-update-deployment\/","url":"https:\/\/www.dbi-services.com\/blog\/kubernetes-dns-resolution-using-coredns-force-update-deployment\/","name":"Kubernetes DNS resolution using CoreDNS (force update deployment) - dbi Blog","isPartOf":{"@id":"https:\/\/www.dbi-services.com\/blog\/#website"},"datePublished":"2019-10-22T13:22:44+00:00","author":{"@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/4cd1b5f8a3de93f05a16ab8d7d2b7735"},"breadcrumb":{"@id":"https:\/\/www.dbi-services.com\/blog\/kubernetes-dns-resolution-using-coredns-force-update-deployment\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.dbi-services.com\/blog\/kubernetes-dns-resolution-using-coredns-force-update-deployment\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.dbi-services.com\/blog\/kubernetes-dns-resolution-using-coredns-force-update-deployment\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Accueil","item":"https:\/\/www.dbi-services.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Kubernetes DNS resolution using CoreDNS (force update deployment)"}]},{"@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\/12898","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=12898"}],"version-history":[{"count":0,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/12898\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/media?parent=12898"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/categories?post=12898"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/tags?post=12898"},{"taxonomy":"type","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/type_dbi?post=12898"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}