KubeWeekly #193

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

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

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

# The Headlines

## Mirantis Acquires Docker Enterprise - The New Stack
<table>
<tr>
  <td colspan="2"><a href="https://thenewstack.io/mirantis-acquires-docker-enterprise/">Mirantis Acquires Docker Enterprise - The New Stack</a></td>
</tr>
</table>

Mirantis社がDocker社のDocker Enterprise事業を買収しました。
この記事では、ここまでのDocker社のの戦略について紹介している。

# The Technical

## Helm 3.0.0 has been released!
<table>
<tr>
  <td colspan="2"><a href="https://helm.sh/blog/helm-3-released/">Helm 3.0.0 has been released!</a></td>
</tr>
<tr>
  <td><img src="https://helm.sh/img/favicon-152.png"></td>
  <td>Helm - The Kubernetes Package Manager.</td>
</tr>
</table>

Helm3.0がリリースされました。
メジャーバージョンアップとなるため非互換の機能変更が多く行われています。

## Cloud Native Chaos Engineering - Enhancing Kubernetes Application Resiliency - Cloud Native Computing Foundation
<table>
<tr>
  <td colspan="2"><a href="https://www.cncf.io/blog/2019/11/06/cloud-native-chaos-engineering-enhancing-kubernetes-application-resiliency/">Cloud Native Chaos Engineering - Enhancing Kubernetes Application Resiliency - Cloud Native Computing Foundation</a></td>
</tr>
<tr>
  <td><img src="https://www.cncf.io/wp-content/uploads/2019/11/image2-1-300x285.png"></td>
  <td>Guest post by Uma Mukkara, COO, MayaData Extending Cloud Native Principles to Chaos Engineering Faults are bound to happen no matter how hard you test to find them before putting...</td>
</tr>
</table>

[litmus](https://github.com/litmuschaos/litmus)というカオスエンジニアリングテストツールの紹介。
このツールは以前はステートフルアプリのe2eテストツールだったが、カオスエンジニアリングに特化するような変更があったのだろうか？

## Kubernetes Multi-Operator Stacks and Advanced Pod Scheduling
<table>
<tr>
  <td colspan="2"><a href="https://medium.com/@cloudark/kubernetes-multi-operator-stacks-and-advanced-pod-scheduling-c3131dde3755">Kubernetes Multi-Operator Stacks and Advanced Pod Scheduling</a></td>
</tr>
<tr>
  <td><img src="https://miro.medium.com/max/1200/0*fCnCIIxHdwKVdynL"></td>
  <td>Kubernetes Operators enable running third-party software natively on Kubernetes. Various Operators are being built today for a variety of…</td>
</tr>
</table>

複数のOperatorがデプロイされている環境で、特殊なスケジュールが必要な場合の設定方法について。
複数のOperatorがデプロイされている環境に限らず、特定のPodを同じNodeにPodを配置したい場合や、逆に同じ役割のPodを同居させないようにしたい場合などはKubernetesのスケジューリングの機能が利用できます。

## Kube-Downscaler
<table>
<tr>
  <td colspan="2"><a href="https://managedkube.com/kube-downscaler/2019/11/10/kube-downscaler.html">Kube-Downscaler</a></td>
</tr>
<tr>
  <td><img src="https://managedkube.com//assets/images/ManagedKube-Logo.png"></td>
  <td>I have been hearing from my clients more and more that I want to save on my cloud cost. Taking that ask, I found this really cool project called kube-downscaler which is a pod that runs in your Kubernetes cluster that will scale down a deployment/statefulset or a whole namespace.</td>
</tr>
</table>

特定の時間になるとDeploymentやStatefulSetのレプリカ数を減らすというコントローラの紹介。
業務時間のみ負荷が集中するアプリケーションなどに有効とのこと。

## 5 GitOps Best Practices
<table>
<tr>
  <td colspan="2"><a href="https://blog.argoproj.io/5-gitops-best-practices-d95cb0cbe9ff">5 GitOps Best Practices</a></td>
</tr>
<tr>
  <td><img src="https://miro.medium.com/max/953/1*qkprKdh2j_536oZAG2C6Nw.png"></td>
  <td>GitOps has been on the scene for some time now, but some things trip up users, both new and old. Here are some of the key best practices…</td>
</tr>
</table>

Intuit社でのGitOpsのベストプラクティス

- アプリケーションのソースコード、マニフェストはそれぞれ別のリポジトリにした方が良い
- デプロイするリポジトリの個数には気を配ること（いくつかの例が紹介されている）
- コミットする前にmanifestをテストする
- KustomizeやHelmで外部のリポジトリを参照するときは再現性を担保するため、タグ名などを明示的に指定する
- Secretをどのように扱うかを決める

## linki/chaoskube
<table>
<tr>
  <td colspan="2"><a href="https://github.com/linki/chaoskube">linki/chaoskube</a></td>
</tr>
<tr>
  <td><img src="https://repository-images.githubusercontent.com/72786190/918a8300-c019-11e9-8f64-1aa0a9b97f62"></td>
  <td>chaoskube periodically kills random pods in your Kubernetes cluster. - linki/chaoskube</td>
</tr>
</table>

ランダムにクラスタ内のPodを落としてくれるカオスエンジニアリング実現のためのコントローラ
対象となるPodのラベルやNamespaceも指定することができる。

Related workに似たようなツールが紹介されており参考になる。

## Simplifying Microservices on Kubernetes with Microsoft’s Dapr (Distributed Application Runtime)
<table>
<tr>
  <td colspan="2"><a href="https://itnext.io/simplifying-microservices-on-kubernetes-with-microsofts-dapr-distributed-application-runtime-9aece5723484">Simplifying Microservices on Kubernetes with Microsoft’s Dapr (Distributed Application Runtime)</a></td>
</tr>
<tr>
  <td><img src="https://miro.medium.com/max/1200/1*x8SYa_g4PD8jakYh9sJB9Q.png"></td>
  <td>Kubernetes and microservices are almost synonymous these days, microservices divide application’s functions into chunks that are…</td>
</tr>
</table>

Microsoftが発表したマイクロサービスのためのフレームワークである[Dapr](https://dapr.io/)の紹介。
Istioなどのサービスメッシュでよくみられるサイドカーを使った構成。

マイクロサービスはこのサイドカーのAPIを呼び出すことで、イベントの発行や待ち受け、状態の管理などを実現することができる、といような内容のもののようです。

## Breaking Down Containers | Part 0 — System Architecture
<table>
<tr>
  <td colspan="2"><a href="https://itnext.io/breaking-down-containers-part-0-system-architecture-37afe0e51770">Breaking Down Containers | Part 0 — System Architecture</a></td>
</tr>
<tr>
  <td><img src="https://miro.medium.com/max/760/0*JXy_NGicgg0SEqMr"></td>
  <td>Things to note in this article</td>
</tr>
</table>

コンテナ技術がどのように実現されているかという記事。
主にLinuxの場合を例にcgroups,Namespaceなどをざっくりと紹介している。

# The Editorial

## Guest View: Why Day 2 is critical in DevOps - SD Times
<table>
<tr>
  <td colspan="2"><a href="https://sdtimes.com/devops/guest-view-what-day-2-is-critical-in-devops/">Guest View: Why Day 2 is critical in DevOps - SD Times</a></td>
</tr>
<tr>
  <td><img src="https://sdtimes.com/wp-content/uploads/2019/11/office-1209640_640.jpg"></td>
  <td>Ready. Set. Deploy. The excitement and anxious energy developers feel the first time a new application runs in a production environment is probably a much smaller scale version of what NASA engineers felt when the Apollo 11 landed on the moon. And while there are no space travel celebrations until the astronauts safely return home,  … continue reading</td>
</tr>
</table>

DevOpsにとってDay2のオペレーションが非常に重要だという話。
Day2オペレーションを成功に導くために取り組むべき挑戦や、成功のための指針が紹介されている。

## KubeCon NA 2019 Contributor Summit & Event Preview - PodCTL - Enterprise Kubernetes
<table>
<tr>
  <td colspan="2"><a href="http://podcast.podctl.com/110399/2055312-kubecon-na-2019-contributor-summit-event-preview">KubeCon NA 2019 Contributor Summit & Event Preview - PodCTL - Enterprise Kubernetes</a></td>
</tr>
<tr>
  <td><img src="http://podcast.podctl.com/rails/active_storage/representations/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBBME9xTVE9PSIsImV4cCI6bnVsbCwicHVyIjoiYmxvYl9pZCJ9fQ==--99067cc9ba594d65596239f110027d32aa7b6548/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaDdCam9VWTI5dFltbHVaVjl2Y0hScGIyNXpld282QzNKbGMybDZaVWtpRFRJMU1IZ3lOVEJlQmpvR1JWUTZER2R5WVhacGRIbEpJZ3RqWlc1MFpYSUdPd2RVT2d0bGVIUmxiblJKSWd3eU5UQjRNalV3QmpzSFZEb01jWFZoYkdsMGVXbFZPZzlqYjJ4dmNuTndZV05sU1NJSmMxSkhRZ1k3QjFRPSIsImV4cCI6bnVsbCwicHVyIjoidmFyaWF0aW9uIn19--62c0dc9ae0106a9121f982eb952976ff55ebdee3/PodCTL-Logo-KubernetesFromRedHat-June2019.jpg"></td>
  <td>SHOW: 73SHOW OVERVIEW: Chris talks with Marky Jackson (@markyjackson5, Senior Software Engineer, Sysdig) about the KubeCon Contributor Summit, their experiences contributing to the Kubernetes community, and involvement of the military veterans in ...</td>
</tr>
</table>

Podcastの紹介。”Enterprise Kubernetes”
Kubernetesのコントリビューターについてのインタビュー。（聞いていない）

## Cloud Native Rejekts, with Chris Kühl

<table>
<tr>
  <td colspan="2"><a href="https://kubernetespodcast.com/episode/079-cloud-native-rejekts/">Cloud Native Rejekts, with Chris Kühl</a></td>
</tr>
<tr>
  <td><img src="https://kubernetespodcast.com/_assets/images/Kubernetes-Podcast-Logo_1400x1400.png"></td>
</tr>
</table>

PodCast。KubeConでリジェクトされた人たちのイベント[Cloud Nateve Rejekts](https://kubernetespodcast.com/episode/079-cloud-native-rejekts/)の紹介。
今回のゲストはこのイベントの主催者であり、Kinvolkという会社のco-founderであるChris Kühl。

## Primer: What Is Container Security? - The New Stack
<table>
<tr>
  <td colspan="2"><a href="https://thenewstack.io/primer-what-is-container-security/">Primer: What Is Container Security? - The New Stack</a></td>
</tr>
</table>

コンテナセキュリティについて。
その重要性と、デプロイの自動化とその過程でのセキュリティチェックが必要といった話。

## Why Kubernetes Works for Infrastructure Abstraction - The New Stack
<table>
<tr>
  <td colspan="2"><a href="https://thenewstack.io/why-kubernetes-works-for-infrastructure-abstraction/">Why Kubernetes Works for Infrastructure Abstraction - The New Stack</a></td>
</tr>
</table>

Kubernetesの備えるself-healingはPodの個数を保証するが、それに加えてインフラのself-healingが大切であるといった話。
マネージドKubernetes推しな記事。

## Chronosphere launches with $11M Series A to build scalable, cloud-native monitoring tool – TechCrunch
<table>
<tr>
  <td colspan="2"><a href="http://social.techcrunch.com/2019/11/05/chronosphere-launches-with-11m-series-a-to-build-scalable-cloud-native-monitoring-tool/">Chronosphere launches with $11M Series A to build scalable, cloud-native monitoring tool – TechCrunch</a></td>
</tr>
<tr>
  <td><img src="https://techcrunch.com/wp-content/uploads/2019/11/GettyImages-610654168.jpg?w=533"></td>
  <td>Chronosphere, a startup from two ex-Uber engineers who helped create the open-source M3 monitoring project to handle Uber-level scale, officially launched today with the goal of building a commercial company on top of the open-source project. It also announced an $11 million investment led by Greyl…</td>
</tr>
</table>

[Chronosphere](https://www.chronosphere.io/)という元Uberのエンジニアが立ち上げたスタートアップの資金調達についての記事。
大規模環境でのモニタリングシステムであるオープンソースの[M3](https://eng.uber.com/m3/)というアプリケーションを専門に扱う会社のようです。

## Skaffold, the Kubernetes build automation tool, is GA | Google Cloud Blog
<table>
<tr>
  <td colspan="2"><a href="https://cloud.google.com/blog/products/application-development/kubernetes-development-simplified-skaffold-is-now-ga/">Skaffold, the Kubernetes build automation tool, is GA | Google Cloud Blog</a></td>
</tr>
<tr>
  <td><img src="https://storage.googleapis.com/gweb-cloudblog-publish/images/Google_Cloud_Skaffold.max-2200x2200.jpg"></td>
  <td>Skaffold, a build and deploy automation tool for Kubernetes applications, is generally available.</td>
</tr>
</table>

Kubernetesを用いた開発フロー支援ツールである[Skaffold](https://skaffold.dev/)がGAになりました。
これは手元のソースコードに変更があると、自動でビルド・コンテナイメージの作成とプッシュを行い、Kubernetesへのデプロイを実施してくれるツールです。

また[Google Cloud Code](https://cloud.google.com/code)というIDEとの連携のための仕組みでもSkaffoldが利用されている様です。