KubeWeekly #199

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

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

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


# The Headlines

## Announcing the Kubernetes bug bounty program
<table>
<tr>
  <td colspan="2"><a href="https://kubernetes.io/blog/2020/01/14/kubernetes-bug-bounty-announcement/">Announcing the Kubernetes bug bounty program</a></td>
</tr>
<tr>
  
  <td>Authors: Maya Kaczorowski and Tim Allclair, Google, on behalf of the Kubernetes Product Security Committee
Today, the Kubernetes Product Security Committee is launching a new bug bounty program, funded by the CNCF, to reward researchers finding security vulnerabilities in Kubernetes.
Setting up a new bug bounty program We aimed to set up this bug bounty program as transparently as possible, with an initial proposal, evaluation of vendors, and working draft of the components in scope.</td>
</tr>
</table>

CNCFによるKubernetesのバグ報奨金プログラムのアナウンスについての紹介。
まずは決めれたメンバーでのみ非公開でやってみて、2年後あたりを目安に誰でもコントリビュートできるようにしていくようです。

## Getting Serious About Open Source Security - CD Foundation
<table>
<tr>
  <td colspan="2"><a href="https://cd.foundation/blog/2020/01/15/getting-serious-about-open-source-security/">Getting Serious About Open Source Security - CD Foundation</a></td>
</tr>
<tr>
  <td><img src="https://cd.foundation/wp-content/uploads/sites/78/2020/01/goal_9_security-1024x85.png"></td>
  <td>A not so serious look at a very serious problem Originally published on Medium by Dan Lorenc, (dlorenc@google.com, twitter.com/lorenc_dan) A Blast From the Past 2019 was a crazy time to...</td>
</tr>
</table>

昨今のセキュリティ問題についての紹介と、地道だけど大切な対策について。
そして安全なソフトウェアサプライチェーンの構築をCD.FOUNDATIONとして取り組んでいきたいといった話。

最近のセキュリティ攻撃、特に信頼できないサプライチェーンに由来する事例がたくさん紹介されている。

# The Technical

## Introducing Tanka, Our Way of Deploying to Kubernetes
<table>
<tr>
  <td colspan="2"><a href="https://grafana.com/blog/2020/01/09/introducing-tanka-our-way-of-deploying-to-kubernetes/">Introducing Tanka, Our Way of Deploying to Kubernetes</a></td>
</tr>
<tr>
  <td><img src="https://grafana.com/static/assets/img/blog/tanka_twitter.png"></td>
  <td>YAML sucks! This blog post explains why existing tools hardly ease this pain, and what we at Grafana Labs did about it.</td>
</tr>
</table>

Grafana Labが開発したマニフェストの管理ツール [tanka](https://github.com/grafana/tanka)。
Helmやksonnetと似たようなツール。マニフェストをJsonnetで管理できる。
ksonnetは開発が中止されてしまったので、Jsonnetが好きだった人には良さそうに見えます。

## brendandburns/configula
<table>
<tr>
  <td colspan="2"><a href="https://github.com/brendandburns/configula">brendandburns/configula</a></td>
</tr>
<tr>
  <td><img src="https://avatars3.githubusercontent.com/u/5751682?s=400&v=4"></td>
  <td>Experimental configuration generator inspired by JSX - brendandburns/configula</td>
</tr>
</table>

brendandburns氏の新作、JSXを採用したロジックを記述できるテンプレート記述言語
記述を見るとYAMLとPythonを合わせたような雰囲気です

## OpenShift Authentication Integration with ArgoCD – Red Hat OpenShift Blog
<table>
<tr>
  <td colspan="2"><a href="https://blog.openshift.com/openshift-authentication-integration-with-argocd/">OpenShift Authentication Integration with ArgoCD – Red Hat OpenShift Blog</a></td>
</tr>
<tr>
  <td><img src="https://blog.openshift.com/wp-content/uploads/Screen-Shot-2020-01-08-at-11.31.35-PM-1024x404.png"></td>
  <td>GitOps is a pattern that has gained a fair share of popularity in recent times as it emphasizes declaratively expressing infrastructure and application configuration within Git repositories. When using Kubernetes, the concepts that GitOps employs aligns well as each of the resources (Deployments, Services, ConfigMaps) that comprise not only an application, but the platform itself …</td>
</tr>
</table>

OpenShiftにてArgoCDの認証をうまく連携させる方法のチュートリアル。
Dexを利用しArgoCDと認証システムとの関係を疎に保つ方法を紹介している。

## Chaos Mesh - Your Chaos Engineering Solution for System Resiliency on Kubernetes | TiDB
<table>
<tr>
  <td colspan="2"><a href="https://pingcap.com/blog/chaos-mesh-your-chaos-engineering-solution-for-system-resiliency-on-kubernetes/">Chaos Mesh - Your Chaos Engineering Solution for System Resiliency on Kubernetes | TiDB</a></td>
</tr>
<tr>
  <td><img src="https://pingcap.com/images/blog/chaos-engineering.png"></td>
  <td>Recently, PingCAP open-sourced Chaos Mesh, a Chaos Engineering platform that features all-around fault injection methods for complex Kubernetes systems. Find out how this testing tool can make your applications more reliable.</td>
</tr>
</table>

カオスエンジニアリングのためのツール[Chaos Mesh](https://github.com/pingcap/chaos-mesh)の紹介。
元々はTiDBのシステムをテストするために作られたもののようです。

Kubernetes専用に設計されておりChaosをCRDで定義することができる。

## Setup and Deploy Vitess on Kubernetes (Minikube) for MySQL - Part III of III - Percona Database Performance Blog
<table>
<tr>
  <td colspan="2"><a href="https://www.percona.com/blog/2020/01/15/setup-and-deploy-vitess-on-kubernetes-minikube-for-mysql-part-iii-of-iii/">Setup and Deploy Vitess on Kubernetes (Minikube) for MySQL - Part III of III - Percona Database Performance Blog</a></td>
</tr>
<tr>
  <td><img src="https://www.percona.com/blog/wp-content/uploads/2020/01/vitess-kubernetes-mysql-pt3.png"></td>
  <td>In part III of this series, we continue to explore Vitess on Kubernetes for MySQL and test an example database provided in its repository.</td>
</tr>
</table>

Vitessをデプロイしてみるチュートリアルの3回目
macOSのローカルにminikubeを立てて、そこにvitessをインストールしている。
といっても公式のHelmを次々適用していくだけなので、細かく何が行われているかはこの記事だけではよくわからない印象でした。

# The Editorial

## Key metrics for monitoring Istio
<table>
<tr>
  <td colspan="2"><a href="https://www.datadoghq.com/ja/blog/istio-metrics/">Key metrics for monitoring Istio</a></td>
</tr>
<tr>
  <td><img src="https://imgix.datadoghq.com/img/blog/istio-metrics/part1-hero.png?fit=crop&w=1200&h=630"></td>
  <td>Use these metrics to get full visibility into your Istio service mesh.</td>
</tr>
</table>

Istioで取得できるメトリクスを紹介。
Istioの各コンポーネントについて図入りの説明がわかりやすかったです。

続く[Part2](https://www.datadoghq.com/ja/blog/istio-monitoring-tools/)ではこれらのメトリクスの取得方法や、可視化について紹介しています。

## 6 requirements of cloud-native software
<table>
<tr>
  <td colspan="2"><a href="https://opensource.com/article/20/1/cloud-native-software">6 requirements of cloud-native software</a></td>
</tr>
<tr>
  <td><img src="https://opensource.com/sites/default/files/lead-images/checklist_todo_clock_time_team.png"></td>
  <td>For many years, monolithic applications were the standard enterprise architecture for achieving business requirements. But that changed significantly once cloud infrastructure began treating business acceleration at scale and speed.</td>
</tr>
</table>

クラウドネイティブなソフトウェアの必要条件を6つ紹介している。

- Runtimes
  - コンテナファースト・Kubernetesネイティブな言語を使っている Java, Node.js, Go Python, Rubyなど
- Security
  - マルチクラウド、ハイブリッッドクラウドにおいてセキュリティは非常に重要となる
- Observability
  - クラウド環境でアプリケーションがどのように動作しているかを知るためにPrometheus,Grafana,Kialiなどのツールが有効です
- Efficiency
  - 少ないメモリ消費、小さなバイナリ、高速なブートを備えたポータブルなアプリケーションに注力します
- Interoperabillity
  - オープンソースなクラウドネイティブアプリケーションを組み合わせて標準的なアーキテクチャを構築します
- DevOps/DevSecOps
  - これらの方法論は本番環境へのCDやMVP,ツールの一部としてのセキュリティを前提にしています。

## OpenFaaS 3rd Birthday Celebrations
<table>
<tr>
  <td colspan="2"><a href="https://www.openfaas.com/blog/birthday-teamserverless/">OpenFaaS 3rd Birthday Celebrations</a></td>
</tr>
<tr>
  <td><img src="https://www.openfaas.com/images/2020-01-14-birthday-teamserverless/cake.png"></td>
  <td>As we celebrate the 3rd OpenFaaS Birthday, I look back over the past three years and towards a 2020 vision</td>
</tr>
</table>

OpenFaaS 3周年を祝う記事。
ここまでの歴史と、今後何を行なっていくかといったことが書かれている。

3年間の歴史については、片手間のプロジェクトから、フルタイムでの取り組みになり、その後VMwareにJoinし、再び独立するといった濃い内容となっています。
今後の予定では、OpenFaaSのSDKや、kubernetesに依らないFaaS実行環境のfaasd、その他企業向けのサポートなども力を入れていくとのことです。

## How Useful Is Ansible in a Cloud-Native Kubernetes Environment?
<table>
<tr>
  <td colspan="2"><a href="https://www.ansible.com/blog/how-useful-is-ansible-in-a-cloud-native-kubernetes-environment">How Useful Is Ansible in a Cloud-Native Kubernetes Environment?</a></td>
</tr>
<tr>
  <td><img src="https://www.ansible.com/hubfs/Images/blog-social/blog_ansible-and-kubernetes-c.png#keepProtocol"></td>
  <td>A closer look at Ansible in a Cloud-Native Kubernetes Environment.</td>
</tr>
</table>

Kubernetes環境におけるAnsibleの使い所について紹介。

- コンテナのビルド
  - Dockerfileを記述するのではなくAnsibleで構成を記述する
- Kubernetesクラスタ自体の構築・管理
  - kubesprayのように構築・管理をAnsibleでやったり、EKS,GKEなどもAnsibleから操作できる
- アプリケーションの管理
  - Operator SDKではAnsibleを利用しアプリケーションを管理できる

## Manage Thousands of Clusters with GitOps and the Cluster API
<table>
<tr>
  <td colspan="2"><a href="https://www.weave.works/blog/manage-thousands-of-clusters-with-gitops-and-the-cluster-api">Manage Thousands of Clusters with GitOps and the Cluster API</a></td>
</tr>
<tr>
  <td><img src="https://www.weave.works/assets/images/bltf27cad88294b091d/GitOps and CAPI - Overview.png"></td>
  <td>At Weaveworks we have been living and breathing GitOps for a few years now. This year the Cloud Native community has really started to embrace and adopt GitOps for managing application workloads and services in Kubernetes. But what about managing the actual Kubernetes clusters themselves using GitOps?</td>
</tr>
</table>

Cluster APIの紹介とそれによりGitOps的に多数のクラスタを管理できるよという話。

## Invention, IBM and Istio, with Lin Sun

<table>
<tr>
  <td colspan="2"><a href="https://kubernetespodcast.com/episode/086-invention-ibm-istio/">Invention, IBM and Istio, with Lin Sun
</a></td>
</tr>
<tr>
  <td><img src="https://kubernetespodcast.com/_assets/images/Kubernetes-Podcast-Logo_1400x1400.png"></td>
</tr>
</table>

Kubernetes Podcast, 今回はIstioの話。ゲストはIBMでIstioに携わっているLin Sun。

## My experience with Krew to manage kubectl plugins
<table>
<tr>
  <td colspan="2"><a href="https://gianarb.it/blog/my-experiene-with-krew-to-manage-kubectl-plugins">My experience with Krew to manage kubectl plugins</a></td>
</tr>
<tr>
  <td><img src="https://gianarb.it/img/kubernetes.png"></td>
  <td>Kubectl plugins are extremely useful to provide a set of friendly utilities to interact with kubernetes in your environment. Krew is a project that helps you managing the plugin lifecycle. I have to add profefe to it and this is what I learned.</td>
</tr>
</table>

kubectlのプラグインで、簡単に特定のPodに対してpprofを実行する他のプロファイルを生成してくれる[kube-profefe](https://github.com/profefe/kube-profefe)の紹介と、kubectlのプラグイン機構の使い勝手の良さについての紹介。