<?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 Experiment, Fail, Learn, Repeat</title>
    <link>https://www.hairizuan.com/tags/kubernetes/</link>
    <description>Recent content in Kubernetes on Experiment, Fail, Learn, Repeat</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>en</language>
    <copyright>Copyright © 2026 Hairizuan Noorazman</copyright>
    <lastBuildDate>Fri, 26 Jun 2026 11:53:28 +0800</lastBuildDate><atom:link href="https://www.hairizuan.com/tags/kubernetes/index.xml" rel="self" type="application/rss+xml" />
    
    <item>
      <title>Deploying Agent Sandbox with gVisor and Memory Snapshots on GKE Standard</title>
      <link>https://www.hairizuan.com/deploying-agent-sandbox-with-gvisor-and-memory-snapshots-on-gke-standard/</link>
      <pubDate>Wed, 24 Jun 2026 00:00:00 +0000</pubDate>
      
      <guid>https://www.hairizuan.com/deploying-agent-sandbox-with-gvisor-and-memory-snapshots-on-gke-standard/</guid>
      <description>&lt;p&gt;Agent Sandbox provides a Kubernetes API for stateful, singleton, Pod-backed workloads. GKE can add a stronger gVisor isolation boundary and Pod Snapshots that preserve process memory and root filesystem changes.&lt;/p&gt;</description>
      
    </item>
    
    <item>
      <title>GKE as Gitlab Runner</title>
      <link>https://www.hairizuan.com/gke-as-gitlab-runner/</link>
      <pubDate>Tue, 08 Apr 2025 00:00:00 +0000</pubDate>
      
      <guid>https://www.hairizuan.com/gke-as-gitlab-runner/</guid>
      <description>&lt;p&gt;Part of my job involves me dealing with Gitlab on a daily basis. Gitlab is a complicated beast to handle and it took a while to get around the various features that the product offers. One of the offerings available is one where we can set an entire Kubernetes cluster as a potential target where we can then create containers and run tests on said cluster.&lt;/p&gt;</description>
      
    </item>
    
    <item>
      <title>Building a code assessment tool but in Kubernetes</title>
      <link>https://www.hairizuan.com/building-a-code-assessment-tool-but-in-kubernetes/</link>
      <pubDate>Sun, 10 Nov 2024 00:00:00 +0000</pubDate>
      
      <guid>https://www.hairizuan.com/building-a-code-assessment-tool-but-in-kubernetes/</guid>
      <description>&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://www.hairizuan.com/building-a-code-assessment-tool-but-in-kubernetes/#container-based-security-measures&#34; &gt;Container based security measures&lt;/a&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://www.hairizuan.com/building-a-code-assessment-tool-but-in-kubernetes/#smaller-images-for-code-execution-platform&#34; &gt;Smaller images for code execution platform&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://www.hairizuan.com/building-a-code-assessment-tool-but-in-kubernetes/#not-running-the-container-as-root&#34; &gt;Not running the container as root&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://www.hairizuan.com/building-a-code-assessment-tool-but-in-kubernetes/#kubernetes-related&#34; &gt;Kubernetes related&lt;/a&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://www.hairizuan.com/building-a-code-assessment-tool-but-in-kubernetes/#run-the-deployment-in-different-namespace&#34; &gt;Run the deployment in different namespace&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://www.hairizuan.com/building-a-code-assessment-tool-but-in-kubernetes/#setting-up-a-new-service-account-in-kubernetes&#34; &gt;Setting up a new Service account in kubernetes&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://www.hairizuan.com/building-a-code-assessment-tool-but-in-kubernetes/#ensuring-service-account-token-is-not-mounted-in-potentially-vulnerable-pods&#34; &gt;Ensuring service account token is not mounted in potentially vulnerable pods&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://www.hairizuan.com/building-a-code-assessment-tool-but-in-kubernetes/#ensuring-that-the-container-is-started-with-non-root-access&#34; &gt;Ensuring that the container is started with non-root access&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://www.hairizuan.com/building-a-code-assessment-tool-but-in-kubernetes/#ensuring-resource-limits-are-set&#34; &gt;Ensuring resource limits are set&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://www.hairizuan.com/building-a-code-assessment-tool-but-in-kubernetes/#set-security-context&#34; &gt;Set security context&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://www.hairizuan.com/building-a-code-assessment-tool-but-in-kubernetes/#setting-network-policy&#34; &gt;Setting network policy&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://www.hairizuan.com/building-a-code-assessment-tool-but-in-kubernetes/#using-a-stricter-seccompapparmor-profile&#34; &gt;Using a stricter seccomp/apparmor profile&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://www.hairizuan.com/building-a-code-assessment-tool-but-in-kubernetes/#tool-related&#34; &gt;Tool related&lt;/a&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://www.hairizuan.com/building-a-code-assessment-tool-but-in-kubernetes/#ensure-limited-logs-sniffed&#34; &gt;Ensure limited logs sniffed&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://www.hairizuan.com/building-a-code-assessment-tool-but-in-kubernetes/#ensure-that-there-is-a-time-limit-of-code-executions&#34; &gt;Ensure that there is a time limit of code executions&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://www.hairizuan.com/building-a-code-assessment-tool-but-in-kubernetes/#future-efforts&#34; &gt;Future efforts&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;I had previously attempted to build a code assessment tool in docker. That involves doing the following:&lt;/p&gt;</description>
      
    </item>
    
    <item>
      <title>Access Cloud SQL from Google Kubernetes Cluster without Cloud SQL Proxy</title>
      <link>https://www.hairizuan.com/access-cloud-sql-from-google-kubernetes-cluster-without-cloud-sql-proxy/</link>
      <pubDate>Wed, 20 Sep 2023 00:00:00 +0000</pubDate>
      
      <guid>https://www.hairizuan.com/access-cloud-sql-from-google-kubernetes-cluster-without-cloud-sql-proxy/</guid>
      <description>&lt;h2 class=&#34;relative group&#34;&gt;Introduction&#xA;    &lt;div id=&#34;introduction&#34; class=&#34;anchor&#34;&gt;&lt;/div&gt;&#xA;    &#xA;    &lt;span&#xA;        class=&#34;absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none&#34;&gt;&#xA;        &lt;a class=&#34;text-primary-300 dark:text-neutral-700 !no-underline&#34; href=&#34;#introduction&#34; aria-label=&#34;Anchor&#34;&gt;#&lt;/a&gt;&#xA;    &lt;/span&gt;&#xA;    &#xA;&lt;/h2&gt;&#xA;&lt;p&gt;Similar to my previous blog post, we would usually be connecting Google Kubernetes Engine (GKE) clusters to Cloud SQL databases by using the Cloud SQL Proxy. However, we can now use  Private Service Connect, which allows for private communication between different Google Cloud services, similar to how we did for connecting our application in Google Compute Engine (VM) to a Cloud SQL instance.&lt;/p&gt;</description>
      
    </item>
    
    <item>
      <title>Storing Helm in Docker Registries</title>
      <link>https://www.hairizuan.com/storing-helm-in-docker-registries/</link>
      <pubDate>Wed, 23 Aug 2023 00:00:00 +0000</pubDate>
      
      <guid>https://www.hairizuan.com/storing-helm-in-docker-registries/</guid>
      <description>&lt;p&gt;We can apparently now store helm charts in Docker registries - this was made available via helm commands since v3.8.0. &lt;a href=&#34;https://helm.sh/docs/topics/registries/&#34;  target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;https://helm.sh/docs/topics/registries/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;Now with that being available for use, we can now use it across a variety of storage mechanism (as compared in the past when the artifacts produced through it has to be managed in some of file system and would require some of index file to list all available helm charts available).&lt;/p&gt;</description>
      
    </item>
    
    <item>
      <title>Deploy Golang Apps that interact with headless service in Kubernetes</title>
      <link>https://www.hairizuan.com/deploy-golang-apps-that-interact-with-headless-service-in-kubernetes/</link>
      <pubDate>Wed, 12 Jul 2023 00:00:00 +0000</pubDate>
      
      <guid>https://www.hairizuan.com/deploy-golang-apps-that-interact-with-headless-service-in-kubernetes/</guid>
      <description>&lt;p&gt;In certain application scenarios - there is a need to have applications that need to do client side load balancing to a bunch of servers. Such cases are pretty rare - but we won&amp;rsquo;t be covering the exect reasons or scenarios or when these are needed. Instead, we will cover how we can do so with Golang applications in Kubernetes cluster.&lt;/p&gt;</description>
      
    </item>
    
    <item>
      <title>Running database migrations in Helm chart</title>
      <link>https://www.hairizuan.com/running-database-migrations-in-helm-chart/</link>
      <pubDate>Wed, 07 Jun 2023 00:00:00 +0000</pubDate>
      
      <guid>https://www.hairizuan.com/running-database-migrations-in-helm-chart/</guid>
      <description>&lt;p&gt;In many examples for helm charts, the general focus is on the &amp;ldquo;2nd&amp;rdquo; day operations of having applications running without too much issues. In the case for usual web developers, that would mean applications handled with kubernetes deployment objects which would run a set number of replicas (or handled via HPA) in the kubernetes cluster.&lt;/p&gt;</description>
      
    </item>
    
    <item>
      <title>Altering outputs of helm installations with post-renderer via kustomize</title>
      <link>https://www.hairizuan.com/altering-outputs-of-helm-installations-with-post-renderer-via-kustomize/</link>
      <pubDate>Wed, 24 May 2023 00:00:00 +0000</pubDate>
      
      <guid>https://www.hairizuan.com/altering-outputs-of-helm-installations-with-post-renderer-via-kustomize/</guid>
      <description>&lt;p&gt;When one thinks of Kubernetes and deploying stuff into Kubernetes, one of the usual ways to get such stuff into Kubernetes is through the use of Kubernetes manifest files. Kubernetes manifest files describe various different resources in Kubernetes cluster - some primary examples that are often used are &lt;code&gt;Deployment&lt;/code&gt;, &lt;code&gt;Configmap&lt;/code&gt;, &lt;code&gt;Secret&lt;/code&gt;, &lt;code&gt;Service&lt;/code&gt; and even &lt;code&gt;Ingress&lt;/code&gt; Kubernetes resources/objects.&lt;/p&gt;</description>
      
    </item>
    
    <item>
      <title>Updating configuration in Kubernetes pods managed via Helm</title>
      <link>https://www.hairizuan.com/updating-configuration-in-kubernetes-pods-managed-via-helm/</link>
      <pubDate>Wed, 17 May 2023 00:00:00 +0000</pubDate>
      
      <guid>https://www.hairizuan.com/updating-configuration-in-kubernetes-pods-managed-via-helm/</guid>
      <description>&lt;p&gt;When building an application, a common way to alter and set the running properties of the application is to use configuration files that could be written with JSON or Yaml files. This is the same even if the application is simply deployed in a Virtual Machine or even in a container within a Kubernetes Cluster. The general assumption is that the configuration file does not change that often - if the configuration files is to be change, the usual way to have the application conform to the new configuration file would be stop the currently running the application and start it once more.&lt;/p&gt;</description>
      
    </item>
    
    <item>
      <title>Running kubectl in a Kubernetes Pod</title>
      <link>https://www.hairizuan.com/running-kubectl-in-a-kubernetes-pod/</link>
      <pubDate>Wed, 12 Apr 2023 00:00:00 +0000</pubDate>
      
      <guid>https://www.hairizuan.com/running-kubectl-in-a-kubernetes-pod/</guid>
      <description>&lt;p&gt;I have a little side project at work where it somewhat requires me to allow a pod within a kubernetes cluster to access and query and manipulate resources in a Kubernetes cluster. This would provide some sort of special development environment within pod with the required capability to update the cluster. In order to do this, we need to add a bunch of roles, clusterroles and its bindings (essentially the RBAC system in Kubernetes) to allow the pod to access said resources&lt;/p&gt;</description>
      
    </item>
    
    <item>
      <title>Leader Election in Kubernetes via Kubernetes Configmaps and Leases</title>
      <link>https://www.hairizuan.com/leader-election-in-kubernetes-via-kubernetes-configmaps-and-leases/</link>
      <pubDate>Sun, 28 Aug 2022 00:00:00 +0000</pubDate>
      
      <guid>https://www.hairizuan.com/leader-election-in-kubernetes-via-kubernetes-configmaps-and-leases/</guid>
      <description>&lt;p&gt;The leader election mechanism is a somewhat complex thing to kind of code up for an application. There are various Golang libraries that assist with this but it would be nicer if there were mechanisms within the environment that the application operate in which can help with this. In the case for the Kubernetes ecosystem - we can actual rely on the fact of how Kubernetes would usually etcd that does this leader election dance on our behalf. If we can tap on this mechanism, we can avoid introducing this mess of a complexity within our application.&lt;/p&gt;</description>
      
    </item>
    
    <item>
      <title>Continuous Profiling of Applications in Kubernetes via Pyroscope</title>
      <link>https://www.hairizuan.com/continuous-profiling-of-applications-in-kubernetes-via-pyroscope/</link>
      <pubDate>Fri, 05 Aug 2022 00:00:00 +0000</pubDate>
      
      <guid>https://www.hairizuan.com/continuous-profiling-of-applications-in-kubernetes-via-pyroscope/</guid>
      <description>&lt;p&gt;The whole process of profiling an application is an attempt to identify hotspots within the application which consumes more resources or takes too much time - knowing this would allow us to identify how to further improve the code within the applications that we build in order to build applications that consume less resources or would respond better to external inputs. Profiling of an application is just another aspect to improve observability of application&amp;rsquo;s performance on top of the common usual tooling such as distributed traces, metrics and logs. Tools such as distributed traces, metrics and logs only can capture part of the picture of how an application performs within an environment but is different for profiling. Profiling would point out what is happening &amp;ldquo;internally&amp;rdquo; within the application such as amount of memory being allocated for particular functions, how much CPU time is being taken for a particular function, thereby providing even more visiblity to how the application works.&lt;/p&gt;</description>
      
    </item>
    
    <item>
      <title>Restricting connections between pods in a Kubernetes Cluster (Network Policy)</title>
      <link>https://www.hairizuan.com/restricting-connections-between-pods-in-a-kubernetes-cluster-network-policy/</link>
      <pubDate>Sun, 15 May 2022 00:00:00 +0000</pubDate>
      
      <guid>https://www.hairizuan.com/restricting-connections-between-pods-in-a-kubernetes-cluster-network-policy/</guid>
      <description>&lt;p&gt;There is an old adage from security land that we should restrict access to resources/assets as much as we can. Users and applications should only access items that they need to operate themselves. Following this line of thought, that would mean that if we are to deploy application in a Kubernetes Cluster, we should ensure that pods should only accept communication that they&amp;rsquo;ve explicitly declared as &amp;ldquo;required&amp;rdquo;. Is there a way to do so?&lt;/p&gt;</description>
      
    </item>
    
    <item>
      <title>Debugging Distroless Kubernetes Pods</title>
      <link>https://www.hairizuan.com/debugging-distroless-kubernetes-pods/</link>
      <pubDate>Fri, 15 Apr 2022 00:00:00 +0000</pubDate>
      
      <guid>https://www.hairizuan.com/debugging-distroless-kubernetes-pods/</guid>
      <description>&lt;p&gt;There is a trend of images that follow the philosophy of minimizing the size of image by removing almost everything out of image. This helps with getting image downloaded more quickly by kubelet into the nodes as well as possibly reducing the attack surface of the container even further (I suppose it&amp;rsquo;s harder to do things in a container if utilities like shell or bash don&amp;rsquo;t exist within it). You would probably see errors such as this for those containers that have somewhat remove the shell/bash:&lt;/p&gt;</description>
      
    </item>
    
    <item>
      <title>Devops Interview Questions</title>
      <link>https://www.hairizuan.com/devops-interview-questions/</link>
      <pubDate>Sun, 27 Feb 2022 00:00:00 +0000</pubDate>
      
      <guid>https://www.hairizuan.com/devops-interview-questions/</guid>
      <description>&lt;p&gt;This is a list of notes for possible interview questions with regards to devops roles. Interview questions for devops are particularly hard to cover since devops roles generally cover a broad range of topics and technologies. I will update this page as I see any interesting or &amp;ldquo;hard&amp;rdquo; questions to cover.&lt;/p&gt;</description>
      
    </item>
    
    <item>
      <title>Kubernetes Ingress for applications with branded links on GKE</title>
      <link>https://www.hairizuan.com/kubernetes-ingress-for-applications-with-branded-links-on-gke/</link>
      <pubDate>Sun, 13 Feb 2022 00:00:00 +0000</pubDate>
      
      <guid>https://www.hairizuan.com/kubernetes-ingress-for-applications-with-branded-links-on-gke/</guid>
      <description>&lt;p&gt;While dealing with branded links during my course of work, I kind of wondered how it can be tackled if I were to do it in a Google Kubernetes Engine Cluster. The situation I would imagine that would need to solve is this:&lt;/p&gt;</description>
      
    </item>
    
    <item>
      <title>App with Metrics, Logs and Distributed Traces</title>
      <link>https://www.hairizuan.com/app-with-metrics-logs-and-distributed-traces/</link>
      <pubDate>Wed, 29 Sep 2021 00:00:00 +0000</pubDate>
      
      <guid>https://www.hairizuan.com/app-with-metrics-logs-and-distributed-traces/</guid>
      <description>&lt;p&gt;In a previous post, it details some information of how to setup some open source tooling to capture logs, retrieve metrics as well as capture distributed trace information from apps. The previous blog post would cover the setup of logging system which is Loki, distributed tracing system which is Tempo and metrics collection system which is Prometheus. Refer to the link below here.&lt;/p&gt;</description>
      
    </item>
    
    <item>
      <title>Setting up Observability Tooling in GKE</title>
      <link>https://www.hairizuan.com/setting-up-observability-tooling-in-gke/</link>
      <pubDate>Wed, 01 Sep 2021 00:00:00 +0000</pubDate>
      
      <guid>https://www.hairizuan.com/setting-up-observability-tooling-in-gke/</guid>
      <description>&lt;p&gt;Generally, most cloud providers come along with all the observability tooling that you need for your apps built-in with the platform. Some of the common observability tools such as logging, monitoring and nowadays, distributed tracing are usually made available and you can easily use said tools by reading up on the various documentation of how to setup each of these tooling. E.g. if your application is inside a virtual machine and if you need collect metrics and logs from the application, you may need to install an agent in the said VM. The agent would collect those information and send it to the centralized observability tooling in the cloud provider where the information would be provided to you via a UI. Most of the time, these tools are charged based on the amount of logs/metrics you generate from the application (so the less logs/metrics you generate, the cheaper it is monitor your application - a very understanable/reasonable situation). In cases where if your application runs in Kubernetes, maybe the cluster comes with agents pre-installed, making it easier to make use of the logging/metrics/distributed tracing that the cloud provider has.&lt;/p&gt;</description>
      
    </item>
    
    <item>
      <title>Using Envoy for GRPC Applications in Kubernetes</title>
      <link>https://www.hairizuan.com/using-envoy-for-grpc-applications-in-kubernetes/</link>
      <pubDate>Thu, 15 Jul 2021 00:00:00 +0000</pubDate>
      
      <guid>https://www.hairizuan.com/using-envoy-for-grpc-applications-in-kubernetes/</guid>
      <description>&lt;p&gt;As of now, one of the common and easier way to have services communicate with each other would be over HTTP. In real world use cases, HTTPS is usually used (in order to ensure communications are secure) and this communication is done following some sort of REST framework. This provides some sort of structure of how to standardize such communications for the various software applications out there. It got to the point where entire companies are developing in order to support this: e.g. Apigee, SmartBear&lt;/p&gt;</description>
      
    </item>
    
    <item>
      <title>Python Flask Apps in Kubernetes</title>
      <link>https://www.hairizuan.com/python-flask-apps-in-kubernetes/</link>
      <pubDate>Sun, 18 Apr 2021 00:00:00 +0000</pubDate>
      
      <guid>https://www.hairizuan.com/python-flask-apps-in-kubernetes/</guid>
      <description>&lt;p&gt;This are some notes in the case where one wants to deploy a bunch of python &amp;ldquo;microservices&amp;rdquo; to a Google Kubernetes Engine cluster. These notes emphasize on the basics rather than the various nuances of running a &amp;ldquo;production&amp;rdquo; grade python application.&lt;/p&gt;</description>
      
    </item>
    
    <item>
      <title>Tripping over helm hooks</title>
      <link>https://www.hairizuan.com/tripping-over-helm-hooks/</link>
      <pubDate>Fri, 11 Sep 2020 00:00:00 +0000</pubDate>
      
      <guid>https://www.hairizuan.com/tripping-over-helm-hooks/</guid>
      <description>&lt;p&gt;One typical way to do packaging for applications that are to targeted to be deployed into a Kubernetes environment would be to utilize the helm tool. The helm tool has been used widely enough to the point that there are whole ecosystems that support the usage of this tool. Refer to the website for this here: &lt;a href=&#34;https://hub.helm.sh/&#34;  target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;https://hub.helm.sh/&lt;/a&gt;&lt;/p&gt;</description>
      
    </item>
    
    <item>
      <title>Attempting to understand CSI Kubernetes</title>
      <link>https://www.hairizuan.com/attempting-to-understand-csi-kubernetes/</link>
      <pubDate>Fri, 01 May 2020 00:00:00 +0000</pubDate>
      
      <guid>https://www.hairizuan.com/attempting-to-understand-csi-kubernetes/</guid>
      <description>&lt;p&gt;NOTE: THIS POST IS NOTES IM TAKING FOR MYSELF WHILE ON THIS JOURNEY. TAKE IT WITH A BAG OF SALT. NOT ALL THINGS MENTIONED HERE IS TRUE - DO YOUR OWN DUE DILIGENCE&lt;/p&gt;</description>
      
    </item>
    
    <item>
      <title>Trying Distributed Tracing with Jaeger</title>
      <link>https://www.hairizuan.com/trying-distributed-tracing-with-jaeger/</link>
      <pubDate>Sat, 04 Apr 2020 00:00:00 +0000</pubDate>
      
      <guid>https://www.hairizuan.com/trying-distributed-tracing-with-jaeger/</guid>
      <description>&lt;p&gt;Let&amp;rsquo;s say we have a set of applications that was designed to be a set of microservices. Each of the applications would generally be designed to be focused on one specific domain and in order to achieve the overall goal of the platform. However,for the platform to work properly, the applications would generally need to work together as one which would involve the application contacting each other.&lt;/p&gt;</description>
      
    </item>
    
    <item>
      <title>Attempting to setup Kubernetes on Ubuntu VMs</title>
      <link>https://www.hairizuan.com/attempting-to-setup-kubernetes-on-ubuntu-vms/</link>
      <pubDate>Wed, 05 Sep 2018 00:00:00 +0000</pubDate>
      
      <guid>https://www.hairizuan.com/attempting-to-setup-kubernetes-on-ubuntu-vms/</guid>
      <description>&lt;p&gt;This post details my naive attempt to bring up a Kubernetes cluster on a VM. These steps to try out Kubernetes in a bare Google Virtual Machine (but the following steps should work for most Debian/Ubuntu virtual machines). This deploys a single node Kubernetes cluster (naturally don&amp;rsquo;t think of using this for production)&lt;/p&gt;</description>
      
    </item>
    
    <item>
      <title>Trying out skaffold</title>
      <link>https://www.hairizuan.com/trying-out-skaffold/</link>
      <pubDate>Thu, 09 Aug 2018 00:00:00 +0000</pubDate>
      
      <guid>https://www.hairizuan.com/trying-out-skaffold/</guid>
      <description>&lt;p&gt;When developing application that are meant to be deployed to the Kubernetes platform, it involves a bunch of steps on top of your usual local development work:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Writing a Dockerfile to package the application (Multi stage applications are optional here - useful for compiled based languages)&lt;/li&gt;&#xA;&lt;li&gt;Build and tagging the docker image of the application with the target repository&lt;/li&gt;&#xA;&lt;li&gt;Either use &lt;code&gt;kubectl&lt;/code&gt; commands or use kubernetes config resource files to define the resources required for deploying the applications. Use those commands/configurations to define the resources on the staging/production application&lt;/li&gt;&#xA;&lt;li&gt;Repeat the process for each update of the application (Repeat second point onwards)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;As you see from above, it starts to be pain to do so after each iteration of the application development. The building of the docker containers process as well as the applying of the new images to each cluster, (sometimes with slightly changed configuration files) - the kubernetes secret and config files can change across different environments.&lt;/p&gt;</description>
      
    </item>
    
    <item>
      <title>Lessons from Kubecon/CloudNativeCon 2018 Europe</title>
      <link>https://www.hairizuan.com/lessons-from-kubecon/cloudnativecon-2018-europe/</link>
      <pubDate>Wed, 16 May 2018 00:00:00 +0000</pubDate>
      
      <guid>https://www.hairizuan.com/lessons-from-kubecon/cloudnativecon-2018-europe/</guid>
      <description>&lt;p&gt;The following set of summaries are from the Kubecon and Cloud Native Con Europe in Denmark from 2-4 May 2018.&lt;/p&gt;&#xA;&lt;p&gt;These summaries are from conference talks that I thought provided more interesting thinking points.&lt;/p&gt;</description>
      
    </item>
    
    <item>
      <title>Summaries from Fossasia conference in Singapore</title>
      <link>https://www.hairizuan.com/summaries-from-fossasia-conference-in-singapore/</link>
      <pubDate>Wed, 02 May 2018 00:00:00 +0000</pubDate>
      
      <guid>https://www.hairizuan.com/summaries-from-fossasia-conference-in-singapore/</guid>
      <description>&lt;p&gt;View the full list of Fossasia Video recordings on the [engineers.sg] website on this website: &lt;a href=&#34;https://engineers.sg/conference/fossasia-2018&#34;  target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;https://engineers.sg/conference/fossasia-2018&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;Here are some of the videos I particularly liked. I summarized some of the interesting points from said websites.&lt;/p&gt;</description>
      
    </item>
    
  </channel>
</rss>
