KubeWeekly #209

# The Headlines

KubeWeeklyは毎週Kubernetesに関する興味深いニュースを提供しています。（https://kubeweekly.io/ ）この記事は 2020/03/27に発行された [Kube Weekly #209](https://kubeweekly.io/2020/03/27/kubeweekly-209/)を読んで、感じたことをメモ的にまとめたものです。
私の勘違いや説明不足による誤解もあるかと思いますので、この記事読んで「おっ」と思ったらURLを辿って本文を確認してください。

(過去のKubeWeekly読書メモは[こちら](https://qiita.com/tags/kubeweekly))

※この記事は、[Z Lab](https://qiita.com/organizations/zlab)の業務の一環として作成したものです。


## Kubernetes 1.18: Fit & Finish
<table>
<tr>
  <td colspan="2"><a href="https://kubernetes.io/blog/2020/03/25/kubernetes-1-18-release-announcement/">Kubernetes 1.18: Fit & Finish</a></td>
</tr>
<tr>
  <td><img src="https://kubernetes.io//images/blog/2020-03-25-kubernetes-1.18-release-announcement/release-logo.png"></td>
  <td>Authors: Kubernetes 1.18 Release Team
We’re pleased to announce the delivery of Kubernetes 1.18, our first release of 2020! Kubernetes 1.18 consists of 38 enhancements: 15 enhancements are moving to stable, 11 enhancements in beta, and 12 enhancements in alpha.
Kubernetes 1.18 is a “fit and finish” release. Significant work has gone into improving beta and stable features to ensure users have a better experience. An equal effort has gone into adding new developments and exciting new features that promise to enhance the user experience even more.</td>
</tr>
</table>

Kubernetes 1.18がリリースされました。

メジャーなアップデートとしては

- NUMA環境でのCPUとデバイスを考慮する Topology ManagerがBetaに
- Serverside ApplyがBeta2に
- Ingressの機能拡張と、IngressClassの登場
- `kubectl alpha debug` コマンド
- Windows CSIサポートがAlphaに

が挙げられています。

他にも多くの機能がStableとなったリリースです。

## Kubernetes 1.18, with Jorge Alarcon

<table>
<tr>
  <td colspan="2"><a href="https://kubernetespodcast.com/episode/096-kubernetes-1.18/">Kubernetes 1.18, with Jorge Alarcon
</a></td>
</tr>
<tr>
  <td><img src="https://kubernetespodcast.com/_assets/images/Kubernetes-Podcast-Logo_1400x1400.png"></td>
</tr>
</table>

Kubernetes Podcast, 今回のゲストはリリースチームのリードである、 Jorge Alarcon.

# ICYMI: CNCF Webinars 

## CNCF Project Webinar: How to Migrate a MySQL Database to Vitess - Cloud Native Computing Foundation
<table>
<tr>
  <td colspan="2"><a href="https://www.cncf.io/webinars/how-to-migrate-a-mysql-database-to-vitess/">CNCF Project Webinar: How to Migrate a MySQL Database to Vitess - Cloud Native Computing Foundation</a></td>
</tr>
<tr>
  <td><img src="https://www.cncf.io/wp-content/uploads/2017/12/icon_cncf_twitter.png"></td>
  <td>Though starting off new projects on Vitess is generally a friction-free process, in a lot of cases, the need for horizontal sharding doesn’t become apparent until rapid growth has already...</td>
</tr>
</table>

MySQLからVitessに移行したケーススタディのWebinar

## CNCF Member Webinar: Lowering the Barrier to Kubernetes Proficiency - Navigating the Stormy Seas of Information Overload - Cloud Native Computing Foundation
<table>
<tr>
  <td colspan="2"><a href="https://www.cncf.io/webinars/lowering-the-barrier-to-k8s-proficiency-navigating-the-stormy-seas-of-information-overload/">CNCF Member Webinar: Lowering the Barrier to Kubernetes Proficiency - Navigating the Stormy Seas of Information Overload - Cloud Native Computing Foundation</a></td>
</tr>
<tr>
  <td><img src="https://www.cncf.io/wp-content/uploads/2017/12/icon_cncf_twitter.png"></td>
  <td>Kubernetes is an incredibly powerful platform. Companies of all shapes and sizes are embracing this powerful technology in a number of ways. The widespread adoption of Kubernetes is evidence of...</td>
</tr>
</table>

Kubernetes入門的なWebinar

# The Technical

## Anatomy of my Kubernetes Cluster
<table>
<tr>
  <td colspan="2"><a href="https://ttt.io/anatomy-of-my-kubernetes-cluster">Anatomy of my Kubernetes Cluster</a></td>
</tr>
<tr>
  <td><img src="https://ttt.io//static/f64a06215dd627d850abe53e07ad2687/eea4a/screen.jpg"></td>
  <td>A year ago, I decided I would build my own Kubernetes cluster. As a software engineer, I either use a local single-node Kubernetes cluster, or a remote multi-node cluster, to test my work on a daily basis. I wanted to have the benefits of both, that is being able to use a multi-node cluster, without any of the latencies you can experience while working with a remote environment.
</td>
</tr>
</table>

RaspberryPiで作られたkubernetesクラスタ。 電源もmasterから切れるようになっているらしく、auto-scalerと連動して電源をon-offできる
USBでNVMeが繋がってたりもしている。

## Writing Kubernetes network policies with Inspektor Gadget’s Network Policy Advisor | Kinvolk

<table>
<tr>
  <td colspan="2"><a href="https://kinvolk.io/blog/2020/03/writing-kubernetes-network-policies-with-inspektor-gadgets-network-policy-advisor/">Writing Kubernetes network policies with Inspektor Gadget’s Network Policy Advisor | Kinvolk</a></td>
</tr>
<tr>
  <td>Kinvolk</td>
</tr>
</table>

[Inspektor Gadget](https://github.com/kinvolk/inspektor-gadget) というKubernetesアプリ開発用の便利ツール集の中の1ツールである Network Policy Advisorの紹介。
これをデプロイした上で、しばらく対象アプリケーションを動かすことで、よさそうなNetworkPolicyを提案してくれる。

## Okteto Push - Your Code to Kubernetes in Seconds
<table>
<tr>
  <td colspan="2"><a href="https://okteto.com/blog/okteto-push-code-to-kubernetes-in-seconds/index.html">Okteto Push - Your Code to Kubernetes in Seconds</a></td>
</tr>
<tr>
  <td><img src="https://okteto.com/blog/okteto-push-code-to-kubernetes-in-seconds/cover.png"></td>
  <td>We’ve been talking to a lot of developers since we started building Okteto. Every team has very unique challenges, but one that came up pretty regularly was how long it takes to ship a line of code fr</td>
</tr>
</table>

OktetoというKubernetes as a Serviceに実装された Okteto Pushという新機能の紹介。
このコマンド一発で、ソースコードの変更をビルド・プッシュ・デプロイできるようです。

## Converting an Old MacBook Into an Always-On Personal Kubernetes Cluster
<table>
<tr>
  <td colspan="2"><a href="https://devopsdirective.com/posts/2020/03/always-on-minikube/">Converting an Old MacBook Into an Always-On Personal Kubernetes Cluster</a></td>
</tr>
<tr>
  <td><img src="https://devopsdirective.com//svg/menu.svg"></td>
  <td>TL;DR: I set up Minikube on an old (2012) MacBook Air and configured it to be able to connect from outside my home network so I would have an always-on Kubernetes cluster at home to experiment with.

Photo Attribution: flickr</td>
</tr>
</table>

古くなったMacBook AirにMinikubeでKubernetesクラスタを作った話。電力コストでみると月$1.44程度と試算しています。
勝手にスリープしないような設定、DDNSの設定などMacBook Air特有の設定も紹介されています。

## quality of service and oom in kubernetes
<table>
<tr>
  <td colspan="2"><a href="https://ops.tips/notes/kubelet-qos-and-oom">quality of service and oom in kubernetes</a></td>
</tr>
<tr>
  <td><img src="https://ops.tips/notes/-/images/notes.png"></td>
  <td>into the details of resource reservation and oom killing</td>
</tr>
</table>

KubernetesにおけるQoS Classの設定により実際に何が起きているのかをDeep Diveした記事。

## kubernetes secrets
<table>
<tr>
  <td colspan="2"><a href="https://ops.tips/notes/kuberntes-secrets">kubernetes secrets</a></td>
</tr>
<tr>
  <td><img src="https://ops.tips/notes/-/images/notes.png"></td>
  <td>exploring kubernetes secrets from the kubelet's perspective</td>
</tr>
</table>

KubernetesのSecretがどのようにetcdに格納され、そして各Podの環境変数、Volumeに晒されているのかをDeep Diveした記事

## Setting up a ProxySQL Sidecar Container - Percona Database Performance Blog
<table>
<tr>
  <td colspan="2"><a href="https://www.percona.com/blog/2020/03/23/setting-up-a-proxysql-sidecar-container/">Setting up a ProxySQL Sidecar Container - Percona Database Performance Blog</a></td>
</tr>
<tr>
  <td><img src="https://www.percona.com/blog/wp-content/uploads/2020/03/Setting-up-a-ProxySQL-Sidecar-Container.png"></td>
  <td>Setting up a ProxySQL sidecar container to manage connections in AWS ECS (Elastic Container Service).</td>
</tr>
</table>

AWS Auroraの最大接続数を超えないようにするためにPodのサイドカーとしてProxySQLを入れる話。
サイドカーの例はログなどがよく紹介されるが、クライアントサイドプロキシでも有用とのこと。

## OpenShift 4.4 OKD Bare Metal Install on VMWare Home Lab
<table>
<tr>
  <td colspan="2"><a href="https://medium.com/@craig_robinson/openshift-4-4-okd-bare-metal-install-on-vmware-home-lab-6841ce2d37eb">OpenShift 4.4 OKD Bare Metal Install on VMWare Home Lab</a></td>
</tr>
<tr>
  <td><img src="https://miro.medium.com/max/1200/1*PJgnuTw6P8rRoACzBJnNig.png"></td>
  <td>Let’s face it, the cloud is too expensive for OpenShift enthusiasts to set up a test OpenShift environment. Used hardware for a home lab…</td>
</tr>
</table>

OpenShift 4.4 OKDをおうちのベアメタルにインストールする話。
コンポーネントが多く手順がかなり長いが経験値は溜まりそうです。

## Building a TODO API in Golang with Kubernetes
<table>
<tr>
  <td colspan="2"><a href="https://levelup.gitconnected.com/building-a-todo-api-in-golang-with-kubernetes-1ec593f85029">Building a TODO API in Golang with Kubernetes</a></td>
</tr>
<tr>
  <td><img src="https://miro.medium.com/max/1200/1*WKKH0QyfhEAM2ImvQCQZUg.jpeg"></td>
  <td>This is post is aimed at newcomers to Kubernetes or Go who want to learn by building a practical REST API with SQL and Go.</td>
</tr>
</table>

Kubernetes上でうごくアプリケーションとしてTodoアプリを作るチュートリアル。
kubernetesは[k3d](https://github.com/rancher/k3d)で用意し、 Kubernetesアプリの管理として[arkade](https://get-arkade.dev/)を、 アプリケーションは OpenFaaSでデプロイしています。

OpenFaaSはアプリケーションの雛形も提供してくれるようで、本当に最低限のコーディングでTodoアプリが作れています。

## A Guide On The Installation Of Spinnaker in Kubernetes Clusters
<table>
<tr>
  <td colspan="2"><a href="https://www.magalix.com/blog/a-guide-on-the-installation-of-spinnaker-in-your-production-kubernetes-cluster">A Guide On The Installation Of Spinnaker in Kubernetes Clusters</a></td>
</tr>
<tr>
  <td><img src="https://www.magalix.com/hubfs/spinnker.png#keepProtocol"></td>
  <td>Spinnaker is a multi-cloud deployment tool for releasing applications with high velocity and reliability.</td>
</tr>
</table>

[Halyard](https://github.com/spinnaker/halyard)を使ってKubernetesクラスタにSpinnakerをインストールする方法。
GCPを使いGKE,BucketやIAMを活用している。

## A Primer: Continuous Integration and Continuous Delivery (CI/CD)
<table>
<tr>
  <td colspan="2"><a href="https://thenewstack.io/a-primer-continuous-integration-and-continuous-delivery-ci-cd/">A Primer: Continuous Integration and Continuous Delivery (CI/CD)</a></td>
</tr>
</table>

CI/CDについての紹介。これらがどのような問題を解決するのか？といったことが書かれている。

# The Editorial

## Threading the Needle on Kubernetes Complexity with AI-Powered Observability - DevOps.com
<table>
<tr>
  <td colspan="2"><a href="https://devops.com/threading-the-needle-on-kubernetes-complexity-with-ai-powered-observability/">Threading the Needle on Kubernetes Complexity with AI-Powered Observability - DevOps.com</a></td>
</tr>
<tr>
  <td><img src="https://devops.com/wp-content/uploads/2020/03/K8.1.jpg"></td>
  <td>If you run down the laundry list of major industries–transportation, retail, healthcare, automotive, financial services–you’ll see that the major players</td>
</tr>
</table>

Kubernetesの複雑なモニタリング問題をAIで解決する機運が高まっているという記事。

## A 'No-BS’ Checklist for Kubernetes - The New Stack
<table>
<tr>
  <td colspan="2"><a href="https://thenewstack.io/a-no-bs-checklist-for-kubernetes/">A 'No-BS’ Checklist for Kubernetes - The New Stack</a></td>
</tr>
</table>

Kubernetesを扱う上での必須のチェック項目。
IaaSはどうするか？ ログメトリクスはどうするか？ 認証・認可はどうするか？などなど、 Kubernetesを扱う人が考えるべき事項が網羅的に紹介されている。