raw container networking

Uncategorized
Ever want to learn more about raw Linux networking, e.g. under the Docker level? Here's a very clear explanation of veth devices and bridging and the other machinery Docker/Kubernetes uses to route container packets to/from the network: Container networking is simple
Read More

Study program for CKAD

Uncategorized
Recently I took the Certified Kubernetes Application Developer (CKAD). Here’s the study program I used. using my O’Reilly subscription I went through Ben Muschko’s prep course a couple times: course: https://learning.oreilly.com/learning-paths/learning-path-certified/9781492061021/ sample code https://github.com/bmuschko/ckad-prep also the Linux Foundation course LFD259 https://trainingportal.linuxfoundation.org/learn/course/kubernetes-for-developers-lfd259/ People on Reddit gave me valuable real-world info about the test. You only interact with the proctor via text window. It’s pretty intense. It’s a game of knowing which questions to spend your time on and when to punt and come back later. Be super organized! Lastly I worked through dgkanatsios exercises. These were very helpful! https://github.com/dgkanatsios/CKAD-exercises You have to be FAST. I wasn’t enough, I didn’t pass… Which is cool, I want my passing grade to mean something when I re-take it. If you study AND you’ve been…
Read More

2020 Status: Productive in a Pandemic

Uncategorized
2020 Status: Productive in a Pandemic In 2019, I worked with two companies, about 10 people. Then I started consulting. In 2020, I worked with fourteen companies, about 90 people! Projects lasted from two to six weeks. It was fun, if sometimes chaotic. Here are some... Lessons Learned Reach out for 1-on-1s with the Team Life as a consultant is measured video-meeting to video-meeting. A ton of acronyms and terms and ideas and people whirl around, to often float away never to be seen again. By establishing a clear relationship with individuals in the team, the team lead and your coworkers, it’s much easier to focus on what the project’s goals and objectives are, and your role in delivering value to the client. Take lots of notes with pen and…
Read More

Kubernetes: list available container images

Uncategorized
Question: how can I list available container images? I'm working with Kubernetes. My test container is just Nginx. I deployed image version 1.14.1, but I'm sure it's an old version. How can I programmatically tell which versions of Nginx are available? Once I have a another version, I can do an in-place update with "kubectl set image deploy/mydeploy nginx=nginx:1.16.0 --record=true", but I have to find the version first :) Answer #1: I don't know! Does Kubernetes have a "list images in repos" command I've missed? Answer #2: If I'm a human using Docker, I can use the DockerHub page https://hub.docker.com/_/nginx Answer #3: programmatically, here's how to do it in Docker. Oddly there's no command for this, but there _is_ a simple API we can abuse to get what we want:…
Read More

How To Succeed in Bash Programming

Uncategorized
I almost committed a sin and gave someone unsolicited advice on Twitter! :)For those of you working with Bash (or Sh) shell scripting, consider these two ideas:1) abandon Bash, it's very difficult to test and develop.2) otherwise: always use Strict Mode, it catches a huge ton of flaky bugs: http://redsymbol.net/articles/unofficial-bash-strict-mode/3) extra freebie: use Entr to do a very fast develop/test loop. This means you can save your script, have Shellcheck show you probable bugs, then run your script and get very rapid feedback. I should produce a screencast on this, in the meantime national treasure Julia Evans has a zine on the topic :) https://jvns.ca/blog/2020/06/28/entr/
Read More

Outcomes / Plans / Actions

Uncategorized
https://www.youtube.com/watch?v=FVEWdatM8Uk&t=707s This is a reaction to "What Will The Next 10 Years Of Continuous Delivery Look Like?" by Dave Farley and Jez Humble, linked above. I adore Jez's books including "Accelerate", so I was thrilled to find a video they posted recently as part of the DeliveryConf conference. In life (and production deployments) we want specific Outcomes, so we have Plans to get the outcomes, which are a series of Actions. Unfortunately there's gaps everywhere. Our Actions don't necessarily result in the Outcomes we want. Our Outcomes give us information -- but very little -- to apply to another round of Plans. And so forth.So if we can't plan our way to get what we want, what do we do?We do everything (have Outcomes, via Plans, which are a list…
Read More