KubeWeekly #173

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

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

# The Headlines

## Kubernetes 1.15: Extensibility and Continuous Improvement
<table>
<tr>
  <td colspan="2"><a href="https://kubernetes.io/blog/2019/06/19/kubernetes-1-15-release-announcement/">Kubernetes 1.15: Extensibility and Continuous Improvement</a></td>
</tr>
<tr>
  <td>Authors: The 1.15 Release Team
We’re pleased to announce the delivery of Kubernetes 1.15, our second release of 2019! Kubernetes 1.15 consists of 25 enhancements: 2 moving to stable, 13 in beta, and 10 in alpha. The main themes of this release are:
 Continuous Improvement  Project sustainability is not just about features. Many SIGs have been working on improving test coverage, ensuring the basics stay reliable, and stability of the core feature set and working on maturing existing features and cleaning up the backlog.</td>
</tr>
</table>

Kubernetes v1.15がリリースされました。いくつかの大きな変更について紹介されています。

- Core Kubernetes APIの拡張性
  - CRD周りに様々な機能追加が行われています。
  - Beta: CRD Webhook Conversation
    - CRDのバージョン変換のWebhookが作れるようになりました
  - Beta: CRD OpenAPI Publishing
    - CRDのスペックをOpenAPIで提供するようになりました
  - Beta: CRD Pruning
    - CRDのフィールドで未知のものに関して削除するという`Pruning`の処理を行うようになりました
  - Alpha: CRD Defaulting
    - CRDのフィールドのデフォルト値を設定できるようになりました
  - Beta: Admission Webhook Reinvocation & improvements
    - Admission Webhookで`reinvocationPolicy: IfNeeded`を指定することで、後続のAdmission Webhookで変更があった際に、その前に実行されたAdmissionWebhookを再び実行することを要求できるようになりました。
- Cluster Lifecycleの安定性、利便性に関する改良
  - kubeadmがHAのクラスタを構築できるようになりました（Beta)
  - kubeadmで証明書をローテートするようになりました
- CSIの改良
  - in-treeのVolumePluginからCSIへの移行作業を続けている
  - PVCを使ったVolume Cloningが利用できるようになりました

その他細かい機能追加についても記載されているので、気になる方は本記事を見てみてください。

## KubeCon CloudNativeCon China 2019 - LF Asia, LLC
<table>
<tr>
  <td colspan="2"><a href="https://www.lfasiallc.com/events/kubecon-cloudnativecon-china-2019/">KubeCon CloudNativeCon China 2019 - LF Asia, LLC</a></td>
</tr>
<tr>
  <td><img src="https://www.lfasiallc.com//wp-content/uploads/2018/01/logo_lfasia_w.png"></td>
  <td></td>
</tr>
</table>

KubeCon CloudNativeCon China 2019が行われました。

# The Technical

## Linkerd Benchmarks
<table>
<tr>
  <td colspan="2"><a href="https://linkerd.io/2019/05/18/linkerd-benchmarks/">Linkerd Benchmarks</a></td>
</tr>
<tr>
  <td><img src="https://linkerd.io/images/logo-only-200h.png"></td>
  <td>(Update 5/30/2019: Based on feedback from the Istio team, Kinvolk has re-run some of the Istio benchmarks. The results are largely similar to before, with Linkerd maintaining a significant advantage over Istio in latency, memory footprint, and possibly CPU. Below, we’ve noted the newer numbers for Istio when applicable.)
Linkerd’s goal is to be the fastest, lightest, simplest service mesh in the world. To that end, several weeks ago we asked the kind folks at Kinvolk to perform an independent benchmark.
</td>
</tr>
</table>

Linkerdのベンチマーク。参考としてIstioも測定している。
レイテンシ、メモリ消費量、CPU使用量など。
総じてLinkerdの方が良い結果となっている。（機能が全く同じわけではないので、この結果を持ってどちらが良い、などと決めるものではないようにも思うが・・）

## Virtual Cluster - Extending Namespace Based Multi-tenancy with a Cluster View - Cloud Native Computing Foundation
<table>
<tr>
  <td colspan="2"><a href="https://www.cncf.io/blog/2019/06/20/virtual-cluster-extending-namespace-based-multi-tenancy-with-a-cluster-view/">Virtual Cluster - Extending Namespace Based Multi-tenancy with a Cluster View - Cloud Native Computing Foundation</a></td>
</tr>
<tr>
  <td><img src="https://www.cncf.io/wp-content/uploads/2019/06/image1-300x135.png"></td>
  <td>Guest post by Fei Guo and Lei Zhang of Alibaba Abstract: In this guest post, the Kubernetes team from Alibaba will share how they are building hard multi-tenancy on top...</td>
</tr>
</table>

KubeConでAlibabaの方が発表したVirtual Clusterについて。
一つの大きなKubernetesを複数のテナントに分ける方法の1つとして、提案されたもののようで、テナントごとに用意された仮想のMasterを通して大きな一つのKubernetesに接続することで、利用者は他のテナントのことを気にする必要がなくなる　というもののようです。

これを実現するためには、様々なコンポーネントに修正が必要となるようなので、まだアプローチの一つにすぎないようですが、こういった話が、[Kubernetes Multi-Tenancy Proposal](https://docs.google.com/document/d/1U8RQQmTUjxgMZY05HG2f7b3KsB94BhK4Ko6aWbLNXcc/edit#heading=h.usecunpmfu3a)で議論されているので、気になる人はみてみましょう。

## Introduction to Running SQL Server 2019 on Kubernetes — DatabaseJournal.com
<table>
<tr>
  <td colspan="2"><a href="https://www.databasejournal.com/features/mssql/introduction-to-running-sql-server-2019-on-kubernetes.html">Introduction to Running SQL Server 2019 on Kubernetes — DatabaseJournal.com</a></td>
</tr>
<tr>
  
  <td>Learn about the characteristics of running SQL Server on Kubernetes!</td>
</tr>
</table>

Kubernetes上でSQL Server 2019を動かす方法の紹介。となっているが一般的にKubernetes上でStatefulなアプリケーションをどのように動かすか、という方法の簡単な紹介記事。

## Future of CRDs: Structural Schemas
<table>
<tr>
  <td colspan="2"><a href="https://kubernetes.io/blog/2019/06/20/crd-structural-schema/">Future of CRDs: Structural Schemas</a></td>
</tr>
<tr>
  
  <td>Authors: Stefan Schimanski (Red Hat)
CustomResourceDefinitions were introduced roughly two years ago as the primary way to extend the Kubernetes API with custom resources. From the beginning they stored arbitrary JSON data, with the exception that kind, apiVersion and metadata had to follow the Kubernetes API conventions. In Kubernetes 1.8 CRDs gained the ability to define an optional OpenAPI v3 based validation schema.
By the nature of OpenAPI specifications though—only describing what must be there, not what shouldn’t, and by being potentially incomplete specifications—the Kubernetes API server never knew the complete structure of CustomResource instances.</td>
</tr>
</table>

Kubernetes v1.15のリリース紹介記事の1つ。CRDについて。
CRDの構造はOpenAPI v3で定義される　Structural Schemaが利用できるようになった。

また未知のfieldのPruningも利用できる。これを怠るとサポート前のフィールドの値をあらかじめ仕込んでおいて、サポート後にValidationなどを介さずにその値の効果を利用できてしまうなどの問題が起きる例も紹介している。

さらに既存のKubernetesのオブジェクトでStrutual Schemaで許可できないようなものを扱う際の拡張機能についても紹介している。

## Introducing Volume Cloning Alpha for Kubernetes
<table>
<tr>
  <td colspan="2"><a href="https://kubernetes.io/blog/2019/06/21/introducing-volume-cloning-alpha-for-kubernetes/">Introducing Volume Cloning Alpha for Kubernetes</a></td>
</tr>
<tr>
  
  <td>Author: John Griffith (Red Hat)
Kubernetes v1.15 introduces alpha support for volume cloning. This feature allows you to create new volumes using the contents of existing volumes in the user’s namespace using the Kubernetes API.
What is a Clone? Many storage systems provide the ability to create a “clone” of a volume. A clone is a duplicate of an existing volume that is its own unique volume on the system, but the data on the source is duplicated to the destination (clone).</td>
</tr>
</table>

Kubernetes v1.15のリリース紹介記事の1つ。Clioningについて。

alpha機能につきAPIServerに`--feature-gates=VolumePVCDataSource=true`の設定が必要。
使い方はスナップショットの機能とよく似ており、PVCの`.Spec.DataSource`以下のフィールドを設定することでCloneされたPVを利用することができます。

この記事では実際のmanifestを例にCloneingの機能を紹介しています。

## Follow logs from multiple K8s Pods in a Deployment, ReplicaSet, etc. | Jeff Geerling
<table>
<tr>
  <td colspan="2"><a href="https://www.jeffgeerling.com/blog/2019/follow-logs-multiple-k8s-pods-deployment-replicaset-etc">Follow logs from multiple K8s Pods in a Deployment, ReplicaSet, etc. | Jeff Geerling</a></td>
</tr>
<tr>
  <td><img src="https://www.jeffgeerling.com//sites/jeffgeerling.com/files/files/geerling-family-crest.svg"></td>
  <td></td>
</tr>
</table>

kubectl logsで複数のPodのログを横断して見る方法を紹介。
ラベルで絞り込んだ上で`-f`することで実現できる。

例えば `kubectl logs -f -n namespace -l app=myapp` など

## Incomplete Fix Leads to New Kubernetes Bug
<table>
<tr>
  <td colspan="2"><a href="https://www.infosecurity-magazine.com:443/news/incomplete-fix-leads-to-new-1-1/">Incomplete Fix Leads to New Kubernetes Bug</a></td>
</tr>
<tr>
  <td><img src="https://assets.infosecurity-magazine.com/webpage/og/ebcb2a2e-f7f3-4791-8f1c-710617b2019f.jpg"></td>
  <td>A high-severity vulnerability impacts kubectl.</td>
</tr>
</table>

CVE-2019-11246の紹介。
`kubectl cp`でクライアント側のファイルを書き換えれてしまうというような脆弱性のようです。
以前発生した別の脆弱性の修正の結果生まれたもののようです。

## Perform a Kubernetes security hardening before you use Jenkins X - Coffee Talk: Java, News, Stories and Opinions
<table>
<tr>
  <td colspan="2"><a href="https://www.theserverside.com/blog/Coffee-Talk-Java-News-Stories-and-Opinions/Kubernetes-security-hardening-a-priority-for-Jenkins-X-users">Perform a Kubernetes security hardening before you use Jenkins X - Coffee Talk: Java, News, Stories and Opinions</a></td>
</tr>
<tr>
  <td>Developers need to make a Kubernetes security hardening a priority before you dabble with Jenkins X in your environment. Don't let Kubernetes vulnerabilities expose your valuable data to possible attacks.</td>
</tr>
</table>

Jenkins XなどのCI/CDツールの紹介とKubernetesの最近の脆弱性の紹介。

## The OpenFaaS 2019 Project Update
<table>
<tr>
  <td colspan="2"><a href="https://www.openfaas.com/blog/project-update/">The OpenFaaS 2019 Project Update</a></td>
</tr>
<tr>
  <td><img src="https://www.openfaas.com/images/2019-project-update/background.jpg"></td>
  <td>Alex shares the OpenFaaS 2019 Project Update, case-studies, personal highlights, and the roadmap for the year.</td>
</tr>
</table>

OpenFaaSの最新の機能紹介と2019のロードマップ

# The Editorial

## Kubernetes goes in for nip and tuck, comes out with 25 'enhancements': We take a look at v1.15
<table>
<tr>
  <td colspan="2"><a href="https://www.theregister.co.uk/2019/06/20/kubernetes_update_115/">Kubernetes goes in for nip and tuck, comes out with 25 'enhancements': We take a look at v1.15</a></td>
</tr>
<tr>
  <td><img src="https://regmedia.co.uk/2015/10/09/doctor.jpg"></td>
  <td>New release is easier to customize, better performance, complex as hell</td>
</tr>
</table>

Kubernetes v1.15の新機能の簡単な紹介。

## How to choose between containers and virtual machines
<table>
<tr>
  <td colspan="2"><a href="https://www.techrepublic.com/article/how-to-choose-between-containers-and-virtual-machines/">How to choose between containers and virtual machines</a></td>
</tr>
<tr>
  <td><img src="https://tr4.cbsistatic.com/hub/i/r/2016/08/30/6e2d291a-c975-4b34-b506-6d03d98fb6dd/thumbnail/770x578/3ac6c528afff527652b6dc82926eb55e/containers.jpg"></td>
  <td>Containers vs. VMs isn't always an all-or-nothing question, except when it is. Here is good advice for how to decide which to use.</td>
</tr>
</table>

コンテナとVMをどのように使い分ければ良いか？というテーマで様々なスペシャリストの意見を紹介している。

Isolation, resource overhead, capacity utilization, system architecture, portability, deployment speed, [and] data persistence などが指標となる話。

また、基本的にはどのようなワークロードもコンテナ化が向いているしつつも下記のようなものはVMが良いのではという意見も紹介されている。

- 永続データ、データロスに関する耐性、激しいIO要求などのアプリケーションはVMが適している
- 商用製品でVMでなければサポートを受けられないもの

## Container Survey: IT Operations Teams Finally Get It - Container Journal
<table>
<tr>
  <td colspan="2"><a href="https://containerjournal.com/2019/06/20/container-survey-it-operations-teams-finally-get-it/">Container Survey: IT Operations Teams Finally Get It - Container Journal</a></td>
</tr>
<tr>
  <td><img src="https://containerjournal.com/wp-content/uploads/2019/06/Container-Survey-IT-Operations.jpg"></td>
  <td>A survey of 500 IT leaders published this week by Diamanti finds a greater number of IT operations teams are now driving container adoption.</td>
</tr>
</table>

コンテナの利用についてのサーベイの結果の紹介。
コンテナの利用はどんどん増えており、特にベアメタル上でコンテナを動かしているという事例も増加しているようです。

Kubernetesで動かしているワークロード、特にベアメタル上の事例はまだ少ないそうです。記事によるとKubernetesをベアメタルで動作させる事例が増えるのは時間の問題だろうということです。

より詳しい結果はこちら https://diamanti.com/press-releases/2019-container-adoption-survey/
（調査結果のPDF: https://diamanti.com/wp-content/uploads/2019/06/Diamanti_2019_Container_Survey.pdf ）

## Kubernetes 1.15 Adds to API Kitty - Container Journal
<table>
<tr>
  <td colspan="2"><a href="https://containerjournal.com/2019/06/19/kubernetes-115-adds-to-api-kitty/">Kubernetes 1.15 Adds to API Kitty - Container Journal</a></td>
</tr>
<tr>
  <td><img src="https://containerjournal.com/wp-content/uploads/2019/06/Kubernetes-API-Kitty.jpg"></td>
  <td>The latest version of Kubernetes adds a bevy of APIs to help make the platform even more flexible than it already is.</td>
</tr>
</table>

Kubernetesのv1.15の新機能の紹介と、バージョンアップの頻度に利用者が追いついていくのは大変だよね、という話。

## It’s all stability and extensibility for Kubernetes 1.15 • DEVCLASS
<table>
<tr>
  <td colspan="2"><a href="https://devclass.com/2019/06/20/its-all-stability-and-extensibility-for-kubernetes-1-15/">It’s all stability and extensibility for Kubernetes 1.15 • DEVCLASS</a></td>
</tr>
<tr>
  <td><img src="https://devclass.com/wp-content/uploads/2018/12/Kubernetes.jpg"></td>
  <td>With a focus on stability and extensibility the Kubernetes team reached its goal of getting v1.15 of the container orchestrator done before KubeCon China.</td>
</tr>
</table>

Kubernetesのv1.15の新機能の紹介と、早くもv1.15に対応したベンダーの紹介、KnownIssueをよくみてアップグレードしましょう　というような話。

## Kubernetes CSI volume plugin and the products that support it
<table>
<tr>
  <td colspan="2"><a href="https://searchstorage.techtarget.com/tip/Kubernetes-CSI-volume-plugin-and-the-products-that-support-it">Kubernetes CSI volume plugin and the products that support it</a></td>
</tr>
<tr>
  <td><img src="https://cdn.ttgtmedia.com/visuals/searchStorage/primary_storage_hardware/storage_article_008.jpg"></td>
  <td>Find out which vendors have products on the market that support the Kubernetes CSI-compliant volume plugin and how they're making it easier to connect container applications with storage systems.</td>
</tr>
</table>

CSIの簡単な紹介と、CSIに対応したストレージを提供している企業の紹介。

Hmmerspace, DataCore, Nutanix, Linode, Portworx, NetApp (Trident), MapR

## NetApp wraps Elements HCI and Google Cloud Platform in Data Fabric
<table>
<tr>
  <td colspan="2"><a href="https://www.theregister.co.uk/2019/06/20/netapp_data_fabric/">NetApp wraps Elements HCI and Google Cloud Platform in Data Fabric</a></td>
</tr>
<tr>
  <td><img src="https://regmedia.co.uk/2018/04/25/shutterstock_fabric_slide.jpg"></td>
  <td>New cloud services woven into portfolio</td>
</tr>
</table>

NetAppがGCPやAWSで利用できるクラウドストレージを発表したという話。

## Digital Anarchist: Best of KubeCon + CloudNativeCon Europe 2019 - Container Journal
<table>
<tr>
  <td colspan="2"><a href="https://containerjournal.com/2019/06/21/digital-anarchist-best-of-kubecon-cloudnativecon-europe-2019/">Digital Anarchist: Best of KubeCon + CloudNativeCon Europe 2019 - Container Journal</a></td>
</tr>
<tr>
  <td><img src="https://containerjournal.com/wp-content/uploads/2019/06/DigitalAnarchist.png"></td>
  <td>Digital Anarchist was at KubeCon + CloudNativeCon Europe 2019 to meet and chat with a bevy of industry folks. Here's a taste of who showed up</td>
</tr>
</table>

5/20-5/23にバルセロナで開催されたKubeCon + CloudNativeCon Europe 2019でのおすすめインタビュー動画の紹介。

Digital Anarchistというサービスで他にもたくさんの方のインタビュー記事が紹介されている。 https://digitalanarchist.io/kubecon-cloudnativecon-europe-2019/