<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Kubernetes on Sander Knape</title>
    <link>https://sanderknape.com/tags/kubernetes/</link>
    <description>Recent content in Kubernetes on Sander Knape</description>
    <generator>Hugo</generator>
    <language>en</language>
    <lastBuildDate>Mon, 23 May 2022 08:47:02 +0200</lastBuildDate>
    <atom:link href="https://sanderknape.com/tags/kubernetes/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Measure your golden signals with GKE Managed Prometheus and the nginx-ingress</title>
      <link>https://sanderknape.com/2022/05/measure-golden-signals-gke-managed-prometheus-nginx-ingress/</link>
      <pubDate>Mon, 23 May 2022 08:47:02 +0200</pubDate>
      <guid>https://sanderknape.com/2022/05/measure-golden-signals-gke-managed-prometheus-nginx-ingress/</guid>
      <description>&lt;p&gt;Getting started with setting up proper monitoring dashboards for your application and infrastructure can be challenging. Where to begin? My typical answer to such a question would be to start with the &amp;ldquo;Golden Signals&amp;rdquo;. This blog post will dive into the golden signals and share how you can get started with these signals in Google Cloud using Managed Prometheus and the nginx-ingress controller.&lt;/p&gt;&#xA;&lt;h2 id=&#34;the-golden-signals&#34; class=&#34;relative group&#34;&gt;The Golden Signals &lt;span class=&#34;absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100&#34;&gt;&lt;a class=&#34;group-hover:text-primary-300 dark:group-hover:text-neutral-700&#34; style=&#34;text-decoration-line: none !important;&#34; href=&#34;#the-golden-signals&#34; aria-label=&#34;Anchor&#34;&gt;#&lt;/a&gt;&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;The four golden signals - &lt;a href=&#34;https://sre.google/sre-book/monitoring-distributed-systems/#xref_monitoring_golden-signals&#34; target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;coined by the Google SRE book&lt;/a&gt; - can be considered a guide as to what &lt;em&gt;at least&lt;/em&gt; to monitor for your applications. The golden signals are:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Running self-hosted GitHub Actions runners in your Kubernetes cluster</title>
      <link>https://sanderknape.com/2020/03/self-hosted-github-actions-runner-kubernetes/</link>
      <pubDate>Mon, 16 Mar 2020 09:23:33 +0200</pubDate>
      <guid>https://sanderknape.com/2020/03/self-hosted-github-actions-runner-kubernetes/</guid>
      <description>&lt;p&gt;Last year November GitHub released &lt;a href=&#34;https://github.com/features/actions&#34; target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;GitHub Actions&lt;/a&gt;, a CI/CD solution build on top of GitHub&amp;rsquo;s Source Code Management. GitHub Actions is very convenient to use when your source code is already stored in GitHub as no additional tool is required for your CI/CD requirements. This blog is for example updated through a &lt;a href=&#34;https://github.com/SanderKnape/blog/blob/master/.github/workflows/publish.yml&#34; target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;GitHub Actions workflow&lt;/a&gt; whenever I push an update to my GitHub repository (like I just did with this post).&lt;/p&gt;&#xA;&lt;p&gt;Earlier this year GitHub released support for &lt;a href=&#34;https://help.github.com/en/actions/hosting-your-own-runners/about-self-hosted-runners&#34; target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;self-hosted runners&lt;/a&gt;. These runners run in your own infrastructure which has several advantages. Especially useful is the fact that these runners can access any private resources in your infrastructure such as staging environments for automated testing or secret/artifact management solutions not exposed publicly.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Improving Kubernetes deployments with Helm</title>
      <link>https://sanderknape.com/2019/03/improving-kubernetes-deployments-helm/</link>
      <pubDate>Fri, 15 Mar 2019 22:47:02 +0200</pubDate>
      <guid>https://sanderknape.com/2019/03/improving-kubernetes-deployments-helm/</guid>
      <description>&lt;p&gt;I recently blogged about &lt;a href=&#34;https://sanderknape.com/2019/02/automated-deployments-kubernetes-gitlab/&#34; target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;automated deployments to Kubernetes using GitLab&lt;/a&gt;. One of the steps required when automating deployments is replacing the Docker tag with the correct value in the Kubernetes Deployment. In that blog post, this looks like the following:&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;deployment.yaml&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;apiVersion&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;apps/v1&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;kind&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;Deployment&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;metadata&lt;/span&gt;:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  [&lt;span style=&#34;color:#ae81ff&#34;&gt;...]&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;spec&lt;/span&gt;:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#f92672&#34;&gt;template&lt;/span&gt;:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#f92672&#34;&gt;spec&lt;/span&gt;:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      &lt;span style=&#34;color:#f92672&#34;&gt;containers&lt;/span&gt;:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;          &lt;span style=&#34;color:#f92672&#34;&gt;image&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;sanderknape/go-hello-world:&amp;lt;VERSION&amp;gt;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  [&lt;span style=&#34;color:#ae81ff&#34;&gt;...]&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;The &lt;code&gt;&amp;lt;VERSION&amp;gt;&lt;/code&gt; string is then replaced in the GitLab pipeline as follows:&lt;/p&gt;&#xA;&lt;p&gt;&lt;code&gt;sed -i &amp;quot;s/&amp;lt;VERSION&amp;gt;/${CI_COMMIT_SHORT_SHA}/g&amp;quot; deployment.yaml&lt;/code&gt;&lt;/p&gt;&#xA;&lt;p&gt;This grabs the short SHA hash of the current Git commit that is checked out. Earlier in the pipeline, a Docker image has been built and tagged with that SHA, and pushed to a Docker registry.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Using Kubernetes Helm to push ConfigMap changes to your Deployments</title>
      <link>https://sanderknape.com/2019/03/kubernetes-helm-configmaps-changes-deployments/</link>
      <pubDate>Thu, 07 Mar 2019 08:47:02 +0200</pubDate>
      <guid>https://sanderknape.com/2019/03/kubernetes-helm-configmaps-changes-deployments/</guid>
      <description>&lt;p&gt;In recent years Kubernetes has quickly gained a lot of popularity and it currently has huge momentum. Adoption is rising while at the same time, new users find out the areas where Kubernetes is still lacking.&lt;/p&gt;&#xA;&lt;p&gt;One such area is the lifecycle management of application configuration. The construct in Kubernetes to store such configuration is the &lt;a href=&#34;https://kubernetes.io/docs/tasks/configure-pod-container/configure-pod-configmap/&#34; target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;ConfigMap&lt;/a&gt;. These ConfigMaps can be referenced from Pods or Deployments and the values can be injected to the container using environment variables or files through volumes.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Automated deployments to Kubernetes with GitLab</title>
      <link>https://sanderknape.com/2019/02/automated-deployments-kubernetes-gitlab/</link>
      <pubDate>Thu, 28 Feb 2019 13:47:02 +0200</pubDate>
      <guid>https://sanderknape.com/2019/02/automated-deployments-kubernetes-gitlab/</guid>
      <description>&lt;p&gt;In this blog post we&amp;rsquo;ll go through the steps of creating an automated deployment pipeline for Kubernetes using GitLab. In the end we&amp;rsquo;ll have a simple Go application running that very excitingly returns &amp;ldquo;Hello, World!&amp;rdquo;.&lt;/p&gt;&#xA;&lt;h1 id=&#34;prerequisites&#34; class=&#34;relative group&#34;&gt;Prerequisites &lt;span class=&#34;absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100&#34;&gt;&lt;a class=&#34;group-hover:text-primary-300 dark:group-hover:text-neutral-700&#34; style=&#34;text-decoration-line: none !important;&#34; href=&#34;#prerequisites&#34; aria-label=&#34;Anchor&#34;&gt;#&lt;/a&gt;&lt;/span&gt;&lt;/h1&gt;&lt;p&gt;Before we can begin our quest for automation, we&amp;rsquo;ll need to set up some tools. Many alternatives of course exist to the tools that I pick. Feel free to use any other option, but make sure to make any necessary changes if you are following along with this post.&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
