<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>Containers on Benny Simmonds</title>
    <link>https://www.bencode.io/tags/containers/</link>
    <description>Recent content in Containers on Benny Simmonds</description>
    <generator>Hugo -- 0.149.1</generator>
    <language>en-us</language>
    <lastBuildDate>Fri, 22 Dec 2023 21:45:20 +0000</lastBuildDate>
    <atom:link href="https://www.bencode.io/tags/containers/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Kubernetes Certified Administrator (CKA) 2024</title>
      <link>https://www.bencode.io/posts/cka/</link>
      <pubDate>Fri, 22 Dec 2023 20:11:30 +0000</pubDate>
      <guid>https://www.bencode.io/posts/cka/</guid>
      <description>&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;#cka-topics&#34;&gt;CKA topics&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#kubernetes-in-a-nutshell&#34;&gt;Kubernetes in a nutshell&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#lab-environment&#34;&gt;Lab environment&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;#kubeadm-init-sample-output&#34;&gt;kubeadm init sample output&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#buliding-kubernetes-clusters&#34;&gt;Buliding kubernetes clusters&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;#networking&#34;&gt;Networking&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#kubeadm&#34;&gt;kubeadm&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#kubectl&#34;&gt;kubectl&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;#contexts&#34;&gt;Contexts&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#resources&#34;&gt;Resources&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;cka-topics&#34;&gt;CKA topics&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;Cluster Architecture, Installation &amp;amp; Configuration: How to set up and configure a Kubernetes cluster, including how to install and configure a Kubernetes cluster using &lt;code&gt;kubeadm&lt;/code&gt;, how to upgrade your cluster version, how to backup and restore an &lt;code&gt;etcd&lt;/code&gt; cluster, and how to configure a pod to use secrets&lt;/li&gt;
&lt;li&gt;Workloads &amp;amp; Scheduling: How to deploy a Kubernetes application, create daemonsets, scale the application, configure health checks, use multi-container pods, and use config maps and secrets in a pod. You&amp;rsquo;ll also need to know how to expose your application using services&lt;/li&gt;
&lt;li&gt;Services &amp;amp; Networking: How to expose applications within the cluster or outside the cluster, how to manage networking policies, and how to configure ingress controllers&lt;/li&gt;
&lt;li&gt;Storage: How to create and configure persistent volumes, how to create and configure persistent volume claims, and how to expand persistent volumes&lt;/li&gt;
&lt;li&gt;Troubleshooting: How to troubleshoot common issues in a Kubernetes environment, including how to diagnose and resolve issues with pods, nodes, and network traffic&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&#34;kubernetes-in-a-nutshell&#34;&gt;Kubernetes in a nutshell&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Control plane&lt;/strong&gt; management components that mother-hen nodes and pods. Key components:&lt;/p&gt;</description>
    </item>
    <item>
      <title>React environment variables in an nginx container</title>
      <link>https://www.bencode.io/posts/react-build/</link>
      <pubDate>Sat, 21 Aug 2021 22:05:15 +0000</pubDate>
      <guid>https://www.bencode.io/posts/react-build/</guid>
      <description>&lt;p&gt;Your React app is ready to ship. Congratulations!&lt;/p&gt;
&lt;p&gt;Packaging for production is (and should) be different from your development configuration.&lt;/p&gt;
&lt;p&gt;In the case of &lt;a href=&#34;https://create-react-app.dev/&#34;&gt;Create React App&lt;/a&gt; the toolchain is rich, includes development productivity conveniences such as hot reloading, source maps and &lt;a href=&#34;https://create-react-app.dev/docs/adding-custom-environment-variables/&#34;&gt;custom environment variables&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;This toolchain is mind blowingly productive as you develop the app, &lt;code&gt;npm start&lt;/code&gt; and watch the magic unfold.&lt;/p&gt;
&lt;p&gt;At this point, its possible to put the React app one big (~1.7GB) happy container:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Kubernetes</title>
      <link>https://www.bencode.io/posts/k8s/</link>
      <pubDate>Tue, 18 Aug 2020 20:11:30 +0000</pubDate>
      <guid>https://www.bencode.io/posts/k8s/</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;The name Kubernetes originates from Greek, meaning helmsman or pilot.&lt;/p&gt;&lt;/blockquote&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;#terminology&#34;&gt;Terminology&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#essentials&#34;&gt;Essentials&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;#help&#34;&gt;Help&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#bash-kubectl-completion&#34;&gt;Bash kubectl completion&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#web-ui-dashboard&#34;&gt;Web UI dashboard&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#pods&#34;&gt;Pods&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;#creating-a-pod&#34;&gt;Creating a pod&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;#option-1-imperatively-with-the-cli&#34;&gt;Option 1: Imperatively with the CLI&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#option-2-declaratively-with-yaml&#34;&gt;Option 2: Declaratively with YAML&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#port-forwarding&#34;&gt;Port forwarding&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#managing-pods&#34;&gt;Managing pods&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#pod-health&#34;&gt;Pod Health&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#deployments-and-replicasets&#34;&gt;Deployments and ReplicaSets&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;#replicaset&#34;&gt;ReplicaSet&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#deployment&#34;&gt;Deployment&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#deployments-with-kubectl&#34;&gt;Deployments with kubectl&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#deployment-options&#34;&gt;Deployment Options&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;#rolling-updates&#34;&gt;Rolling updates&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#blue-green&#34;&gt;Blue Green&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#canary&#34;&gt;Canary&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#rollbacks&#34;&gt;Rollbacks&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#statefulsets&#34;&gt;StatefulSets&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#services&#34;&gt;Services&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;#service-types&#34;&gt;Service Types&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#port-forwarding-take-2&#34;&gt;Port forwarding take 2&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#services-yaml&#34;&gt;Services YAML&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;#nodeport-example&#34;&gt;NodePort example&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#externalname-example&#34;&gt;ExternalName example&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#testing-service-and-pod-with-curl&#34;&gt;Testing Service and Pod with curl&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#storage&#34;&gt;Storage&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;#volumes&#34;&gt;Volumes&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;#volume-types&#34;&gt;Volume Types&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#viewing-a-pods-volumes&#34;&gt;Viewing a Pods volumes&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#emptydir-volume-example&#34;&gt;emptyDir volume example&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#peristentvolumes-and-peristentvolumesclaims&#34;&gt;PeristentVolumes and PeristentVolumesClaims&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#storageclasses&#34;&gt;StorageClasses&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#managing-configuration-with-configmaps-and-secrets&#34;&gt;Managing configuration with ConfigMaps and Secrets&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;#defining-configmaps&#34;&gt;Defining ConfigMaps&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#consuming-configmaps&#34;&gt;Consuming ConfigMaps&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#secrets&#34;&gt;Secrets&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;#secret-best-practices&#34;&gt;Secret best practices&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#storing-secrets&#34;&gt;Storing Secrets&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#using-secrets&#34;&gt;Using Secrets&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;#secrets-as-environment-variables&#34;&gt;Secrets as environment variables&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#secrets-as-files&#34;&gt;Secrets as files&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#troubleshooting&#34;&gt;Troubleshooting&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;#logs&#34;&gt;Logs&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#configuration-verification&#34;&gt;Configuration verification&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#shell-into-pod-container&#34;&gt;Shell into Pod container&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#the-api&#34;&gt;The API&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#general-kubectl&#34;&gt;General kubectl&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#waaay-cool&#34;&gt;Waaay cool&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#samples&#34;&gt;Samples&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;#nodejs-app&#34;&gt;node.js app&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#microk8s&#34;&gt;microk8s&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;#shell-improvements&#34;&gt;Shell improvements&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#persistentvolume-storage-location&#34;&gt;PersistentVolume storage location&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#resources&#34;&gt;Resources&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h1 id=&#34;terminology&#34;&gt;Terminology&lt;/h1&gt;
&lt;p&gt;k8s is two concepts; the control plane and nodes.&lt;/p&gt;</description>
    </item>
    <item>
      <title>LXC (Lexy)</title>
      <link>https://www.bencode.io/posts/2018-01-18-lxc/</link>
      <pubDate>Thu, 18 Jan 2018 20:56:01 +0000</pubDate>
      <guid>https://www.bencode.io/posts/2018-01-18-lxc/</guid>
      <description>&lt;p&gt;Born in 2008, &lt;a href=&#34;https://linuxcontainers.org&#34;&gt;LXC&lt;/a&gt; (pronouced lexy) is a userspace interface for the Linux kernel containment features, that enables the creation and management of application containers.&lt;/p&gt;
&lt;p&gt;LXC leverages a number of kernel features to contain processes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Kernel namespaces (ipc, uts, mount, pid, network and user)&lt;/li&gt;
&lt;li&gt;Apparmor and SELinux profiles&lt;/li&gt;
&lt;li&gt;Seccomp policies&lt;/li&gt;
&lt;li&gt;Chroots (using pivot_root)&lt;/li&gt;
&lt;li&gt;Kernel capabilities&lt;/li&gt;
&lt;li&gt;CGroups (control groups)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;LXC containers are often considered as something in between a chroot and a full blown VM. The goal of LXC is to create an environment as close as possible to a standard Linux installation, without the need for a separate kernel.&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
