KubeWeekly #169

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

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

# KubeWeekly #169

# The Headlines

## Expanding our Contributor Workshops
<table>
<tr>
  <td colspan="2"><a href="https://kubernetes.io/blog/2019/05/14/expanding-our-contributor-workshops/">Expanding our Contributor Workshops</a></td>
</tr>
<tr>
  
  <td>Authors: Guinevere Saenger (GitHub) and Paris Pittman (Google)
tl;dr - learn about the contributor community with us and land your first PR! We have spots available in Barcelona (registration closes on Wednesday May 15, so grab your spot!) and the upcoming Shanghai Summit. The Barcelona event is poised to be our biggest one yet, with more registered attendees than ever before!
Have you always wanted to contribute to Kubernetes, but not sure where to begin?</td>
</tr>
</table>

KubeConバルセロナ、と上海で行われるContributer Workshopの案内

## Helm 3 Preview: Charting Our Future – Part 7: What's Next?
<table>
<tr>
  <td colspan="2"><a href="https://helm.sh/blog/helm-3-preview-pt7/">Helm 3 Preview: Charting Our Future – Part 7: What's Next?</a></td>
</tr>
<tr>
  <td><img src="https://helm.sh//src/img/favicon-152.png"></td>
  <td>Helm - The Kubernetes Package Manager.</td>
</tr>
</table>

(リンクが切れていたので、タイトルからそれっぽい記事を探しました。)
7つの記事に及ぶHelm3の紹介記事の締め。

そして、[Helm3.0-alpha.1がリリースされています](https://v3.helm.sh/)。ここから様々なフィードバックを得てstable版に成長させていくようです。

## Kubernetes or: How I Learned to Stop Worrying and Love the Container
<table>
<tr>
  <td colspan="2"><a href="https://medium.com/@what3words/kubernetes-or-how-i-learned-to-stop-worrying-and-love-the-container-7bafa24d16e9">Kubernetes or: How I Learned to Stop Worrying and Love the Container</a></td>
</tr>
<tr>
  <td><img src="https://cdn-images-1.medium.com/max/1200/1*J-1MC3QGbIuwq4tb-yr-iA.png"></td>
  <td>How we made our tech scaleable and global using Kubernetes</td>
</tr>
</table>

EC2からKubernetesを使ったコンテナ環境に移行した時に感じたコンテナの利点。また現在のアプリケーションの開発フローについて説明している。

一つのサービスを表す、Dockerfile,Helmチャートの元ネタ、Kubernetes manifestの元ネタを記述した独自のマニフェストが紹介されています。

# The Technical

## ICYMI: May 2019 San Francisco Linkerd Meetup - Cloud Native Computing Foundation
<table>
<tr>
  <td colspan="2"><a href="https://www.cncf.io/blog/2019/05/15/icymi-may-2019-san-francisco-linkerd-meetup/">ICYMI: May 2019 San Francisco Linkerd Meetup - 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>The San Francisco Linkerd May Meetup was a fun night filled with Linkerd enthusiasts, education, great food, and lots of good conversation. If you missed it, we’ve got ya covered:...</td>
</tr>
</table>

サンフランシスコで開催されたLinkerdのMeetupの紹介。動画も公開されている（みていない）

- モノリスアプリケーションを徐々にLinkerdを使ったマイクロサービスに切り替えていくか
- REST APIをどのようにGRPCに切り替えていくか。GRPCを利用する利点

といった内容の発表が紹介されている。

## GKE security using Falco, Pub/Sub and Cloud Functions | Sysdig
<table>
<tr>
  <td colspan="2"><a href="https://sysdig.com/blog/gke-security-using-falco/">GKE security using Falco, Pub/Sub and Cloud Functions | Sysdig</a></td>
</tr>
<tr>
  <td><img src="https://sysdig.com/wp-content/uploads/2019/05/google_cloud_functions-350x202.png"></td>
  <td>Build a complete GKE security stack for anomaly and security detection integrating Falco runtime security engine with Google Cloud Functions and Pub/Sub.</td>
</tr>
</table>

GKE上での異常検知としてFalcoを利用する方法を紹介
Falcoで発見した以上をGoogle Cloud Pub/Subに流し込んで、Google Cloud Functionを使って、対象のPodを落とす、などを実行する。

FalcoはGoogleのMarketplaceで提供されているため、WebUIからインストールすることができるようだ。

## Writing a Helm Plugin
<table>
<tr>
  <td colspan="2"><a href="https://tech.ovoenergy.com/writing-a-helm-plugin/">Writing a Helm Plugin</a></td>
</tr>
<tr>
  <td>If you’re using Helm as your Kubernetes package manager, it’s likely the command-line tool already fulfils your use-cases, as it ships with a lot of functionality. One thing that’s missing, though, is snapshot/restore. Existing commands such as install, delete and rollback make it easy to manipulate</td>
</tr>
</table>

Helmを使っている場合、どのChartをどんなValueでデプロイしているのかのスナップショットを取りたくなることがある。そして、クラスタを誤って初期化してしまった時などにそのデータからリストアする、などが実行したい。

この記事ではHelm pluginとしてそれを実装する方法を紹介している。

[ovotech/helm-bulk](https://github.com/ovotech/helm-bulk)

## Cluster API Lays the Groundwork for Declarative Kubernetes Lifecycle Management with v1alpha1 - Cloud Native Apps
<table>
<tr>
  <td colspan="2"><a href="https://blogs.vmware.com/cloudnative/2019/05/14/cluster-api-kubernetes-lifecycle-management/">Cluster API Lays the Groundwork for Declarative Kubernetes Lifecycle Management with v1alpha1 - Cloud Native Apps</a></td>
</tr>
<tr>
  <td><img src="https://blogs.vmware.com/cloudnative/files/2019/05/Untitled-design-32.png"></td>
  <td>We've hit a very important milestone in the Cluster API project: our first official alpha release. With this release, it is now possible to use the Cluster API in a non-production environment or to start building higher-level opinionated tooling on top of Cluster API.</td>
</tr>
</table>

3/29に0.1.0となったCluster APIについて紹介。
主要なCRDである、Cluster,Machine, MachineDeployment,MachineSet,MachineClassをYAMLの例を交えながら紹介。

## Kubernetes Storage: Dynamic Volumes and the Container Storage Interface - The New Stack
<table>
<tr>
  <td colspan="2"><a href="https://thenewstack.io/kubernetes-storage-dynamic-volumes-and-the-container-storage-interface/">Kubernetes Storage: Dynamic Volumes and the Container Storage Interface - The New Stack</a></td>
</tr>
<tr>
  <td><img src="https://cdn.thenewstack.io/media/2019/04/6cb587f4-glass-3884543_1280.jpg"></td>
  <td>In this 2-part article, Platform 9 Kubernetes engineer Jay Vyas introduces the key concepts and components in the Kubernetes storage architecture, to build up a conceptual storage model which is technology agnostic. In the next part of this series, to run on Wednesday, we’ll turn to see how we can observe the inner-workings of Kubernetes storage and tweak those in a sandbox environment, using minikube.</td>
</tr>
</table>

ダイナミックプロビジョニングや、CSIの説明。
様々なワークロードに応じたStorageClassの例なども紹介されている。

## How To Scale a Node.js Application with MongoDB Using Helm | DigitalOcean
<table>
<tr>
  <td colspan="2"><a href="https://www.digitalocean.com/community/tutorials/how-to-scale-a-node-js-application-with-mongodb-using-helm">How To Scale a Node.js Application with MongoDB Using Helm | DigitalOcean</a></td>
</tr>
<tr>
  <td>Kubernetes is a system for running modern, containerized applications at scale. With it, developers can deploy and manage containerized applications across clusters of machines. When creating multi-service deployments with Kubernetes, many developers</td>
</tr>
</table>

mongodbを使うnodejs製のアプリケーションをDocker化し、helm chartを作成しデプロイするチュートリアル。mongodbもhelmでデプロイする。

## Kubernetes Deployment Strategies
<table>
<tr>
  <td colspan="2"><a href="https://www.weave.works/blog/kubernetes-deployment-strategies">Kubernetes Deployment Strategies</a></td>
</tr>
<tr>
  <td><img src="https://www.weave.works/assets/images/blt1942369a1c20bf82/canary-deployment-ww.png"></td>
  <td>With more frequent releases, the chances of negatively affecting application reliability or customer experience can increase. Learn why effective deployment strategies help teams minimize risk.</td>
</tr>
</table>

Kubernetesで利用できる様々なデプロイのパターンを図入りで紹介している。
Cnaryリリースなどはistioや [Flagger](https://docs.flagger.app/)を使う例も紹介している。

## Writing controllers for Kubernetes CRDs with C#
<table>
<tr>
  <td colspan="2"><a href="https://radu-matei.com/blog/kubernetes-controller-csharp/">Writing controllers for Kubernetes CRDs with C#</a></td>
</tr>
<tr>
  
  <td>Lightweight controllers for your custom resource definitions, in C#</td>
</tr>
</table>

C# を使ってKubernetesのコントローラを作成するチュートリアル。
https://github.com/kubernetes-client/csharp を利用している。
Goで書く場合に比べて依存関係が少なくて良い　と書かれている（色々な意見がありそう）

## Kubernetes Basics - YouTube
<table>
<tr>
  <td colspan="2"><a href="http://www.youtube.com/playlist?list=PLLasX02E8BPCrIhFrc_ZiINhbRkYMKdPT">Kubernetes Basics - YouTube</a></td>
</tr>
<tr>
  <td><img src="https://i.ytimg.com/vi/EUitQ8DaZW8/hqdefault.jpg?sqp=-oaymwEXCNACELwBSFryq4qpAwkIARUAAIhCGAE=&rs=AOn4CLDADAzCzEDbsAtV6YYGtIuSb7z5gw"></td>
  <td></td>
</tr>
</table>

Microsoft Azureがお届けする動画形式でのKubernetes入門(13本)

# Tooling Spotlight

## amaizfinance/redis-operator
<table>
<tr>
  <td colspan="2"><a href="https://github.com/amaizfinance/redis-operator">amaizfinance/redis-operator</a></td>
</tr>
<tr>
  <td><img src="https://avatars3.githubusercontent.com/u/39905489?s=400&v=4"></td>
  <td>Redis Operator for Kubernetes. Contribute to amaizfinance/redis-operator development by creating an account on GitHub.</td>
</tr>
</table>

Redis Operator

## jirenius/rest2res
<table>
<tr>
  <td colspan="2"><a href="https://github.com/jirenius/rest2res">jirenius/rest2res</a></td>
</tr>
<tr>
  <td><img src="https://avatars3.githubusercontent.com/u/27049611?s=400&v=4"></td>
  <td>A NATS/RES service turning legacy REST APIs into live APIs served through Resgate. - jirenius/rest2res</td>
</tr>
</table>

REST APIをNATSに対応させるためのクライアント。
REST APIをポーリングするようなアプリケーションを書く際に、これを使うとそのポーリング処理を肩代わりし、1箇所にまとめることができる。変更があればNATSのメッセージング機構により通知される。

# The Editorial

## Cat shirts and Groundhog Day: the Kubernetes 1.14 release interview
<table>
<tr>
  <td colspan="2"><a href="https://kubernetes.io/blog/2019/05/13/cat-shirts-and-groundhog-day-the-kubernetes-1.14-release-interview/">Cat shirts and Groundhog Day: the Kubernetes 1.14 release interview</a></td>
</tr>
<tr>
  
  <td>Author: Craig Box (Google)
Last week we celebrated one year of the Kubernetes Podcast from Google. In this weekly show, my co-host Adam Glick and I focus on all the great things that are happening in the world of Kubernetes and Cloud Native. From the news of the week, to interviews with people in the community, we help you stay up to date on everything Kubernetes.
Every few cycles we check in on the release process for Kubernetes itself.</td>
</tr>
</table>

Kubernetes PodCastで1.14リリースマネージャにインタビューをおこなっていて、その書き起こし。
（よく読んでいない）

## Open Policy Agent - Policy-based control for cloud-native environments | The Byte
<table>
<tr>
  <td colspan="2"><a href="https://thebyte.io/">Open Policy Agent - Policy-based control for cloud-native environments | The Byte</a></td>
</tr>
<tr>
  <td><img src="https://images.transistor.fm/images/social_images/site/962/the_byte_-_cover.jpg"></td>
  <td>The Open Policy Agent enables fine-grained control across your cloud-native environment. Before we coupled policies with our applications. Open Policy Agent allows us to separate the policy decisions which allows us to apply and change new policies without affecting the running workloads. We also explore the company behind Open Policy Agent Styra and how they plan to expand OPA with a managed service.</td>
</tr>
</table>

Open Policy Agentについて語っているPodCast
（聞いていない）

## Kubernetes, The Open and Scalable Approach to ML Pipelines
<table>
<tr>
  <td colspan="2"><a href="https://towardsdatascience.com/kubernetes-the-open-and-scalable-approach-to-ml-pipelines-1e972a965f0d">Kubernetes, The Open and Scalable Approach to ML Pipelines</a></td>
</tr>
<tr>
  <td><img src="https://cdn-images-1.medium.com/max/1200/1*JydT3LRDJqOg-HYeDMA02Q.png"></td>
  <td>Still waiting for ML training to be over? Tired of running experiments manually? Not sure how to reproduce results?…see how Kubernetes…</td>
</tr>
</table>

機械学習のプラットフォームとしてのKubernetes、KubeFlowの紹介。
最近KubeFlowに追加されたPipelinesの紹介もしている。

## Linkerd's design principles
<table>
<tr>
  <td colspan="2"><a href="https://linkerd.io/2019/04/29/linkerd-design-principles/">Linkerd's design principles</a></td>
</tr>
<tr>
  <td><img src="https://linkerd.io/images/logo-only-200h.png"></td>
  <td>tl;dr: Does a service mesh need design principles? We think so. We built Linkerd 2.0 around three core principles that are designed to reduce the operational cost—especially for human beings—of running a service mesh.
When we launched Linkerd 2.0 last September, it marked a substantial departure from Linkerd 1.x. Gone was the JVM, the config file, and the setup and tuning process that ranged from intricate to complex. Linkerd could now be installed in under 60 seconds, without configuration or application changes, and would just work.
</td>
</tr>
</table>

Linkerd 2.0を開発する際に掲げた3つの原則について紹介。

- Keep it simple
- Minimize resource requirements
- Just work

## 5G depends on Kubernetes in the cloud | ZDNet
<table>
<tr>
  <td colspan="2"><a href="https://www.zdnet.com/article/5g-depends-on-kubernetes-in-the-cloud/">5G depends on Kubernetes in the cloud | ZDNet</a></td>
</tr>
<tr>
  <td><img src="https://zdnet4.cbsistatic.com/hub/i/r/2019/02/27/3ceb9827-5db2-44f1-a380-e957ff696f81/thumbnail/770x578/2d13d07bf29b851faaed966cc218f33d/istock-861190046.jpg"></td>
  <td>If we're to ever have 5G in the real world, it's going to be running on Kubernetes.</td>
</tr>
</table>

5Gのインフラの基盤としてKubernetesが使われているという話。

## Kubernetes Adoption: Are You Ready? - DevOps.com
<table>
<tr>
  <td colspan="2"><a href="https://devops.com/kubernetes-adoption-are-you-game-for-it/">Kubernetes Adoption: Are You Ready? - DevOps.com</a></td>
</tr>
<tr>
  <td><img src="https://devops.com/wp-content/uploads/2019/05/Kubernetes-Adoption-Ready.jpg"></td>
  <td>Kubernetes has become the De-facto platform for container orchestration. Here are 3 broad patterns of how enterprises are adopting Kubernetes.</td>
</tr>
</table>

企業でKubernetesを導入するために考慮すべきことの紹介。

## Kubernetes security: 5 mistakes to avoid
<table>
<tr>
  <td colspan="2"><a href="https://enterprisersproject.com/article/2019/5/kubernetes-security-5-mistakes">Kubernetes security: 5 mistakes to avoid</a></td>
</tr>
<tr>
  <td><img src="https://enterprisersproject.com/sites/default/files/images/CIO%20Containers%20Ecosystem.png"></td>
  <td>For teams managing containers, Kubernetes has strong security controls – but some common mistakes pop up, especially when teams rush into production. Watch out for these five.</td>
</tr>
</table>

Kubernetesを運用する上で避けるべき5つのセキュリティ的な間違いについて紹介している。

## What is Kubernetes CSI and how is it being used?
<table>
<tr>
  <td colspan="2"><a href="https://searchstorage.techtarget.com/answer/What-is-Kubernetes-CSI-and-how-is-it-being-used">What is Kubernetes CSI and how is it being used?</a></td>
</tr>
<tr>
  <td><img src="https://cdn.ttgtmedia.com/visuals/searchStorage/primary_storage_hardware/storage_article_008.jpg"></td>
  <td>Storing containerized workloads comes with complications, but luckily, tools are available to simplify that process. Kubernetes CSI can serve as an interface between third-party storage systems and containers.</td>
</tr>
</table>

CSIの概要について解説している。

## 10 Kubernetes distributions leading the container revolution
<table>
<tr>
  <td colspan="2"><a href="https://www.itworld.com/article/3265059/10-kubernetes-distributions-leading-the-container-revolution.html">10 Kubernetes distributions leading the container revolution</a></td>
</tr>
<tr>
  <td><img src="https://images.idgesg.net/images/article/2018/02/revolution_solidarity_fight_thinkstock_653795540-100749345-large.3x2.jpg"></td>
  <td>Kubernetes and containers are changing how applications are built, deployed, and managed. These distros are leading the charge</td>
</tr>
</table>

10個のKubernetes distributionの特徴を紹介。

## Cluster API to the Rescue: An Easier Way to Manage Your Kubernetes Clusters - Container Journal
<table>
<tr>
  <td colspan="2"><a href="https://containerjournal.com/2019/05/13/cluster-api-to-the-rescue-an-easier-way-to-manage-your-kubernetes-clusters/">Cluster API to the Rescue: An Easier Way to Manage Your Kubernetes Clusters - Container Journal</a></td>
</tr>
<tr>
  <td><img src="https://containerjournal.com/wp-content/uploads/2019/03/Submariner-Networking.jpg"></td>
  <td>In less than a generation, we’ve gone from bare-metal servers to containers. Now can manage Kubernetes clusters with Cluster API.</td>
</tr>
</table>

Cluster APIの紹介。SIG LifeCycleの他の取り組みとの関係性など。