KubeWeekly #184

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

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


# The Headlines

## Cloud Native Survey 2019
<table>
<tr>
  <td colspan="2"><a href="https://www.surveymonkey.com/r/cloudnativesurvey2019">Cloud Native Survey 2019</a></td>
</tr>
<tr>
  <td><img src="https://www.surveymonkey.com/collect/images/default_custom_meta_image.jpg"></td>
  <td>Take this survey powered by surveymonkey.com. Create your own surveys for free.</td>
</tr>
</table>

CNCFのアンケート調査です。

# Surveys

## CNCF Storage Survey
<table>
<tr>
  <td colspan="2"><a href="https://www.surveymonkey.com/r/CNCF-Storage_Survey">CNCF Storage Survey</a></td>
</tr>
<tr>
  <td><img src="https://www.surveymonkey.com/collect/images/default_custom_meta_image.jpg"></td>
  <td>Take this survey powered by surveymonkey.com. Create your own surveys for free.</td>
</tr>
</table>

CNCFのStorage Working Groupのアンケート調査です。

## General Messaging Survey
<table>
<tr>
  <td colspan="2"><a href="https://www.surveymonkey.com/r/YW2TDYK">General Messaging Survey</a></td>
</tr>
<tr>
  <td><img src="https://www.surveymonkey.com/collect/images/default_custom_meta_image.jpg"></td>
  <td>Take this survey powered by surveymonkey.com. Create your own surveys for free.</td>
</tr>
</table>

NATSチームからのメッセージングに関するアンケート調査です。

# The Technical

## Welcome to Kuma
<table>
<tr>
  <td colspan="2"><a href="https://kuma.io/docs/0.1.2/">Welcome to Kuma</a></td>
</tr>
<tr>
  <td><img src="https://kuma.io/images/social/og-image.jpg"></td>
  <td>Build, Secure and Observe your modern Service Mesh</td>
</tr>
</table>

Kongが作っているサービスメッシュとマイクロサービスのためのオープンソースなコントロールプレーンである　Kuma の紹介です。
Kumaは日本語の「熊」から来ているようです。

説明を読む限りistioなどと同様にEnvoyをサイドカーとして採用したサービスメッシュのようです。

## eBPF powered Distributed Kubernetes performance analysis
<table>
<tr>
  <td colspan="2"><a href="https://devcampy.com/talks/cncf-italy/2019/09/06/lorenzo-fontana-ebpf-kubernetes-performance.html">eBPF powered Distributed Kubernetes performance analysis</a></td>
</tr>
<tr>
  <td><img src="https://devcampy.com//img/lorenzo-fontana-ebpg-kubernetes.jpg"></td>
</tr>
</table>

eBPFを利用しKubernetesのパフォーマンスを分析する方法を紹介した動画。

## 5 Kubernetes RBAC Mistakes You Must Avoid · StackRox: Security for Containers and Kubernetes
<table>
<tr>
  <td colspan="2"><a href="https://www.stackrox.com/post/2019/09/5-kubernetes-rbac-mistakes-you-must-avoid/">5 Kubernetes RBAC Mistakes You Must Avoid · StackRox: Security for Containers and Kubernetes</a></td>
</tr>
<tr>
  <td><img src="https://res.cloudinary.com/stackrox/v1567620012/5-rbac-mistakes-to-avoid-blog-banner_ros56d.jpg"></td>
  <td>To achieve least privilege via Kubernetes RBAC without leaving unintentional weaknesses, avoid making the following five configuration mistakes.</td>
</tr>
</table>

KubernetsのRBACでやりがちな5つの間違いについて。

- 不必要にcluster-adminの権限をつけてしまう
- Role Aggregationにより意図しない権限をつけてしまう
- roleが重複してしまう
- 利用していないroleが存在する
- 存在しないRoleを紐づける


# [An Introduction to Kubernetes Cluster API](https://blog.scottlowe.org/2019/08/26/an-introduction-to-kubernetes-cluster-api/)

Kubernetes Cluster API（CAPI）の簡単な説明とブートストラップの動作について紹介されている。
まずはBootstrap Clusterと呼ばれる`kind`で作られたクラスタでCAPIを動かし、そこからManagement Clusterを作成する。
Bootstrap ClusterからCAPIをPivot（移行）してManagement Clusterに持ってくる。不要となったBootstrap Clusterは削除する。

以降はManagement Clusterに対してkubectlを実行することで、いくつものWorkload Clusterを作成できる。

# [Bootstrapping a Kubernetes Cluster on AWS with Cluster API](https://blog.scottlowe.org/2019/08/27/bootstrapping-a-kubernetes-cluster-on-aws-with-clusterapi/)

上の記事を受けてのより詳細な解説。

[先週紹介しました](https://qiita.com/inajob/items/92a2c9518830312ec63b#bootstrapping-a-kubernetes-cluster-on-aws-with-cluster-api)

## The state of CNAB: Part 1 - CNAB Core
<table>
<tr>
  <td colspan="2"><a href="https://deislabs.io/posts/state-of-cnab-part-1/">The state of CNAB: Part 1 - CNAB Core</a></td>
</tr>
<tr>
  <td><img src="https://deislabs.io//images/deislabs.svg"></td>
  <td>In this series, we explore the state of the Cloud Native Application Bundles (CNAB) specifications, and do a deep dive into the distribution of bundles, and security and attestation.</td>
</tr>
</table>

CNAB (Cloud Native Application Bundles)の現状について。

目的を細分化し、Core, Registries, Securityにプロジェクトを分割し、Coreについて仕様が策定された。
すでにこれを利用しているサービスについても紹介している。

## The state of CNAB: Part 2 - CNAB Registries
<table>
<tr>
  <td colspan="2"><a href="https://deislabs.io/posts/state-of-cnab-part-2/">The state of CNAB: Part 2 - CNAB Registries</a></td>
</tr>
<tr>
  <td><img src="https://deislabs.io//images/deislabs.svg"></td>
  <td>In this series, we explore the state of the Cloud Native Application Bundles (CNAB) specifications, and do a deep dive into the distribution of bundles, and security and attestation.</td>
</tr>
</table>

上記記事の続き

CNABのRegistriesについての現状について紹介している。インターフェースとしてはOCIを利用することとなっているようだが、現状ではいくつか仕様に問題があるようだ。

## How to add Kubernetes support to Docker desktop
<table>
<tr>
  <td colspan="2"><a href="https://www.techrepublic.com/article/how-to-add-kubernetes-support-to-docker-desktop/">How to add Kubernetes support to Docker desktop</a></td>
</tr>
<tr>
  <td><img src="https://tr2.cbsistatic.com/hub/i/r/2017/07/04/5c6f950b-2857-49a7-8841-977902adfafe/thumbnail/770x578/19895b7b575f00161d1cac5943b0155c/kuberneteshero.jpg"></td>
  <td>Getting Kubernetes up and running on your Mac is incredibly simple, thanks to Docker Desktop.</td>
</tr>
</table>

Docker DesktopでKubernetesクラスタを作成する方法の紹介。

## CloudState, an Open Source Serverless Framework for Knative/Kubernetes 
<table>
<tr>
  <td colspan="2"><a href="https://www.infoq.com/news/2019/09/cloudstate/">CloudState, an Open Source Serverless Framework for Knative/Kubernetes </a></td>
</tr>
<tr>
  <td><img src="https://cdn.infoq.com/statics_s1_20190911-0053/styles/i/logo-big.jpg"></td>
  <td>Lightbend has recently announced CloudState. CloudState is the first open source serverless framework designed to bring stateful management on Knative/Kubernetes stack.</td>
</tr>
</table>

CloudStateというオープンソースのサーバレスフレームワークの紹介。
内部的にはKnativeやAkkaを組み合わせているもののようです。

## Kubernetes and Virtual Kubelet in a nutshell 
<table>
<tr>
  <td colspan="2"><a href="https://dev.to/adipolak/kubernetes-and-virtual-kubelet-in-a-nutshell-gn4">Kubernetes and Virtual Kubelet in a nutshell </a></td>
</tr>
<tr>
  <td><img src="https://res.cloudinary.com/practicaldev/image/fetch/s--uGRTLk4E--/c_imagga_scale,f_auto,fl_progressive,h_500,q_auto,w_1000/https://images.unsplash.com/photo-1550587381-a9ec95bbe09e%3Fixlib%3Drb-1.2.1%26ixid%3DeyJhcHBfaWQiOjEyMDd9%26auto%3Dformat%26fit%3Dcrop%26w%3D1950%26q%3D80"></td>
  <td>tep by step tutorial on how to scale web app using the right infrastructure such as Kubernetes and virtual kubelet</td>
</tr>
</table>

VirtualKubeletの紹介とAKSでVirtualKubeletを使いACIでコンテナを執行する方法の紹介。

## Open-Sourcing Isopod: An Expressive DSL Framework for Kubernetes Configuration
<table>
<tr>
  <td colspan="2"><a href="https://medium.com/cruise/isopod-5ad7c565d350">Open-Sourcing Isopod: An Expressive DSL Framework for Kubernetes Configuration</a></td>
</tr>
<tr>
  <td><img src="https://miro.medium.com/max/988/1*-K3WmIwZifLblKBsiQETqw.jpeg"></td>
  <td>With Isopod, we achieved strongly typed Kubernetes objects, code reuse, and test coverage that was not possible before.</td>
</tr>
</table>

Kubernetesのオブジェクトを記述するためのDSLである[isopod](https://github.com/cruise-automation/isopod)の紹介。
Python風の言語であるStarlarkを利用し、ロジックからマニフェストを生成することができる。テストも記述できる。

またロールアウトを司る1つのConfigMapを用意し、そのロールアウトに含まれるオブジェクトのOwnerReferenceをそのConfigMapにすることで、削除時に意図しないゴミが残らないようにしている。

# The Editorial

## CNCF Technical Principles and Open Governance Success - Cloud Native Computing Foundation
<table>
<tr>
  <td colspan="2"><a href="https://www.cncf.io/blog/2019/08/30/cncf-technical-principles-and-open-governance-success/">CNCF Technical Principles and Open Governance Success - 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>As CNCF approaches its 4th year anniversary, the community has grown to sustain over 30 projects and 450 members. It has become one of the most successful open source organizations...</td>
</tr>
</table>

CNCFのガバナンスモデルの紹介とそれがうまくいっているという話。
CNCFは他の組織とは違い、特定のガバナンスに矯正することはせず、graduatedになった時に「明示的にガバナンスとコミッタープロセスを定義しなさい」ということしか定めていないという特徴があるそうです。

## [Kubernetes Primer](https://kublr.com/infographic/kubernetes-primer.pdf)

kublrが作成した、Kubernetesの概要を紹介したチラシの紹介

## The Kubernetes Security Audit: 3 Key Takeaways · StackRox: Security for Containers and Kubernetes
<table>
<tr>
  <td colspan="2"><a href="https://www.stackrox.com/post/2019/09/the-kubernetes-security-audit-3-key-takeaways/">The Kubernetes Security Audit: 3 Key Takeaways · StackRox: Security for Containers and Kubernetes</a></td>
</tr>
<tr>
  <td><img src="https://res.cloudinary.com/stackrox/v1567487659/k8s-security-audit-results-blog-banner_hayhhp.jpg"></td>
  <td>We read through all 241 pages of recent Kubernetes security audit results to identify the key takeaways — there’s a lot of good content, but here’s the tl;dr:</td>
</tr>
</table>

KubernetesのSecurity Audit Working Groupがリリースしたレポートを受けて、なにをすべきか？という記事。

- read-only root file systemを使う
- コンテナイメージを最小にする
- アプリケーションの脆弱性に対応する
- RBACの設定に注意する
- namespaceを使う
- NetworkPolicyを使う
- デフォルトの設定のままで良いかよく確認する
- Kubernetesより下の層のセキュリティを担保する

## Self-Serverless: Why Run Knative Functions on Your Kubernetes Cluster?
<table>
<tr>
  <td colspan="2"><a href="https://blog.getambassador.io/self-serverless-why-run-knative-functions-on-your-kubernetes-cluster-4914c706a083">Self-Serverless: Why Run Knative Functions on Your Kubernetes Cluster?</a></td>
</tr>
<tr>
  <td><img src="https://miro.medium.com/max/1200/1*Iz54Vm56ApdkXDSh5ZUafQ.png"></td>
  <td>Six patterns driving the adoption of FaaS for dev and ops</td>
</tr>
</table>

Knativeを自分のKubernetesクラスタで実行すべき理由。といったタイトルの記事。

knativeを使うことで、リソースが少ない管理チームでも、開発者にちょうどいいくらいのプラットフォームを提供することができる。
クラスタの空きリソースを有効に活用することができる。Kubernetesやそれより下のレイヤーまで調査することが可能。などを理由として述べています。

## Google Charts Data Stack Overhaul with Kubernetes
<table>
<tr>
  <td colspan="2"><a href="https://www.datanami.com/2019/09/10/google-charts-data-stack-overhaul-with-kubernetes/">Google Charts Data Stack Overhaul with Kubernetes</a></td>
</tr>
<tr>
  <td><img src="https://2s7gjr373w3x22jf92z99mgm5w-wpengine.netdna-ssl.com/wp-content/uploads/2019/09/steering_Wheel_shutterstock_GRSI.jpg"></td>
  <td>Google today announced that its hosted Spark and Hadoop distribution, Cloud Dataproc, can now run on Kubernetes, at least as an alpha. It may not sound</td>
</tr>
</table>

Googleが提供するホステッドなSparkとHadoopのサービスであるCloud Dataprocがアルファ版の機能としてKubernetesで動くようになった話。
AnthosなどでもDataprocが利用できるような未来が期待できそうとのこと。

## Kubernetes in the Enterprise: A Primer - Container Journal
<table>
<tr>
  <td colspan="2"><a href="https://containerjournal.com/topics/container-ecosystems/kubernetes-in-the-enterprise-a-primer/">Kubernetes in the Enterprise: A Primer - Container Journal</a></td>
</tr>
<tr>
  <td><img src="https://containerjournal.com/wp-content/uploads/2019/04/canstockphoto27187811.jpg"></td>
  <td>Kubernetes is increasingly moving into the enterprise, and this growth is likely to continue, fueling how the ecosystem will adapt and evolve.</td>
</tr>
</table>

Kubernetesをエンタープライズで利用するためにまず知るべきことを記した記事。

## A Manager’s Guide to Kubernetes Adoption - Unixism
<table>
<tr>
  <td colspan="2"><a href="https://unixism.net/2019/08/a-managers-guide-to-kubernetes-adoption/">A Manager’s Guide to Kubernetes Adoption - Unixism</a></td>
</tr>
<tr>
  <td><img src="https://harness.io/wp-content/uploads/2017/09/kubernetes-3.png"></td>
  <td>Discussion on Hacker News This article and its topic were the subject of fairly detailed discussion on this thread here on Hacker News. Perusing through the comments should be well worth your time, albeit you might emerge completely confused by the experience. And no–tech guys do not hate each other, we just have a wide-ranging …</td>
</tr>
</table>

Kubernetesを組織に導入していくために必要なステップを解説している。
まずKubernetesを運用するために必要な要件を説明し、次にKubernetesを組織に導入していくステップについて解説している。

## Containous Unveils Maesh Service Mesh for Kubernetes - Container Journal
<table>
<tr>
  <td colspan="2"><a href="https://containerjournal.com/topics/container-management/containous-unveils-maesh-service-mesh-for-kubernetes/">Containous Unveils Maesh Service Mesh for Kubernetes - Container Journal</a></td>
</tr>
<tr>
  <td><img src="https://containerjournal.com/wp-content/uploads/2019/05/canstockphoto21720384.jpg"></td>
  <td>Containous has launched Maesh, an open source service mesh optimized for containerized applications running on instances of Kubernetes deployed at the network edge.</td>
</tr>
</table>

Containousがリリースした[Maesh](https://mae.sh/)というサービスメッシュ実装についての紹介。内部的には Traefikを使用している。