{"id":21118,"date":"2020-05-18T08:10:27","date_gmt":"2020-05-18T06:10:27","guid":{"rendered":"https:\/\/www.inovex.de\/blog\/?p=18666"},"modified":"2022-09-27T12:02:55","modified_gmt":"2022-09-27T10:02:55","slug":"testing-kubernetes-infrastructure","status":"publish","type":"post","link":"https:\/\/www.inovex.de\/de\/blog\/testing-kubernetes-infrastructure\/","title":{"rendered":"Testing Your Kubernetes Infrastructure"},"content":{"rendered":"<p>Automated tests in software development are widely regarded as an integral quality measure. In our experience, the same cannot be said for testing infrastructure. We believe that there is too little information on how to utilize and extend existing tools to test <a href=\"https:\/\/www.inovex.de\/de\/leistungen\/cloud\/kubernetes\/\">Kubernetes<\/a> clusters, so we&#8217;ll share our experiences in this article.<!--more--><\/p>\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_83 counter-hierarchy ez-toc-counter ez-toc-custom ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\"><p class=\"ez-toc-title\" style=\"cursor:inherit\"><\/p>\n<\/div><nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/www.inovex.de\/de\/blog\/testing-kubernetes-infrastructure\/#Introduction-Why-Test\" >Introduction: Why Test?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/www.inovex.de\/de\/blog\/testing-kubernetes-infrastructure\/#Conformance-Tests\" >Conformance Tests<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/www.inovex.de\/de\/blog\/testing-kubernetes-infrastructure\/#kubetest\" >kubetest<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/www.inovex.de\/de\/blog\/testing-kubernetes-infrastructure\/#Sonobuoy\" >Sonobuoy<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/www.inovex.de\/de\/blog\/testing-kubernetes-infrastructure\/#Write-Your-Own-e2e-Tests\" >Write Your Own e2e Tests<\/a><\/li><\/ul><\/nav><\/div>\n<h2><span class=\"ez-toc-section\" id=\"Introduction-Why-Test\"><\/span>Introduction: Why Test?<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>There are many good reasons to utilize automated cluster tests. Kubernetes is a very complex system composed of multiple (more or less) independent components. Their successful interplay in one configuration does not necessarily imply that they will work flawlessly in every Kubernetes setup.<\/p>\n<p>There are various ways of bootstrapping a Kubernetes cluster, either by using an installer such as kubeadm or kops or one of the other ways to set up a cluster. For each of these ways there are many configuration options, making no two setups look alike. Testing our clusters before users work on them ensures that our setup works as intended and in turn gives the users a valuable platform. Cluster setup is only the first step though, as Kubernetes updates are released frequently. Tests can aid here too, by verifying that basic cluster functionality is still available after an update. This leaves us with many ways our individual cluster could diverge from the setups tested by Kubernetes itself.<\/p>\n<p>Kubernetes is more than a platform, though, it\u2019s also a framework meant to be extended with plugins and add-ons. As such, no Kubernetes setup is necessarily intended to work the same way. Kubernetes\u2019 own tests don&#8217;t include plugins, so test coverage relies solely on the plugin-developer\u2019s tests. To ensure that our plugins do not interfere with each other or Kubernetes, we should also test them in our setups. This is especially true for plugins you&#8217;ve written yourself.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Conformance-Tests\"><\/span>Conformance Tests<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Kubernetes conformance tests are the subset of Kubernetes end-to-end (e2e) test cases for testing <a href=\"https:\/\/github.com\/kubernetes\/community\/blob\/master\/contributors\/devel\/sig-architecture\/conformance-tests.md#conformance-test-requirements\">core Kubernetes features<\/a>. More specifically they \u201ccurrently test only [Generally Available], non-optional features of APIs\u201c, <a href=\"https:\/\/github.com\/kubernetes\/community\/blob\/master\/contributors\/devel\/sig-architecture\/conformance-tests.md\">as stated by the responsible developer group<\/a>. A cluster that passes these tests is called conformant and can be certified as such by the <a href=\"https:\/\/github.com\/cncf\/k8s-conformance\">CNCF k8s Conformance Working Group<\/a>.<\/p>\n<p>Tested features currently include the ability to create API objects, launch containers on nodes and mount basic volumes as well as tests for kubectl. Not included are optional features such as Role Based Access Control, NetworkPolicy and PodSecurityPolicy. Plugins and add-ons are also mostly exempt from conformance tests, e.g. DNS is tested but networking using plugins such as Weave or Calico is only implicitly required by some tests. In the future plugins might also be tested via conformance test profiles, but for now they need to be tested separately.<\/p>\n<p>Their verification of basic cluster functionality nonetheless makes conformance tests an ideal starting point for testing our clusters. To run them, we can use a tool such as kubetest or sonobuoy.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"kubetest\"><\/span>kubetest<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p><a href=\"https:\/\/github.com\/kubernetes\/test-infra\/tree\/master\/kubetest\">Kubetest<\/a> is the CLI tool used in Kubernetes pipelines for running the e2e tests. As conformance tests are a subset of the e2e tests, you can use kubetest to run them on your cluster by filtering the tests to be run:<\/p>\n<pre class=\"lang:default decode:true\"># Install the latest version of kubetest\r\n\r\ngo get -u k8s.io\/test-infra\/kubetest\r\n\r\n# Tests need to match cluster version\r\n\r\nK8S_VERSION=$(kubectl version -o json | jq -r '.serverVersion.gitVersion')\r\n\r\n# Required for historic reasons\r\n\r\nexport KUBERNETES_CONFORMANCE_TEST=y\r\n\r\n# Needs to be set explicitly\r\n\r\nexport KUBECONFIG=\u201c$HOME\/.kube\/config\u201c\r\n\r\n# Actual run command, skeleton is the provider for existing clusters\r\n\r\nkubetest --provider=skeleton --test --test_args=\u201c--ginkgo.focus=\\[Conformance\\]\u201c --extract ${K8S_VERSION}<\/pre>\n<p>This runs all tests tagged with [Conformance] after downloading and extracting the required Kubernetes binaries for our cluster version. The test runtimes can also be shortened by running tests that support it in parallel:<\/p>\n<pre class=\"lang:default decode:true\">kubetest --provider=skeleton --test --ginkgo.parallel --test_args=\u201c--ginkgo.focus=\\[Conformance\\] --ginkgo.skip=\\[Serial\\]\u201c --extract ${K8S_VERSION}\r\n\r\nkubetest --provider=skeleton --test --test_args=\u201c--ginkgo.focus=\\[Serial\\].*\\[Conformance\\]\u201c --extract ${K8S_VERSION}\r\n\r\n<\/pre>\n<p>You can also run kubetest extract only once and then execute the tests from the Kubernetes directory to speed up subsequent runs. For debugging purposes you can also tell kubetest not to delete namespaces of failed tests:<\/p>\n<pre class=\"lang:default decode:true\">kubetest --provider=skeleton --test --test_args=\u201c--ginkgo.focus=\\[Conformance\\] --delete-namespace-on-failure=false\u201c --extract ${K8S_VERSION}<\/pre>\n<p>While highly customizable, kubetest is not necessarily intended for end-users, demonstrated by the flags being scarcely documented and often confusing. For simply running conformance tests, there is Sonobuoy by Heptio (now VM Ware), which simplifies this process.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Sonobuoy\"><\/span>Sonobuoy<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p><a href=\"https:\/\/github.com\/heptio\/sonobuoy\">Sonobuoy<\/a> is a diagnostic tool which can, amongst other things, run the Kubernetes conformance tests. It consists of a CLI which starts a pod managing the test run inside your cluster and lets you retrieve the results afterwards. It is a simple out-of-the-box solution and the <a href=\"https:\/\/github.com\/cncf\/k8s-conformance\/blob\/master\/instructions.md\">standard tool<\/a> for running the conformance tests. Sonobuoy comes with some customization options, such as providing custom repositories for test images, e.g when testing <a href=\"https:\/\/sonobuoy.io\/docs\/v0.56.10\/airgap\/\">air-gapped clusters<\/a>.<\/p>\n<p>We can also choose to run other tests of the e2e test suite with both kubetest and Sonobuoy to test some of our plugins. For example, if we want to use network policies in our cluster, we should probably test <a href=\"https:\/\/www.inovex.de\/blog\/test-kubernetes-network-policies\/\">whether they are enforced<\/a>. A basic test for this can be run with Sonobuoy like this:<\/p>\n<pre class=\"lang:default decode:true\"># run sonobuoy, overwriting its default skip and focus argument\r\n\r\nsonobuoy run --e2e-focus=\"\\[Feature:NetworkPolicy\\]\" --e2e-skip=\"\"<\/pre>\n<p>These tests create basic network policies and pods restricted by them and verify whether they are enforced in the cluster (note that they do not verify that the policies that exist in the cluster work as intended, to do so a tool such as <a href=\"https:\/\/github.com\/controlplaneio\/netassert\">netassert<\/a> or <a href=\"https:\/\/github.com\/inovex\/illuminatio\/\">illuminatio<\/a> can be used). Similar tests exist for other features.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Write-Your-Own-e2e-Tests\"><\/span>Write Your Own e2e Tests<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>You can also write your own e2e tests for your cluster setup. This is especially useful when running homegrown add-ons, as unit tests can hardly mimic the behaviour of a running Kubernetes cluster. To develop your tests in Golang you can re-use the e2e framework of Kubernetes itself, as <a href=\"https:\/\/kubernetes.io\/blog\/2019\/03\/22\/kubernetes-end-to-end-testing-for-everyone\/\">documented in this blog post<\/a>.<\/p>\n<p>If you use another programming language, you can still use the kubernetes client libraries, but you will have to write some boilerplate code yourself, e.g. for setting up and tearing down test namespaces. A unit-test framework such as pytest will still prove useful to separate the setup from your test cases and to run tests and collect results.<\/p>\n<p>Whether you just started your Kubernetes journey or you\u2019ve been running clusters in production for 5 years, we believe you should start testing those clusters now. Run Sonobuoy for conformance tests in your pipelines, start throwing in some e2e tests for the features you use and develop your own tests for that component that caused failures in your cluster one too many times. It will make operations easier and give you some peace of mind.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Automated tests in software development are widely regarded as an integral quality measure. In our experience, the same cannot be said for testing infrastructure. We believe that there is too little information on how to utilize and extend existing tools to test Kubernetes clusters, so we&#8217;ll share our experiences in this article.<\/p>\n","protected":false},"author":22,"featured_media":18909,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"ep_exclude_from_search":false,"footnotes":""},"tags":[71,66],"service":[432],"coauthors":[{"id":22,"display_name":"Johannes M. Scheuermann","user_nicename":"jscheuermann"},{"id":93,"display_name":"Maximilian Bischoff","user_nicename":"mbischoff"}],"class_list":["post-21118","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","tag-cloud","tag-devops","service-devops"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.6 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Testing Your Kubernetes Infrastructure - inovex GmbH<\/title>\n<meta name=\"description\" content=\"Automated tests in software development are regarded as an integral quality measure. In our experience, the same cannot be said for infrastructure tests. We believe that there is too little information on how to use and extend existing tools to test Kubernetes clusters, so we&#039;ll share our experiences in this article.\" \/>\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.inovex.de\/de\/blog\/testing-kubernetes-infrastructure\/\" \/>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Testing Your Kubernetes Infrastructure - inovex GmbH\" \/>\n<meta property=\"og:description\" content=\"Automated tests in software development are regarded as an integral quality measure. In our experience, the same cannot be said for infrastructure tests. We believe that there is too little information on how to use and extend existing tools to test Kubernetes clusters, so we&#039;ll share our experiences in this article.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.inovex.de\/de\/blog\/testing-kubernetes-infrastructure\/\" \/>\n<meta property=\"og:site_name\" content=\"inovex GmbH\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/inovexde\" \/>\n<meta property=\"article:published_time\" content=\"2020-05-18T06:10:27+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2022-09-27T10:02:55+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.inovex.de\/wp-content\/uploads\/2020\/05\/kubernetes-testing.gif\" \/>\n\t<meta property=\"og:image:width\" content=\"640\" \/>\n\t<meta property=\"og:image:height\" content=\"360\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/gif\" \/>\n<meta name=\"author\" content=\"Johannes M. Scheuermann, Maximilian Bischoff\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/www.inovex.de\/wp-content\/uploads\/2020\/05\/kubernetes-testing.gif\" \/>\n<meta name=\"twitter:creator\" content=\"@inovexgmbh\" \/>\n<meta name=\"twitter:site\" content=\"@inovexgmbh\" \/>\n<meta name=\"twitter:label1\" content=\"Verfasst von\" \/>\n\t<meta name=\"twitter:data1\" content=\"Johannes M. Scheuermann\" \/>\n\t<meta name=\"twitter:label2\" content=\"Gesch\u00e4tzte Lesezeit\" \/>\n\t<meta name=\"twitter:data2\" content=\"5\u00a0Minuten\" \/>\n\t<meta name=\"twitter:label3\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data3\" content=\"Johannes M. Scheuermann, Maximilian Bischoff\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/blog\\\/testing-kubernetes-infrastructure\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/blog\\\/testing-kubernetes-infrastructure\\\/\"},\"author\":{\"name\":\"Johannes M. Scheuermann\",\"@id\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/#\\\/schema\\\/person\\\/0bacb2c9ca9064212903a844e408fb12\"},\"headline\":\"Testing Your Kubernetes Infrastructure\",\"datePublished\":\"2020-05-18T06:10:27+00:00\",\"dateModified\":\"2022-09-27T10:02:55+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/blog\\\/testing-kubernetes-infrastructure\\\/\"},\"wordCount\":1022,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/blog\\\/testing-kubernetes-infrastructure\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.inovex.de\\\/wp-content\\\/uploads\\\/2020\\\/05\\\/kubernetes-testing.gif\",\"keywords\":[\"Cloud\",\"DevOps\"],\"articleSection\":[\"English Content\",\"General\",\"Infrastructure\"],\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.inovex.de\\\/de\\\/blog\\\/testing-kubernetes-infrastructure\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/blog\\\/testing-kubernetes-infrastructure\\\/\",\"url\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/blog\\\/testing-kubernetes-infrastructure\\\/\",\"name\":\"Testing Your Kubernetes Infrastructure - inovex GmbH\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/blog\\\/testing-kubernetes-infrastructure\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/blog\\\/testing-kubernetes-infrastructure\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.inovex.de\\\/wp-content\\\/uploads\\\/2020\\\/05\\\/kubernetes-testing.gif\",\"datePublished\":\"2020-05-18T06:10:27+00:00\",\"dateModified\":\"2022-09-27T10:02:55+00:00\",\"description\":\"Automated tests in software development are regarded as an integral quality measure. In our experience, the same cannot be said for infrastructure tests. We believe that there is too little information on how to use and extend existing tools to test Kubernetes clusters, so we'll share our experiences in this article.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/blog\\\/testing-kubernetes-infrastructure\\\/#breadcrumb\"},\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.inovex.de\\\/de\\\/blog\\\/testing-kubernetes-infrastructure\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/blog\\\/testing-kubernetes-infrastructure\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.inovex.de\\\/wp-content\\\/uploads\\\/2020\\\/05\\\/kubernetes-testing.gif\",\"contentUrl\":\"https:\\\/\\\/www.inovex.de\\\/wp-content\\\/uploads\\\/2020\\\/05\\\/kubernetes-testing.gif\",\"width\":640,\"height\":360,\"caption\":\"Gopher Testing Kubernetes\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/blog\\\/testing-kubernetes-infrastructure\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Testing Your Kubernetes Infrastructure\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/#website\",\"url\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/\",\"name\":\"inovex GmbH\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"de\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/#organization\",\"name\":\"inovex GmbH\",\"url\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/www.inovex.de\\\/wp-content\\\/uploads\\\/2021\\\/03\\\/inovex-logo-16-9-1.png\",\"contentUrl\":\"https:\\\/\\\/www.inovex.de\\\/wp-content\\\/uploads\\\/2021\\\/03\\\/inovex-logo-16-9-1.png\",\"width\":1921,\"height\":1081,\"caption\":\"inovex GmbH\"},\"image\":{\"@id\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/inovexde\",\"https:\\\/\\\/x.com\\\/inovexgmbh\",\"https:\\\/\\\/www.instagram.com\\\/inovexlife\\\/\",\"https:\\\/\\\/www.linkedin.com\\\/company\\\/inovex\",\"https:\\\/\\\/www.youtube.com\\\/channel\\\/UC7r66GT14hROB_RQsQBAQUQ\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/#\\\/schema\\\/person\\\/0bacb2c9ca9064212903a844e408fb12\",\"name\":\"Johannes M. Scheuermann\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/d3df0e3e0fa19f031fc539be1bd60a808d56719e4f9d367bf9b116ef6d653b1b?s=96&d=retro&r=gf922827beb705676e2040c1ecc2b6370\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/d3df0e3e0fa19f031fc539be1bd60a808d56719e4f9d367bf9b116ef6d653b1b?s=96&d=retro&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/d3df0e3e0fa19f031fc539be1bd60a808d56719e4f9d367bf9b116ef6d653b1b?s=96&d=retro&r=g\",\"caption\":\"Johannes M. Scheuermann\"},\"url\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/blog\\\/author\\\/jscheuermann\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Testing Your Kubernetes Infrastructure - inovex GmbH","description":"Automated tests in software development are regarded as an integral quality measure. In our experience, the same cannot be said for infrastructure tests. We believe that there is too little information on how to use and extend existing tools to test Kubernetes clusters, so we'll share our experiences in this article.","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.inovex.de\/de\/blog\/testing-kubernetes-infrastructure\/","og_locale":"de_DE","og_type":"article","og_title":"Testing Your Kubernetes Infrastructure - inovex GmbH","og_description":"Automated tests in software development are regarded as an integral quality measure. In our experience, the same cannot be said for infrastructure tests. We believe that there is too little information on how to use and extend existing tools to test Kubernetes clusters, so we'll share our experiences in this article.","og_url":"https:\/\/www.inovex.de\/de\/blog\/testing-kubernetes-infrastructure\/","og_site_name":"inovex GmbH","article_publisher":"https:\/\/www.facebook.com\/inovexde","article_published_time":"2020-05-18T06:10:27+00:00","article_modified_time":"2022-09-27T10:02:55+00:00","og_image":[{"width":640,"height":360,"url":"https:\/\/www.inovex.de\/wp-content\/uploads\/2020\/05\/kubernetes-testing.gif","type":"image\/gif"}],"author":"Johannes M. Scheuermann, Maximilian Bischoff","twitter_card":"summary_large_image","twitter_image":"https:\/\/www.inovex.de\/wp-content\/uploads\/2020\/05\/kubernetes-testing.gif","twitter_creator":"@inovexgmbh","twitter_site":"@inovexgmbh","twitter_misc":{"Verfasst von":"Johannes M. Scheuermann","Gesch\u00e4tzte Lesezeit":"5\u00a0Minuten","Written by":"Johannes M. Scheuermann, Maximilian Bischoff"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.inovex.de\/de\/blog\/testing-kubernetes-infrastructure\/#article","isPartOf":{"@id":"https:\/\/www.inovex.de\/de\/blog\/testing-kubernetes-infrastructure\/"},"author":{"name":"Johannes M. Scheuermann","@id":"https:\/\/www.inovex.de\/de\/#\/schema\/person\/0bacb2c9ca9064212903a844e408fb12"},"headline":"Testing Your Kubernetes Infrastructure","datePublished":"2020-05-18T06:10:27+00:00","dateModified":"2022-09-27T10:02:55+00:00","mainEntityOfPage":{"@id":"https:\/\/www.inovex.de\/de\/blog\/testing-kubernetes-infrastructure\/"},"wordCount":1022,"commentCount":0,"publisher":{"@id":"https:\/\/www.inovex.de\/de\/#organization"},"image":{"@id":"https:\/\/www.inovex.de\/de\/blog\/testing-kubernetes-infrastructure\/#primaryimage"},"thumbnailUrl":"https:\/\/www.inovex.de\/wp-content\/uploads\/2020\/05\/kubernetes-testing.gif","keywords":["Cloud","DevOps"],"articleSection":["English Content","General","Infrastructure"],"inLanguage":"de","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.inovex.de\/de\/blog\/testing-kubernetes-infrastructure\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.inovex.de\/de\/blog\/testing-kubernetes-infrastructure\/","url":"https:\/\/www.inovex.de\/de\/blog\/testing-kubernetes-infrastructure\/","name":"Testing Your Kubernetes Infrastructure - inovex GmbH","isPartOf":{"@id":"https:\/\/www.inovex.de\/de\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.inovex.de\/de\/blog\/testing-kubernetes-infrastructure\/#primaryimage"},"image":{"@id":"https:\/\/www.inovex.de\/de\/blog\/testing-kubernetes-infrastructure\/#primaryimage"},"thumbnailUrl":"https:\/\/www.inovex.de\/wp-content\/uploads\/2020\/05\/kubernetes-testing.gif","datePublished":"2020-05-18T06:10:27+00:00","dateModified":"2022-09-27T10:02:55+00:00","description":"Automated tests in software development are regarded as an integral quality measure. In our experience, the same cannot be said for infrastructure tests. We believe that there is too little information on how to use and extend existing tools to test Kubernetes clusters, so we'll share our experiences in this article.","breadcrumb":{"@id":"https:\/\/www.inovex.de\/de\/blog\/testing-kubernetes-infrastructure\/#breadcrumb"},"inLanguage":"de","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.inovex.de\/de\/blog\/testing-kubernetes-infrastructure\/"]}]},{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/www.inovex.de\/de\/blog\/testing-kubernetes-infrastructure\/#primaryimage","url":"https:\/\/www.inovex.de\/wp-content\/uploads\/2020\/05\/kubernetes-testing.gif","contentUrl":"https:\/\/www.inovex.de\/wp-content\/uploads\/2020\/05\/kubernetes-testing.gif","width":640,"height":360,"caption":"Gopher Testing Kubernetes"},{"@type":"BreadcrumbList","@id":"https:\/\/www.inovex.de\/de\/blog\/testing-kubernetes-infrastructure\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.inovex.de\/de\/"},{"@type":"ListItem","position":2,"name":"Testing Your Kubernetes Infrastructure"}]},{"@type":"WebSite","@id":"https:\/\/www.inovex.de\/de\/#website","url":"https:\/\/www.inovex.de\/de\/","name":"inovex GmbH","description":"","publisher":{"@id":"https:\/\/www.inovex.de\/de\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.inovex.de\/de\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"de"},{"@type":"Organization","@id":"https:\/\/www.inovex.de\/de\/#organization","name":"inovex GmbH","url":"https:\/\/www.inovex.de\/de\/","logo":{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/www.inovex.de\/de\/#\/schema\/logo\/image\/","url":"https:\/\/www.inovex.de\/wp-content\/uploads\/2021\/03\/inovex-logo-16-9-1.png","contentUrl":"https:\/\/www.inovex.de\/wp-content\/uploads\/2021\/03\/inovex-logo-16-9-1.png","width":1921,"height":1081,"caption":"inovex GmbH"},"image":{"@id":"https:\/\/www.inovex.de\/de\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/inovexde","https:\/\/x.com\/inovexgmbh","https:\/\/www.instagram.com\/inovexlife\/","https:\/\/www.linkedin.com\/company\/inovex","https:\/\/www.youtube.com\/channel\/UC7r66GT14hROB_RQsQBAQUQ"]},{"@type":"Person","@id":"https:\/\/www.inovex.de\/de\/#\/schema\/person\/0bacb2c9ca9064212903a844e408fb12","name":"Johannes M. Scheuermann","image":{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/secure.gravatar.com\/avatar\/d3df0e3e0fa19f031fc539be1bd60a808d56719e4f9d367bf9b116ef6d653b1b?s=96&d=retro&r=gf922827beb705676e2040c1ecc2b6370","url":"https:\/\/secure.gravatar.com\/avatar\/d3df0e3e0fa19f031fc539be1bd60a808d56719e4f9d367bf9b116ef6d653b1b?s=96&d=retro&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/d3df0e3e0fa19f031fc539be1bd60a808d56719e4f9d367bf9b116ef6d653b1b?s=96&d=retro&r=g","caption":"Johannes M. Scheuermann"},"url":"https:\/\/www.inovex.de\/de\/blog\/author\/jscheuermann\/"}]}},"_links":{"self":[{"href":"https:\/\/www.inovex.de\/de\/wp-json\/wp\/v2\/posts\/21118","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.inovex.de\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.inovex.de\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.inovex.de\/de\/wp-json\/wp\/v2\/users\/22"}],"replies":[{"embeddable":true,"href":"https:\/\/www.inovex.de\/de\/wp-json\/wp\/v2\/comments?post=21118"}],"version-history":[{"count":2,"href":"https:\/\/www.inovex.de\/de\/wp-json\/wp\/v2\/posts\/21118\/revisions"}],"predecessor-version":[{"id":38560,"href":"https:\/\/www.inovex.de\/de\/wp-json\/wp\/v2\/posts\/21118\/revisions\/38560"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.inovex.de\/de\/wp-json\/wp\/v2\/media\/18909"}],"wp:attachment":[{"href":"https:\/\/www.inovex.de\/de\/wp-json\/wp\/v2\/media?parent=21118"}],"wp:term":[{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.inovex.de\/de\/wp-json\/wp\/v2\/tags?post=21118"},{"taxonomy":"service","embeddable":true,"href":"https:\/\/www.inovex.de\/de\/wp-json\/wp\/v2\/service?post=21118"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.inovex.de\/de\/wp-json\/wp\/v2\/coauthors?post=21118"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}