{"id":9302,"date":"2019-07-23T19:00:02","date_gmt":"2019-07-23T19:00:02","guid":{"rendered":"http:\/\/howk.de\/w1\/blog-get-started-with-kubernetes-using-python\/"},"modified":"2019-07-23T19:00:02","modified_gmt":"2019-07-23T19:00:02","slug":"blog-get-started-with-kubernetes-using-python","status":"publish","type":"post","link":"https:\/\/howk.de\/?p=9302","title":{"rendered":"Blog: Get started with Kubernetes (using Python)"},"content":{"rendered":"<p><strong>Author<\/strong>: Jason Haley (Independent Consultant)<\/p>\n<p>So, you know you want to run your application in Kubernetes but don\u2019t know where to start. Or maybe you\u2019re getting started but still don\u2019t know what you don\u2019t know. In this blog you\u2019ll walk through how to containerize an application and get it running in Kubernetes.<\/p>\n<p>This walk-through assumes you are a developer or at least comfortable with the command line (preferably bash shell).<\/p>\n<h2 id=\"what-we-ll-do\">What we\u2019ll do<\/h2>\n<ol>\n<li>Get the code and run the application locally<\/li>\n<li>Create an image and run the application in Docker<\/li>\n<li>Create a deployment and run the application in Kubernetes<\/li>\n<\/ol>\n<h2 id=\"prerequisites\">Prerequisites<\/h2>\n<ul>\n<li>A Kubernetes service &#8211; I&rsquo;m using <a href=\"https:\/\/www.docker.com\/products\/kubernetes\" target=\"_blank\">Docker Desktop with Kubernetes<\/a> in this walkthrough, but you can use one of the others. See <a href=\"https:\/\/kubernetes.io\/docs\/setup\/\" target=\"_blank\">Getting Started<\/a> for a full listing.<\/li>\n<li><a href=\"https:\/\/www.python.org\/\" target=\"_blank\">Python 3.7<\/a> installed<\/li>\n<li><a href=\"https:\/\/git-scm.com\/downloads\" target=\"_blank\">Git<\/a> installed<\/li>\n<\/ul>\n<h2 id=\"containerizing-an-application\">Containerizing an application<\/h2>\n<p>In this section you\u2019ll take some source code, verify it runs locally, and then create a Docker image of the application. The sample application used is a very simple Flask web application; if you want to test it locally, you\u2019ll need Python installed. Otherwise, you can skip to the &ldquo;Create a Dockerfile&rdquo; section.<\/p>\n<h3 id=\"get-the-application-code\">Get the application code<\/h3>\n<p>Use git to clone the repository to your local machine:<\/p>\n<pre><code>git clone https:\/\/github.com\/JasonHaley\/hello-python.git\n<\/code><\/pre>\n<p>Change to the app directory:<\/p>\n<pre><code>cd hello-python\/app\n<\/code><\/pre>\n<p>There are only two files in this directory. If you look at the main.py file, you\u2019ll see the application prints out a hello message. You can learn more about Flask on the <a href=\"http:\/\/flask.pocoo.org\/\" target=\"_blank\">Flask website<\/a>.<\/p>\n<pre><code>from flask import Flask\napp = Flask(__name__)\n@app.route(&quot;\/&quot;)\ndef hello():\nreturn &quot;Hello from Python!&quot;\nif __name__ == &quot;__main__&quot;:\napp.run(host='0.0.0.0')\n<\/code><\/pre>\n<p>The requirements.txt file contains the list of packages needed by the main.py and will be used by <a href=\"https:\/\/pip.pypa.io\/en\/stable\/\" target=\"_blank\">pip<\/a> to install the Flask library.<\/p>\n<blockquote>\n<p>Note: when you start writing more advanced Python, you&rsquo;ll find its not always recommended to use <code>pip install<\/code> and may want to use <code>virtualenv<\/code> (or <code>pyenv<\/code>) to install your dependencies in a virtual environment.<\/p>\n<h3 id=\"run-locally\">Run locally<\/h3>\n<p>Manually run the installer and application using the following commands:<\/p>\n<pre><code>pip install -r requirements.txt\npython main.py\n<\/code><\/pre>\n<p>This will start a development web server hosting your application, which you will be able to see by navigating to <a href=\"http:\/\/localhost:5000\" target=\"_blank\">http:\/\/localhost:5000<\/a>. Because port 5000 is the default port for the development server, we didn\u2019t need to specify it.<\/p>\n<h3 id=\"create-a-dockerfile\">Create a Dockerfile<\/h3>\n<p>Now that you have verified the source code works, the first step in containerizing the application is to create a Dockerfile.<\/p>\n<p>In the hello-python\/app directory, create a file named Dockerfile with the following contents and save it:<br \/>\n&#8220;`<br \/>\nFROM python:3.7<\/p>\n<\/blockquote>\n<p>RUN mkdir \/app<br \/>\nWORKDIR \/app<br \/>\nADD . \/app\/<br \/>\nRUN pip install -r requirements.txt<\/p>\n<p>EXPOSE 5000<br \/>\nCMD [&ldquo;python&rdquo;, &ldquo;\/app\/main.py&rdquo;]<\/p>\n<pre><code>\nThis file is a set of instructions Docker will use to build the image. For this simple application, Docker is going to:\n1. Get the official [Python Base Image](https:\/\/hub.docker.com\/_\/python\/) for version 3.7 from Docker Hub.\n2. In the image, create a directory named app.\n3. Set the working directory to that new app directory.\n4. Copy the local directory\u2019s contents to that new folder into the image.\n5. Run the pip installer (just like we did earlier) to pull the requirements into the image.\n6. Inform Docker the container listens on port 5000.\n7. Configure the starting command to use when the container starts.\n### Create an image\nAt your command line or shell, in the hello-python\/app directory, build the image with the following command:\n<\/code><\/pre>\n<p>docker build -f Dockerfile -t hello-python:latest .<\/p>\n<pre><code>\n&gt; Note: I'm using the :latest tag in this example, if you are not familiar with what it is you may want to read [Docker: The latest Confusion](https:\/\/container-solutions.com\/docker-latest-confusion\/).\nThis will perform those seven steps listed above and create the image. To verify the image was created, run the following command:\n<\/code><\/pre>\n<p>docker image ls<\/p>\n<pre><code>&lt;img src=&quot;\/images\/blog\/get-started-with-kubernetes-using-python\/docker-image-ls.png&quot; alt=&quot;Docker image listing&quot; \/&gt;\nThe application is now containerized, which means it can now run in Docker and Kubernetes!\n## Running in Docker\nBefore jumping into Kubernetes, let\u2019s verify it works in Docker.\nRun the following command to have Docker run the application in a container and map it to port 5001:\n<\/code><\/pre>\n<p>docker run -p 5001:5000 hello-python<\/p>\n<pre><code>Now navigate to http:\/\/localhost:5001, and you should see the \u201cHello form Python!\u201d message.\n### More info\n* [Get started with Docker](https:\/\/docs.docker.com\/get-started\/)\n* [Best practices for writing Dockerfiles](https:\/\/docs.docker.com\/develop\/develop-images\/dockerfile_best-practices\/)\n* [Docker Cheat Sheet](https:\/\/www.docker.com\/sites\/default\/files\/Docker_CheatSheet_08.09.2016_0.pdf) (pdf)\n## Running in Kubernetes\nYou are finally ready to get the application running in Kubernetes. Because you have a web application, you will create a service and a deployment.\nFirst verify your kubectl is configured. At the command line, type the following:\n<\/code><\/pre>\n<p>kubectl version<\/p>\n<pre><code>\nIf you don\u2019t see a reply with a Client and Server version, you\u2019ll need to [install](https:\/\/kubernetes.io\/docs\/tasks\/tools\/install-kubectl\/) and configure it.\nIf you are running on Windows or Mac, make sure it is using the Docker for Desktop context by running the following:\n<\/code><\/pre>\n<p>kubectl config use-context docker-for-desktop<\/p>\n<pre><code>\nNow you are working with Kubernetes! You can see the node by typing:\n<\/code><\/pre>\n<p>kubectl get nodes<\/p>\n<pre><code>\nNow let\u2019s have it run the application. Create a file named deployment.yaml and add the following contents to it and then save it:\n```yaml\napiVersion: v1\nkind: Service\nmetadata:\nname: hello-python-service\nspec:\nselector:\napp: hello-python\nports:\n- protocol: &quot;TCP&quot;\nport: 6000\ntargetPort: 5000\ntype: LoadBalancer\n---\napiVersion: apps\/v1\nkind: Deployment\nmetadata:\nname: hello-python\nspec:\nreplicas: 4\ntemplate:\nmetadata:\nlabels:\napp: hello-python\nspec:\ncontainers:\n- name: hello-python\nimage: hello-python:latest\nimagePullPolicy: Never\nports:\n- containerPort: 5000\n<\/code><\/pre>\n<p>This YAML file is the instructions to Kubernetes for what you want running. It is telling Kubernetes the following:<br \/>\n* You want a load-balanced service exposing port 6000<br \/>\n* You want four instances of the hello-python container running<\/p>\n<p>Use kubectl to send the YAML file to Kubernetes by running the following command:<\/p>\n<pre><code>kubectl apply -f deployment.yaml\n<\/code><\/pre>\n<p>You can see the pods are running if you execute the following command:<\/p>\n<pre><code>kubectl get pods\n<\/code><\/pre>\n<p><img decoding=\"async\" src=\"https:\/\/kubernetes.io\/images\/blog\/get-started-with-kubernetes-using-python\/kubectl-get-pods.png\" alt=\"Pod listing\" \/><\/p>\n<p>Now navigate to <a href=\"http:\/\/localhost:6000\" target=\"_blank\">http:\/\/localhost:6000<\/a>, and you should see the \u201cHello form Python!\u201d message.<\/p>\n<p>That\u2019s it! The application is now running in Kubernetes!<\/p>\n<h3 id=\"more-info\">More Info<\/h3>\n<ul>\n<li><a href=\"https:\/\/azure.microsoft.com\/en-us\/topic\/kubernetes\/\" target=\"_blank\">Learn Kubernetes Basics<\/a><\/li>\n<li><a href=\"https:\/\/kubernetes.io\/docs\/reference\/kubectl\/cheatsheet\/\" target=\"_blank\">kubectl Cheat Sheet<\/a><\/li>\n<li><a href=\"https:\/\/kubernetes.io\/docs\/reference\/kubectl\/docker-cli-to-kubectl\/\" target=\"_blank\">kubectl for Docker Users<\/a><\/li>\n<\/ul>\n<h2 id=\"summary\">Summary<\/h2>\n<p>In this walk-through, we containerized an application, and got it running in Docker and in Kubernetes. This simple application only scratches the surface of what\u2019s possible (and what you\u2019ll need to learn).<\/p>\n<h3 id=\"next-steps\">Next steps<\/h3>\n<p>If you are just getting started and this walk-through was useful to you, then the following resources should be good next steps for you to further expand your Kubernetes knowledge:<\/p>\n<ul>\n<li><a href=\"https:\/\/www.youtube.com\/watch?v=1xo-0gCVhTU\" target=\"_blank\">Introduction to Microservices, Docker, and Kubernetes<\/a> &#8211; 55-minute video by James Quigley\n<ul>\n<li>This is a great place to start because it provides more information than I could here.<\/li>\n<\/ul>\n<\/li>\n<li><a href=\"https:\/\/github.com\/PacktPublishing\/Containerize-your-Apps-with-Docker-and-Kubernetes\" target=\"_blank\">Containerize your Apps with Docker and Kubernetes<\/a> &#8211; free e-book by Dr Gabriel N Schenker\n<ul>\n<li>This is my favorite book on Docker and Kubernetes.<\/li>\n<\/ul>\n<\/li>\n<li><a href=\"https:\/\/aka.ms\/LearnKubernetes\" target=\"_blank\">Kubernetes Learning Path: 50 days from zero to hero with Kubernetes<\/a> &#8211; on Microsoft\u2019s site\n<ul>\n<li>This is a 10-page pdf that has tons of links to videos (with Brendan Burns), documentation sites, and a really good workshop for Azure Kubernetes Service.<br \/>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h2 id=\"how-to-enable-kubernetes-in-docker-desktop\">How to enable Kubernetes in Docker Desktop<\/h2>\n<p>Once you have Docker Desktop installed, open the Settings:<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/kubernetes.io\/images\/blog\/get-started-with-kubernetes-using-python\/docker-settings-menu.png\" alt=\"Docker settings menu\" \/><\/p>\n<p>Select the <strong>Kubernetes<\/strong> menu item on the left and verify that the <strong>Enable Kubernetes<\/strong> is checked. If it isn\u2019t, <strong>check it<\/strong> and click the <strong>Apply<\/strong> button at the bottom right:<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/kubernetes.io\/images\/blog\/get-started-with-kubernetes-using-python\/kubernetes-tab.png\" alt=\"Kubernetes tab\" \/><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Author: Jason Haley (Independent Consultant) So, you know you want to run your application in Kubernetes but don\u2019t know where to start. Or maybe you\u2019re getting started but still don\u2019t know what you don\u2019t know. In this blog you\u2019ll walk through how to containerize an application and get it running in Kubernetes. This walk-through assumes [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[13],"tags":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v21.9.1 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Blog: Get started with Kubernetes (using Python) - Howk IT-Dienstleistungen<\/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:\/\/howk.de\/?p=9302\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Blog: Get started with Kubernetes (using Python) - Howk IT-Dienstleistungen\" \/>\n<meta property=\"og:description\" content=\"Author: Jason Haley (Independent Consultant) So, you know you want to run your application in Kubernetes but don\u2019t know where to start. Or maybe you\u2019re getting started but still don\u2019t know what you don\u2019t know. In this blog you\u2019ll walk through how to containerize an application and get it running in Kubernetes. This walk-through assumes [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/howk.de\/?p=9302\" \/>\n<meta property=\"og:site_name\" content=\"Howk IT-Dienstleistungen\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/howk.de\" \/>\n<meta property=\"article:published_time\" content=\"2019-07-23T19:00:02+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/kubernetes.io\/images\/blog\/get-started-with-kubernetes-using-python\/kubectl-get-pods.png\" \/>\n<meta name=\"author\" content=\"admin\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"admin\" \/>\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:\/\/howk.de\/?p=9302#article\",\"isPartOf\":{\"@id\":\"https:\/\/howk.de\/?p=9302\"},\"author\":{\"name\":\"admin\",\"@id\":\"https:\/\/howk.de\/#\/schema\/person\/b029bd02d4f35dce869ef54c81a100c5\"},\"headline\":\"Blog: Get started with Kubernetes (using Python)\",\"datePublished\":\"2019-07-23T19:00:02+00:00\",\"dateModified\":\"2019-07-23T19:00:02+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/howk.de\/?p=9302\"},\"wordCount\":764,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/howk.de\/#organization\"},\"articleSection\":[\"Hi Tech\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/howk.de\/?p=9302#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/howk.de\/?p=9302\",\"url\":\"https:\/\/howk.de\/?p=9302\",\"name\":\"Blog: Get started with Kubernetes (using Python) - Howk IT-Dienstleistungen\",\"isPartOf\":{\"@id\":\"https:\/\/howk.de\/#website\"},\"datePublished\":\"2019-07-23T19:00:02+00:00\",\"dateModified\":\"2019-07-23T19:00:02+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/howk.de\/?p=9302#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/howk.de\/?p=9302\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/howk.de\/?p=9302#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/howk.de\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Blog: Get started with Kubernetes (using Python)\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/howk.de\/#website\",\"url\":\"https:\/\/howk.de\/\",\"name\":\"Howk IT-Dienstleistungen\",\"description\":\"Howk IT Services - Howk IT-Dienstleistungen\",\"publisher\":{\"@id\":\"https:\/\/howk.de\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/howk.de\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/howk.de\/#organization\",\"name\":\"HowK\",\"url\":\"https:\/\/howk.de\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/howk.de\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/howk.de\/w1\/wp-content\/uploads\/2013\/12\/howk-logo.png\",\"contentUrl\":\"https:\/\/howk.de\/w1\/wp-content\/uploads\/2013\/12\/howk-logo.png\",\"width\":170,\"height\":170,\"caption\":\"HowK\"},\"image\":{\"@id\":\"https:\/\/howk.de\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/howk.de\",\"http:\/\/de.linkedin.com\/in\/howkde\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/howk.de\/#\/schema\/person\/b029bd02d4f35dce869ef54c81a100c5\",\"name\":\"admin\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/howk.de\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/b5a20f4d07bca1b73f25cff58a1116c4?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/b5a20f4d07bca1b73f25cff58a1116c4?s=96&d=mm&r=g\",\"caption\":\"admin\"},\"url\":\"https:\/\/howk.de\/?author=1\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Blog: Get started with Kubernetes (using Python) - Howk IT-Dienstleistungen","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:\/\/howk.de\/?p=9302","og_locale":"en_US","og_type":"article","og_title":"Blog: Get started with Kubernetes (using Python) - Howk IT-Dienstleistungen","og_description":"Author: Jason Haley (Independent Consultant) So, you know you want to run your application in Kubernetes but don\u2019t know where to start. Or maybe you\u2019re getting started but still don\u2019t know what you don\u2019t know. In this blog you\u2019ll walk through how to containerize an application and get it running in Kubernetes. This walk-through assumes [&hellip;]","og_url":"https:\/\/howk.de\/?p=9302","og_site_name":"Howk IT-Dienstleistungen","article_publisher":"https:\/\/www.facebook.com\/howk.de","article_published_time":"2019-07-23T19:00:02+00:00","og_image":[{"url":"https:\/\/kubernetes.io\/images\/blog\/get-started-with-kubernetes-using-python\/kubectl-get-pods.png"}],"author":"admin","twitter_card":"summary_large_image","twitter_misc":{"Written by":"admin","Est. reading time":"6 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/howk.de\/?p=9302#article","isPartOf":{"@id":"https:\/\/howk.de\/?p=9302"},"author":{"name":"admin","@id":"https:\/\/howk.de\/#\/schema\/person\/b029bd02d4f35dce869ef54c81a100c5"},"headline":"Blog: Get started with Kubernetes (using Python)","datePublished":"2019-07-23T19:00:02+00:00","dateModified":"2019-07-23T19:00:02+00:00","mainEntityOfPage":{"@id":"https:\/\/howk.de\/?p=9302"},"wordCount":764,"commentCount":0,"publisher":{"@id":"https:\/\/howk.de\/#organization"},"articleSection":["Hi Tech"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/howk.de\/?p=9302#respond"]}]},{"@type":"WebPage","@id":"https:\/\/howk.de\/?p=9302","url":"https:\/\/howk.de\/?p=9302","name":"Blog: Get started with Kubernetes (using Python) - Howk IT-Dienstleistungen","isPartOf":{"@id":"https:\/\/howk.de\/#website"},"datePublished":"2019-07-23T19:00:02+00:00","dateModified":"2019-07-23T19:00:02+00:00","breadcrumb":{"@id":"https:\/\/howk.de\/?p=9302#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/howk.de\/?p=9302"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/howk.de\/?p=9302#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/howk.de\/"},{"@type":"ListItem","position":2,"name":"Blog: Get started with Kubernetes (using Python)"}]},{"@type":"WebSite","@id":"https:\/\/howk.de\/#website","url":"https:\/\/howk.de\/","name":"Howk IT-Dienstleistungen","description":"Howk IT Services - Howk IT-Dienstleistungen","publisher":{"@id":"https:\/\/howk.de\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/howk.de\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/howk.de\/#organization","name":"HowK","url":"https:\/\/howk.de\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/howk.de\/#\/schema\/logo\/image\/","url":"https:\/\/howk.de\/w1\/wp-content\/uploads\/2013\/12\/howk-logo.png","contentUrl":"https:\/\/howk.de\/w1\/wp-content\/uploads\/2013\/12\/howk-logo.png","width":170,"height":170,"caption":"HowK"},"image":{"@id":"https:\/\/howk.de\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/howk.de","http:\/\/de.linkedin.com\/in\/howkde"]},{"@type":"Person","@id":"https:\/\/howk.de\/#\/schema\/person\/b029bd02d4f35dce869ef54c81a100c5","name":"admin","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/howk.de\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/b5a20f4d07bca1b73f25cff58a1116c4?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/b5a20f4d07bca1b73f25cff58a1116c4?s=96&d=mm&r=g","caption":"admin"},"url":"https:\/\/howk.de\/?author=1"}]}},"_links":{"self":[{"href":"https:\/\/howk.de\/index.php?rest_route=\/wp\/v2\/posts\/9302"}],"collection":[{"href":"https:\/\/howk.de\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/howk.de\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/howk.de\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/howk.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=9302"}],"version-history":[{"count":0,"href":"https:\/\/howk.de\/index.php?rest_route=\/wp\/v2\/posts\/9302\/revisions"}],"wp:attachment":[{"href":"https:\/\/howk.de\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=9302"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/howk.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=9302"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/howk.de\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=9302"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}