KubeWeekly #197

# KubeWeekly #197

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

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

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


# The Headlines

CNCFのTechnical Oversight Committee (TOC)の選挙が次の1月に行われます

詳細は下記。
[CNCF TOC Governance Structure + Elections 2020](https://www.cncf.io/blog/2019/12/06/cncf-toc-governance-structure-elections-2020/)
[FAQ for December 2019 TOC Nominations](https://www.cncf.io/blog/2019/12/13/faq-for-december-2019-toc-nominations/) 

## Kubernetes Knights at KubeCon ’19 - Cloud Native Computing Foundation
<table>
<tr>
  <td colspan="2"><a href="https://www.cncf.io/blog/2019/12/17/kubernetes-knights-at-kubecon-19/">Kubernetes Knights at KubeCon ’19 - 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>Guest blog by Pankaj Gupta from Citrix  KubeCon + CloudNativeCon San Diego 2019 was the place to take stock and ponder the progress being made with Kubernetes. It was also...</td>
</tr>
</table>

KubeCon NAのハイライトプレゼンテーションを印象的な数字とともにの紹介。

- 160,000 pods scale in production Ebay
- 1 million new containers a day Uber
- 450 new pods in the blink of an eye Uber
- 100,000 sidecars for service mesh Lyft
- 11,000 Walmart stores – Kubernetes moving to edge
- F-16 fighter jet soaring high with Kubernetes

# The Technical

## Falco Security Audit

<table>
<tr>
  <td colspan="2"><a href="https://falco.org/blog/falco-security-audit/">Falco Security Audit</a></td>
</tr>
<tr>
  <td><img src="https://falco.org//images/logos/falco-logo.png"></td>
</tr>
</table>

Falcoに対して行われたセキュリティ監査の結果について。3つの脆弱性（1つがCritical,2つがHigh）と、2つの些細な問題が見つかった。

## Kubernetes 101 - Cloud Native Computing Foundation
<table>
<tr>
  <td colspan="2"><a href="https://www.cncf.io/blog/2019/12/16/kubernetes-101/">Kubernetes 101 - 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>Guest post by Jef Spaleta, Sensu, originally published on the Sensu blog The appeal of running workloads in containers is intuitive and there are numerous reasons to do so. Shipping...</td>
</tr>
</table>

Kubernetesがなぜ必要なのか？Kubernetesとは何か？といった説明から始まり、手元でKubernetesをセットアップする手順や、そこに初めてのアプリケーションをデプロイする方法が紹介されている。

## Does Testing Kubernetes Conformance Leave You in the Dark? Get Progress Updates as Tests Run - Cloud Native Computing Foundation
<table>
<tr>
  <td colspan="2"><a href="https://www.cncf.io/blog/2019/12/13/does-testing-kubernetes-conformance-leave-you-in-the-dark-get-progress-updates-as-tests-run/">Does Testing Kubernetes Conformance Leave You in the Dark? Get Progress Updates as Tests Run - 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>Guest post originally published on Sonobuoy, by John Schnake In Sonobuoy 0.15.4, we introduced the ability for plugins to report their plugin’s progress to Sonobuoy by using a customizable webhook....</td>
</tr>
</table>

Kubernetesのテストに使われているSonobuoyの0.15.4に実装された、タスクの進捗を報告するためのプラグインについて紹介。

## Nodeless OpenFaaS with AWS EKS and Fargate
<table>
<tr>
  <td colspan="2"><a href="https://blog.alexellis.io/nodeless-openfaas-with-aws-eks-and-fargate/">Nodeless OpenFaaS with AWS EKS and Fargate</a></td>
</tr>
<tr>
  <td><img src="https://blog.alexellis.io//content/images/2019/12/logos.png"></td>
  <td>Learn how to apply AWS EKS, Fargate and OpenFaaS for the most serverless experience ever seen on Kubernetes. We'll need eksctl, k3sup and your AWS account.</td>
</tr>
</table>

AWS FargateをAWS EKSを使いNodeの管理をすることなくOpenFaaSを使うチュートリアル。
まとめにはFargateは便利だけどEC2より高いので、Spotinsanceとかを使う方が良さそう、みたいなことが書かれていました。

## Launching Worker Pod Autoscaler
<table>
<tr>
  <td colspan="2"><a href="https://medium.com/practo-engineering/launching-worker-pod-autoscaler-3f6079728e8b">Launching Worker Pod Autoscaler</a></td>
</tr>
<tr>
  <td><img src="https://miro.medium.com/max/300/1*NJoDmZ_kT9VIIHI5ORE3Qw.png"></td>
  <td>Solving specific problems with worker scaling in Kubernetes</td>
</tr>
</table>

Kubernetesのワークロード、特にキューに溜まったタスクを処理するタイプのもの自動的にスケールさせる方法を模索した記録。

初めはカスタムメトリクスとHPAを使っていたようです。
[AWS Cloudwatchをメトリクスとして取得するexporter](https://github.com/practo/cloudwatch_exporter)を作っていました。
しかし、スケールアップが遅い（これは意図したメトリクスの更新間隔が遅かったため）、柔軟なメトリクスの指定ができない、仕事をしているPodもスケールインされる、Cloudwatchを利用するコストがかかるなどの理由で [Worker Pod Autoscaler](https://github.com/practo/k8s-worker-pod-autoscaler)を自作したようです。

WPAは、キューを処理するワークロードを自動でスケールさせることに特化したオペレータです。
AWSのSQSを監視し、キューの流量に応じてワークロードを自動的に増減させます。キューがからの時はPodは0までスケールインします。

## Looking at Kubernetes’ 2k+ TODO Comments
<table>
<tr>
  <td colspan="2"><a href="https://medium.com/@augmentable/looking-at-kubernetes-2k-todo-comments-b2db42dc7fdb">Looking at Kubernetes’ 2k+ TODO Comments</a></td>
</tr>
<tr>
  <td><img src="https://miro.medium.com/max/1200/0*YOMf4adQA5E9U7Bg"></td>
  <td>Using tickgit to examine the 2,000+ TODO comments in the Kubernetes’ source code, we found the average age of a TODO is 2.3 years.</td>
</tr>
</table>

[tickgit](https://github.com/augmentable-dev/tickgit)というツールを使いKubernetesのソースコードに含まれるTODOコメントを分析した記事。

Todoコメントにまつわる興味深いランキングを紹介しています。
（もっともTodoを追加した人、もっともTodoの多いファイル、もっとも古いTodo　などなど）

## Traffic Management for Knative Services
<table>
<tr>
  <td colspan="2"><a href="https://medium.com/@zhimin.wen/traffic-management-for-knative-services-a211171c6e5f">Traffic Management for Knative Services</a></td>
</tr>
<tr>
  <td><img src="https://miro.medium.com/max/1200/0*wgzudo-1IqK5EPRd.jpg"></td>
  <td>With the Knative Service CRD object, we can manage the traffic splitting among the service revisions, and therefore achieve the different…</td>
</tr>
</table>

Knativeでのトラフィック制御について紹介した記事。A/Bテスト的にで割合を分けて制御したり、ヘッダに含まれる文字列でマッチングして違うPodに流したりする例を紹介しています。
（後者についてはIstioのVirtualServiceを新たに作るという方法で、knativeとの相性が微妙そうに見えました）

## Programmatically Kubernetes port forward in Go
<table>
<tr>
  <td colspan="2"><a href="https://gianarb.it/blog/programmatically-kube-port-forward-in-go">Programmatically Kubernetes port forward in Go</a></td>
</tr>
<tr>
  <td><img src="https://gianarb.it/img/gianarb.png"></td>
  <td>Depending on your networking configuration port forwarding will may be the unique way for you to reach pods or services running in Kubernetes. When you develop a CLI integration that has to interact with pods running inside the cluster you can programmatically do a port forwarding in golang.</td>
</tr>
</table>

`kubectl port-forward`の機能のみを提供するソフトウェアを作った話。
https://github.com/gianarb/kube-port-forward

## Manual recovery of a Rook cluster in Kubernetes
<table>
<tr>
  <td colspan="2"><a href="https://medium.com/flant-com/rook-cluster-recovery-580efcd275db">Manual recovery of a Rook cluster in Kubernetes</a></td>
</tr>
<tr>
  <td><img src="https://miro.medium.com/max/780/0*UJuDiIQmjFCqhZKc.png"></td>
  <td>Learn more about Rook internals through this disaster recovery journey</td>
</tr>
</table>

Rookで管理しているCephクラスタがおかしくなった際の復旧方法の紹介。
（なぜかおかしくなる・・という状況自体をなんとかしたい感あるのですが・・・）

## faas-containerd - serverless without Kubernetes
<table>
<tr>
  <td colspan="2"><a href="https://blog.alexellis.io/faas-containerd-serverless-without-kubernetes/">faas-containerd - serverless without Kubernetes</a></td>
</tr>
<tr>
  <td><img src="https://github.com/openfaas/faas-provider/raw/master/docs/conceptual.png"></td>
  <td>Learn about my new OpenFaaS provider built with containerd for a fast and lean Serverless experience at the edge and on single nodes. No Kubernetes required</td>
</tr>
</table>

OpenFaaSをKubernetesではなくcontainerd上で動かすプロバイダを作ったという話。

https://github.com/alexellis/faas-containerd

k3sでもまだメモリ使用量が多いのでこれを作ったとのこと。
まだまだやりたいことがあるらしくコントリビュートを募集中のようだ。

# The Editorial

## Cloud Native Computing Foundation Announces TUF Graduation - Cloud Native Computing Foundation
<table>
<tr>
  <td colspan="2"><a href="https://www.cncf.io/announcement/2019/12/18/cloud-native-computing-foundation-announces-tuf-graduation/">Cloud Native Computing Foundation Announces TUF Graduation - 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>Amazon, Datadog, Google, IBM, Microsoft, VMWare and other leading cloud native companies have adopted the specification SAN FRANCISCO, Calif. – December 18, 2019 – The Cloud Native Computing Foundation® (CNCF®),...</td>
</tr>
</table>

The Update Framework(TUF)がGraduationとなったようです。

ここまででGraduateしたプロジェクトは

- Kubernetes
- Prometheus
- Envoy
- CoreDNS
- containerd
- Fluentd
- Jaeger
- Vitess
- TUF <-ーNEW!!

です。

## BeyondProd whitepaper discusses cloud-native security at Google | Google Cloud Blog
<table>
<tr>
  <td colspan="2"><a href="https://cloud.google.com/blog/products/identity-security/beyondprod-whitepaper-discusses-cloud-native-security-at-google/">BeyondProd whitepaper discusses cloud-native security at Google | Google Cloud Blog</a></td>
</tr>
<tr>
  <td><img src="https://storage.googleapis.com/gweb-cloudblog-publish/images/Google_Cloud_security.max-2200x2200.jpg"></td>
  <td>Learn about BeyondProd, Google’s approach to security in cloud-native environments.</td>
</tr>
</table>

Googleが発表したBeyondProdについて。
日本語だと [Google、クラウドネイティブ向けセキュリティの枠組みを示す「BeyondProd」発表。ホワイトペーパーを公開](https://www.publickey1.jp/blog/19/googlebeyondprod.html) の記事が詳しいです。

## First look at Antrea: a CNI plugin based on Open vSwitch · alexbrand's blog
<table>
<tr>
  <td colspan="2"><a href="https://alexbrand.dev/post/first-look-at-antrea-a-cni-plugin-based-on-open-vswitch/">First look at Antrea: a CNI plugin based on Open vSwitch · alexbrand's blog</a></td>
</tr>
<tr>
  <td><img src="https://images.unsplash.com/photo-1456428746267-a1756408f782?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=crop&w=2100&q=80"></td>
  <td>Dig into Antrea, a new CNI plugin from VMware</td>
</tr>
</table>

Open vSwitch(OVS)を基にしたCNIプラグインである [Antrea](https://github.com/vmware-tanzu/antrea/)の紹介。
NetworkPolicyにも対応しているようだ。

## The complete guide to containers vs VMs for DevOps | stack.io
<table>
<tr>
  <td colspan="2"><a href="https://www.stack.io/blog/containers-vs-vms">The complete guide to containers vs VMs for DevOps | stack.io</a></td>
</tr>
<tr>
  <td><img src="http://static1.squarespace.com/static/5cafa5e792441be86e7ad9ac/5d63f2d0b11dd7000125b6a4/5df6cf569cc32e3e1315859f/1576864908614/containers-vs-vms.png?format=1500w"></td>
  <td>Would containerizing your application save you time, money, or resources? Are there scenarios where VMs are better than containers? What about Kubernetes—do you have to use Kubernetes if you containerize? Get the answer to these questions and more in this complete guide to containers vs VMs for DevO</td>
</tr>
</table>

コンテナ、VMのそれぞれの特徴の紹介、どのようなときどちらを使えば良いかといった話。

## Cloud Native Computing Foundation Announces Schedule for Kubernetes Forums in Bengaluru and Delhi, India - Cloud Native Computing Foundation
<table>
<tr>
  <td colspan="2"><a href="https://www.cncf.io/announcement/2019/12/12/cloud-native-computing-foundation-announces-schedule-for-kubernetes-forums-in-bengaluru-and-delhi-india/">Cloud Native Computing Foundation Announces Schedule for Kubernetes Forums in Bengaluru and Delhi, India - 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>Local and international experts will convene in India to discuss cloud native technologies  SAN FRANCISCO, Calif. – December 12, 2019 – The Cloud Native Computing Foundation® (CNCF®), which builds sustainable...</td>
</tr>
</table>

Kubernetes Forum in Bengaluru, Delhiの日程発表。
インドでKubernetes Forumが開催されるようです。日程は2020/02/17（Bengaluru）、2020/02/20（Delhi）。

セッション情報も公開されているので気になる人はチェック。

- [Bengaluru](https://events.linuxfoundation.org/kubernetes-forum-bengaluru/program/schedule/)
- [Delhi](https://events.linuxfoundation.org/kubernetes-forum-delhi/program/schedule/)

## Monitoring, Metrics and M3, with Martin Mao and Rob Skillington

<table>
<tr>
  <td colspan="2"><a href="https://kubernetespodcast.com/episode/084-monitoring-metrics-m3/">Monitoring, Metrics and M3, with Martin Mao and Rob Skillington
</a></td>
</tr>
<tr>
  <td><img src="https://kubernetespodcast.com/_assets/images/Kubernetes-Podcast-Logo_1400x1400.png"></td>
</tr>
</table>

Kubernetes Podcast。今回はメトリクスモニタリングツールである[M3](https://www.m3db.io/)の紹介。
ゲストはChronosphere社のCEO,CTOである Martin Mao と Rob Skillington。