KubeWeekly #195

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

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

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

# The Headlines

## CNCF TOC Governance Structure + Elections 2020 - Cloud Native Computing Foundation
<table>
<tr>
  <td colspan="2"><a href="https://www.cncf.io/blog/2019/12/06/cncf-toc-governance-structure-elections-2020/">CNCF TOC Governance Structure + Elections 2020 - Cloud Native Computing Foundation</a></td>
</tr>
<tr>
  <td><img src="https://www.cncf.io/wp-content/uploads/2019/12/image1-300x169.png"></td>
  <td>The Cloud Native Computing Foundation (CNCF) has three main bodies: a Governing Board (GB) that is responsible for marketing, budget and other business oversight decisions for the CNCF, a Technical...</td>
</tr>
</table>

CNCFの組織体系の紹介と2019年9月に変更されたTOC(Technical Oversight Committee)の差分の紹介。
また、次のTOCの投票は2019年12月に行われる。任期は2年。

## When you're in the release team, you're family: the Kubernetes 1.16 release interview
<table>
<tr>
  <td colspan="2"><a href="https://kubernetes.io/blog/2019/12/06/when-youre-in-the-release-team-youre-family-the-kubernetes-1.16-release-interview/">When you're in the release team, you're family: the Kubernetes 1.16 release interview</a></td>
</tr>
<tr>
  
  <td>Author: Craig Box (Google)
It is a pleasure to co-host the weekly Kubernetes Podcast from Google with Adam Glick. We get to talk to friends old and new from the community, as well as give people a download on the Cloud Native news every week.
It was also a pleasure to see Lachlan Evenson, the release team lead for Kubernetes 1.16, win the CNCF “Top Ambassador” award at KubeCon. We talked with Lachie when 1.</td>
</tr>
</table>

Kubernetes Podcastの書き起こし記事。
Kubernetes 1.16リリースチームのLachlan Evensonがゲスト。

# The Technical

## Develop a Kubernetes controller in Java
<table>
<tr>
  <td colspan="2"><a href="https://kubernetes.io/blog/2019/11/26/develop-a-kubernetes-controller-in-java/">Develop a Kubernetes controller in Java</a></td>
</tr>
<tr>
  
  <td>Authors: Min Kim (Ant Financial), Tony Ado (Ant Financial)
The official Kubernetes Java SDK project recently released their latest work on providing the Java Kubernetes developers a handy Kubernetes controller-builder SDK which is helpful for easily developing advanced workloads or systems.
Overall Java is no doubt one of the most popular programming languages in the world but it’s been difficult for a period time for those non-Golang developers to build up their customized controller/operator due to the lack of library resources in the community.</td>
</tr>
</table>

オフィシャルのJavaのSDKを使いでKubernetesのオペレータを作る方法の紹介。
Javaのライブラリはcontroller-runtimeを模して作られているようです。

## Gardener Project Update
<table>
<tr>
  <td colspan="2"><a href="https://kubernetes.io/blog/2019/12/02/gardener-project-update/">Gardener Project Update</a></td>
</tr>
<tr>
  <td><img src="https://d33wubrfki0l68.cloudfront.net/e4517f9da5ac7300b01198308f908c880dc47dfa/d6776/images/blog/2019-11-10-gardener-project-update/flow.png"></td>
  <td>Authors: Rafael Franzke (SAP), Vasu Chandrasekhara (SAP)
Last year, we introduced Gardener in the Kubernetes Community Meeting and in a post on the Kubernetes Blog. At SAP, we have been running Gardener for more than two years, and are successfully managing thousands of conformant clusters in various versions on all major hyperscalers as well as in numerous infrastructures and private clouds that typically join an enterprise via acquisitions.
We are often asked why a handful of dynamically scalable clusters would not suffice.</td>
</tr>
</table>

[Gardener](https://gardener.cloud/)という複数のKubernetesクラスタを管理するソフトウェアの最近の進捗についての紹介。
Kubernetesと同じように様々なクラウドプロバイダ向けの対応をout-of-treeで開発できるように構成を変更しているようだ。

また今後の予定にあるRingと呼ばれる冗長構成の手法が面白いと感じました。

## A visual guide on troubleshooting Kubernetes deployments
<table>
<tr>
  <td colspan="2"><a href="https://learnk8s.io/troubleshooting-deployments">A visual guide on troubleshooting Kubernetes deployments</a></td>
</tr>
<tr>
  <td><img src="https://learnk8s.io/a/d0e338e90d78e0c46beafb168ee12e32.png"></td>
  <td>Troubleshooting in Kubernetes can be a daunting task. In this article you will learn how to diagnose issues in Pods, Services and Ingress.</td>
</tr>
</table>

Deploymentがおかしくなった時のトラブルシュートのフローチャートの紹介。
Kuberntesに慣れている人がどのような観点でトラブルシュートするのかをうまく資料に落とし込んでいます。

## Managing a multi-site Cassandra cluster on multiple Kubernetes with CassKop / MultiCassKop
<table>
<tr>
  <td colspan="2"><a href="https://itnext.io/managing-a-multi-site-cassandra-cluster-on-multiple-kubernetes-with-casskop-multicasskop-cf407c297701">Managing a multi-site Cassandra cluster on multiple Kubernetes with CassKop / MultiCassKop</a></td>
</tr>
<tr>
  <td><img src="https://miro.medium.com/max/1068/1*L7RNCQEKa5SnyV_GRSFwbA.png"></td>
  <td>CassKop is a Kubernetes operator that makes it easy to run Apache Cassandra on Kubernetes. It can create, configure, and manage Cassandra…</td>
</tr>
</table>

CassandraをKubernetes上にデプロイするオペレータ[CassKop](https://github.com/Orange-OpenSource/cassandra-k8s-operator)をを利用し、複数のクラスタにデプロイされたCassandraをクラスタリングするようなコントローラ [MultiCassKop](https://github.com/Orange-OpenSource/cassandra-k8s-operator/multi-casskop)の紹介。

## 3-way merge in werf: deploying to Kubernetes via Helm “on steroids”
<table>
<tr>
  <td colspan="2"><a href="https://medium.com/flant-com/3-way-merge-patches-helm-werf-beb7eccecdfe">3-way merge in werf: deploying to Kubernetes via Helm “on steroids”</a></td>
</tr>
<tr>
  <td><img src="https://miro.medium.com/max/780/0*SSd7A60cO5lBJNEm.png"></td>
  <td>How it works and why it’s important at all</td>
</tr>
</table>

[werf](https://werf.io/)というコマンドラインツールの紹介。
werfはKubernetesを利用した開発ワークフローを支援するCLIツールです。このツールがついにkubectl applyのようなthree way mergeをサポートしたというのがこの記事の主な内容です。そもそもなぜthree way mergeが必要なのか、というところから説明してあります。

## Amazon EKS on AWS Fargate Now Generally Available | Amazon Web Services
<table>
<tr>
  <td colspan="2"><a href="https://aws.amazon.com/blogs/aws/amazon-eks-on-aws-fargate-now-generally-available/">Amazon EKS on AWS Fargate Now Generally Available | Amazon Web Services</a></td>
</tr>
<tr>
  <td><img src="https://d2908q01vomqb2.cloudfront.net/da4b9237bacccdf19c0760cab7aec4a8359010b0/2019/11/29/2-4-668x630.jpg"></td>
  <td>Starting today, you can start using Amazon Elastic Kubernetes Service to run Kubernetes pods on AWS Fargate. EKS and Fargate make it straightforward to run Kubernetes-based applications on AWS by removing the need to provision and manage infrastructure for pods. With , customers don’t need to be experts in Kubernetes operations to run a cost-optimized […]</td>
</tr>
</table>

Amazon EKS on AWS Fargate についての記事。
これによりEKSにデプロイしたPodをFargeteで動作させることができるようになるようです。
この機能をフル活用するとEKSの利用者はEC2インスタンスのことを考えることなくKubernetesを利用することができます。

# The Editorial

## Running Kubernetes locally on Linux with Microk8s
<table>
<tr>
  <td colspan="2"><a href="https://kubernetes.io/blog/2019/11/26/running-kubernetes-locally-on-linux-with-microk8s/">Running Kubernetes locally on Linux with Microk8s</a></td>
</tr>
<tr>
  <td><img src="https://kubernetes.io//images/blog/2019-11-05-kubernetes-with-microk8s/001-install.png"></td>
  <td>Authors: Ihor Dvoretskyi, Developer Advocate, Cloud Native Computing Foundation; Carmine Rimi
This article, the second in a series about local deployment options on Linux, and covers MicroK8s. Microk8s is the click-and-run solution for deploying a Kubernetes cluster locally, originally developed by Canonical, the publisher of Ubuntu.
While Minikube usually spins up a local virtual machine (VM) for the Kubernetes cluster, MicroK8s doesn’t require a VM. It uses snap packages, an application packaging and isolation technology.</td>
</tr>
</table>

ローカルマシンで簡単にKubernetesクラスタが作成できるmicrok8sの紹介記事。
最近複数Node構成のKubernetesクラスタも扱えるようになったそうです。

## Kubernetes Audit: Making Log Auditing a Viable Practice Again - Cloud Native Computing Foundation
<table>
<tr>
  <td colspan="2"><a href="https://www.cncf.io/blog/2019/12/03/kubernetes-audit-making-log-auditing-a-viable-practice-again/">Kubernetes Audit: Making Log Auditing a Viable Practice Again - 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>Originally published on Alcide Blog by Nitzan Niv In the security world, one of the most established methods to identify that a system was compromised, abused or mis-configured is to...</td>
</tr>
</table>

auditログを利用して異常検知を行う手法についての紹介。簡単な条件マッチでは検知できない問題が多く、その場合は機械学習などを取り入れる必要があるとのこと。

## Chaos Engineering, with Ana Margarita Medina

<table>
<tr>
  <td colspan="2"><a href="https://kubernetespodcast.com/episode/082-chaos-engineering/">Chaos Engineering, with Ana Margarita Medina</a></td>
</tr>
<tr>
  <td><img src="https://kubernetespodcast.com/_assets/images/Kubernetes-Podcast-Logo_1400x1400.png"></td>
</tr>
</table>

Kubernetes Podcast.
今回のテーマはChaos Engineering。ゲストはGremlin社のAna Margarita Medina。

## Security considerations for Google Kubernetes Engine | Google Cloud Blog
<table>
<tr>
  <td colspan="2"><a href="https://cloud.google.com/blog/products/containers-kubernetes/security-considerations-for-google-kubernetes-engine/">Security considerations for Google Kubernetes Engine | Google Cloud Blog</a></td>
</tr>
<tr>
  <td><img src="https://storage.googleapis.com/gweb-cloudblog-publish/images/548e_Container_security_full.max-2200x2200.png"></td>
  <td>How to set up Google Kubernetes Engine with security in mind</td>
</tr>
</table>

GKE利用者に向けたセキュリティについての記事だが、他のKubernetesクラスタ管理でも参考になる点が多い

- サービスをどの単位でクラスタに載せるか？
- 認証・認可はどうするか？
- デプロイはどうするか？
  - Day OneからCI/CDのみでデプロイするようにするのがおすすめ らしい
- セキュリティに関するクラスタの設定は、物によっては後から変えられないものがあるので注意

## KubeCon San Diego Summary: Top Ten Takeaways (Part 2)
<table>
<tr>
  <td colspan="2"><a href="https://blog.getambassador.io/kubecon-san-diego-summary-top-ten-takeaways-part-2-c94266bf5ea5">KubeCon San Diego Summary: Top Ten Takeaways (Part 2)</a></td>
</tr>
<tr>
  <td><img src="https://miro.medium.com/max/638/0*B4iUWor30I9G2sFk"></td>
  <td>Day two operations, new architecture paradigms, and end users</td>
</tr>
</table>

[先週の記事](https://qiita.com/inajob/items/9ae927f7b5bf7ea55822#kubecon-na-2019-top-ten-takeaways-part-1)の続き。

> DataWireのエンジニアによるKubeCon NAの10のハイライト
> 
> - KubernetesはRuby on Railsのような考え方が必要
> - ベンダーはスタックの上位レイヤーにやってきている。
> - エッジコンピューティングが重要となってきた
> - クラスタがデプロイの単位に（家畜とペット問題がさらに上位に）
> - CDについて GitOpsのものとUI-driven configが二極化
> - SRE toilの削減は重要で、生産性に大きな影響がある。
> - マルチクラウドが大きなビジネスとなる
> - マイクロサービスにより理解しやすさ、Observability、debuggabilityという新たな問題を引き起こしている
> - クラウドプラットフォーム・技術はイベント駆動コンピューティングを取り込んできている
> - CNCFのコミュニティは素晴らしいが、その技術を初学者に案内することは難しい
> 
> 各トピックについて非常に詳細に述べられているので意味のわからない項目は元記事をチェックしてみてください。

後半のトピックの詳細が記載されています。

## It’s Official! Eirini 1.0 is Here | Cloud Foundry
<table>
<tr>
  <td colspan="2"><a href="https://www.cloudfoundry.org/blog/its-official-eirini-1-0-is-here/">It’s Official! Eirini 1.0 is Here | Cloud Foundry</a></td>
</tr>
<tr>
  <td><img src="https://www.cloudfoundry.org/wp-content/uploads/Eirini-Mark-1-1.png"></td>
  <td>Thanks to the Cloud Foundry community aross IBM, Pivotal, SAP, SUSE and Google, Eirini 1.0 has arrived. Read on to learn how and why you should use it.</td>
</tr>
</table>

Eiriniがバージョン1.0となりました。
EiriniはKubernetesのための`cf push`です。まだまだフル機能ではないようですが、コア部分は安定するようになったとのことです。

## CNCF to Participate Again in the Community Bridge Mentorship Program - Cloud Native Computing Foundation
<table>
<tr>
  <td colspan="2"><a href="https://www.cncf.io/blog/2019/12/05/cncf-to-participate-in-the-community-bridge-mentorship-program/">CNCF to Participate Again in the Community Bridge Mentorship Program - 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>I’m happy to announce that CNCF will participate again in the Community Bridge Mentorship program. As well as Google Summer of Code and Outreachy, Community Bridge is a platform that brings...</td>
</tr>
</table>

CNCFのCommunity Bridgeの紹介。これは学生のためのインターンのようなもののようで、2019/12月-2020/3月の日程で5人募集しているようです。

## How Kubernetes Has Been ‘Transformational’ to Productivity and Culture at uSwitch - Cloud Native Computing Foundation
<table>
<tr>
  <td colspan="2"><a href="https://www.cncf.io/blog/2019/12/04/how-kubernetes-has-been-transformational-to-productivity-and-culture-at-uswitch/">How Kubernetes Has Been ‘Transformational’ to Productivity and Culture at uSwitch - 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>When it was founded in 2000, uSwitch helped consumers in the U.K. compare prices for their utilities. The company eventually expanded to include comparison and switching tools for a wide...</td>
</tr>
</table>

uSwitch社でのKubernetes利用事例。
36のチームがそれぞれAWSを使って作ったシステムを使うことから、全社的なKubernetesに移行することにより、デプロイ頻度は3倍となり、1人あたりの週リリース数は2倍となり、一日のリリース数は100回近くなりました。