KubeWeekly #162

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

# The Headlines

## Runc and CVE-2019-5736
<table>
<tr>
  <td colspan="2"><a href="https://kubernetes.io/blog/2019/02/11/runc-and-cve-2019-5736/">Runc and CVE-2019-5736</a></td>
</tr>
<tr>
  
  <td>This morning a container escape vulnerability in runc was announced. We wanted to provide some guidance to Kubernetes users to ensure everyone is safe and secure.
What Is Runc? Very briefly, runc is the low-level tool which does the heavy lifting of spawning a Linux container. Other tools like Docker, Containerd, and CRI-O sit on top of runc to deal with things like data formatting and serialization, but runc is at the heart of all of these systems.</td>
</tr>
</table>


RunCの脆弱性について。
脆弱性の詳細はまだ公開されていないが、Kubernetesの機能でそれを抑制する方法を紹介している。
もちろん、可能ならruncを安全なバージョンにあげるのが良い。

## Building a Kubernetes Edge (Ingress) Control Plane for Envoy v2
<table>
<tr>
  <td colspan="2"><a href="https://kubernetes.io/blog/2019/02/12/building-a-kubernetes-edge-control-plane-for-envoy-v2/">Building a Kubernetes Edge (Ingress) Control Plane for Envoy v2</a></td>
</tr>
<tr>
  
  <td>Author: Daniel Bryant, Product Architect, Datawire; Flynn, Ambassador Lead Developer, Datawire; Richard Li, CEO and Co-founder, Datawire
Kubernetes has become the de facto runtime for container-based microservice applications, but this orchestration framework alone does not provide all of the infrastructure necessary for running a distributed system. Microservices typically communicate through Layer 7 protocols such as HTTP, gRPC, or WebSockets, and therefore having the ability to make routing decisions, manipulate protocol metadata, and observe at this layer is vital.</td>
</tr>
</table>

Envoyを使ったKubernetes向けのAPIGatewayの実装であるAmbassadorの概要について紹介している。
またv0.50の開発でEnvoy v2 APIに対応し、テストのフレームワークである[ambassador/kat](https://github.com/datawire/ambassador/tree/master/kat)を自作したことに触れている。
また様々な理由によりPythonだけでなくGo言語を開発に取り入れているとのこと。

## Istio and Kubernetes in production. Part 2. Tracing
<table>
<tr>
  <td colspan="2"><a href="https://medium.com/avitotech/istio-and-kubernetes-in-production-part-2-tracing-6304a5af82e9">Istio and Kubernetes in production. Part 2. Tracing</a></td>
</tr>
<tr>
  <td><img src="https://cdn-images-1.medium.com/max/1200/1*t_M83wb1E-T13MyL6SSWPg.png"></td>
  <td>In the previous post, we took a look at the building blocks of Service Mesh Istio, got familiar with the system, and went through the…</td>
</tr>
</table>

Istioでサービスのトレーシングを実現している方法の紹介。
ただIstioを入れるだけでは、ダメで、いくつか気にすべきことがある。
何のプロトコルでやりとりをするか明記することと、HTTPの場合はやってきたヘッダを次のサービスにそのまま渡すようにする必要がある。

## The Technical

## Development in the Cloud – Jakub Borys – Medium
<table>
<tr>
  <td colspan="2"><a href="https://medium.com/@JakubBorys/development-in-the-cloud-4aa2cabd3880">Development in the Cloud – Jakub Borys – Medium</a></td>
</tr>
<tr>
  <td><img src="https://cdn-images-1.medium.com/max/1200/1*2gF8u2ogLnBr3h6nBRobMg.png"></td>
  <td>With an advent of Microservice architectures, limitless compute resources enabled by Kubernetes has to be utilised in early stages of…</td>
</tr>
</table>

Kubernetesでの開発に便利なツールの紹介

- Brigade
  - サンプルプロジェクトを用意し、細かなパイプラインの実例を紹介している
- Telepresence
- Ksync

## Microservices Orchestration with Kubernetes – Asad Faizi – Medium
<table>
<tr>
  <td colspan="2"><a href="https://medium.com/@asad_5112/microservices-orchestration-with-kubernetes-1cbb737cfa46">Microservices Orchestration with Kubernetes – Asad Faizi – Medium</a></td>
</tr>
<tr>
  <td><img src="https://cdn-images-1.medium.com/max/1200/1*JN9_Ns8IMQAeFCwBBaxYbg.jpeg"></td>
  <td>In our last post, we discussed the recent trend towards microservices, and some of the complications that can arise as part of a…</td>
</tr>
</table>

Kubernetesの紹介と、簡単なGoのWebサービスとマニフェストを用意して、マイクロサービスの作り方を紹介している。

## Viewing Logs In Kubernetes – DevOpsLinks Community Publication – Medium
<table>
<tr>
  <td colspan="2"><a href="https://medium.com/devopslinks/viewing-logs-in-kubernetes-e055f936e187">Viewing Logs In Kubernetes – DevOpsLinks Community Publication – Medium</a></td>
</tr>
<tr>
  <td><img src="https://cdn-images-1.medium.com/max/1200/1*M1JzDzoVDdmkO0A5qYU38g.png"></td>
  <td>This article contains how to see logs based on various options available.</td>
</tr>
</table>

Kubernetesでのログの見方。
ラベルでPodを指定したり、複数のコンテナを内包している場合の指定方法や、特定日時・行数からといった指定や、1つ前の実行時のログを見る方法などを紹介。

## Using Kubernetes – deechris27 – Medium
<table>
<tr>
  <td colspan="2"><a href="https://medium.com/deechris27/using-kubernetes-fa6fd1be81ab">Using Kubernetes – deechris27 – Medium</a></td>
</tr>
<tr>
  <td><img src="https://cdn-images-1.medium.com/max/1200/1*rbmZDA5ghIt6YJv01Pc9tA.jpeg"></td>
  <td>Managing you containerised microservices through kubernetes.</td>
</tr>
</table>

Kubernetesの紹介と、Windows環境でMinikubeを使って作ったクラスタ上で、独自に作ったnginxのコンテナイメージをデプロイする方法を紹介。

## What every Data Scientist should know about Kubernetes (but they are afraid to ask) part I
<table>
<tr>
  <td colspan="2"><a href="https://medium.com/logicai/what-every-data-scientist-should-know-about-kubernetes-but-they-are-afraid-to-ask-part-i-1cfb8e26b3a">What every Data Scientist should know about Kubernetes (but they are afraid to ask) part I</a></td>
</tr>
<tr>
  <td><img src="https://cdn-images-1.medium.com/max/1200/0*Ts5kwDJcm7PFiA68"></td>
  <td>Introductio</td>
</tr>
</table>

全てのデータサイエンティストが知っておくべきKubernetesのこと。
といっても、普通にKubernetesの紹介でした。

## Kubernetes Ingress Controllers: How to choose the right one: Part 1
<table>
<tr>
  <td colspan="2"><a href="https://itnext.io/kubernetes-ingress-controllers-how-to-choose-the-right-one-part-1-41d3554978d2">Kubernetes Ingress Controllers: How to choose the right one: Part 1</a></td>
</tr>
<tr>
  <td><img src="https://cdn-images-1.medium.com/max/1200/0*1op8p9s7DwlnghrE"></td>
  <td>In this article, I will share my experience with 3 major types of Kubernetes ingress solutions. Let’s go through their pros and cons and…</td>
</tr>
</table>

KubernetesのIngressController派いくつかあるが、どれが良いか？どういう特徴があるか？という記事

特徴と、注意すべき点がまとめられていた。

- Nginx Ingress Controller
  - 全てのNamespaceをWatchするのはやめよう
  - 複数の環境でNginxIngressを共用するのはやめよう
  - プロセス数の設定に気をつけよう
- AWS ALB Ingress Controller
  - ALBの便利な機能が使える（Firewall,HTTPS redirect, static error page, Authentication...）
  - 今の所一つのIngressリソースに全てのルールを書く必要がある（ほんとうか？）
  - instance mode, ip modeというのがある。ip modeをつかうと、ALBから直接Podに通信する。
- 次回は Envoy Based Ingress Controllerについて触れる らしい

## Develop, Build, Release & Deploy – DIPANSHU GOYAL – Medium
<table>
<tr>
  <td colspan="2"><a href="https://medium.com/@dipanshu.ycce07/develop-build-release-deploy-a9066aee5fdb">Develop, Build, Release & Deploy – DIPANSHU GOYAL – Medium</a></td>
</tr>
<tr>
  <td><img src="https://cdn-images-1.medium.com/max/1200/1*cyrgrJL8D6LcACo9ZWEl6Q.png"></td>
  <td>I have always had a desire of deploying applications into an environment with just a single click (or a single command).</td>
</tr>
</table>

アプリケーションのビルド、コンテナイメージ化、デプロイ。を自動化するための概要についての説明。
具体的なツールの説明はなく、どのようなプロセスが必要かといった話。

## Kubernetes adventures — Creating the cluster – Diego Lakatos – Medium
<table>
<tr>
  <td colspan="2"><a href="https://medium.com/@diegolakatos/kubernetes-adventures-creating-the-cluster-46e35027042a">Kubernetes adventures — Creating the cluster – Diego Lakatos – Medium</a></td>
</tr>
<tr>
  <td><img src="https://cdn-images-1.medium.com/fit/c/100/100/1*KH6hNkEydpz-imLeSafR2g@2x.jpeg"></td>
  <td>Kubernetes is one of the hottest topics in technology today and is becoming the standard when it comes to orchestrating the containers. My…</td>
</tr>
</table>

kopsを使ってクラスタを作る方法を紹介。

## Using SPIRE to (Automatically) Deliver TLS Certificates to Envoy For Stronger Authentication
<table>
<tr>
  <td colspan="2"><a href="https://blog.envoyproxy.io/using-spire-to-automatically-deliver-tls-certificates-to-envoy-for-stronger-authentication-be5606ac9c75">Using SPIRE to (Automatically) Deliver TLS Certificates to Envoy For Stronger Authentication</a></td>
</tr>
<tr>
  <td><img src="https://cdn-images-1.medium.com/max/1200/0*QWV06vCtJu0KuuOA"></td>
  <td>Hello! This is Andrew Harding from Scytale. If you are currently using Envoy to provide secure service-to-service communication, I’d like…</td>
</tr>
</table>

EnvoyとSPIREを組み合わせて相互TLSの鍵を管理し、短い時間でローテートさせる方法を紹介。

# Tooling Spotlight

## sysdiglabs/kube-psp-advisor
<table>
<tr>
  <td colspan="2"><a href="https://github.com/sysdiglabs/kube-psp-advisor">sysdiglabs/kube-psp-advisor</a></td>
</tr>
<tr>
  <td><img src="https://avatars0.githubusercontent.com/u/38564768?s=400&v=4"></td>
  <td>Help building an adaptive and fine-grained pod security policy - sysdiglabs/kube-psp-advisor</td>
</tr>
</table>

namespaceを指定すると、そこで動作しているPodの動作するPodSecurtyPolicy（PSP）を生成してくれるツール。
PSPの設定は煩雑だが、とりあえずこれを実行して、出てきたPSPを利用しておくだけでも一定の効果はありそう。

## Comcast/kuberhealthy
<table>
<tr>
  <td colspan="2"><a href="https://github.com/Comcast/kuberhealthy">Comcast/kuberhealthy</a></td>
</tr>
<tr>
  <td><img src="https://avatars0.githubusercontent.com/u/709212?s=400&v=4"></td>
  <td>Easy synthetic testing for Kubernetes clusters.  Works great with Prometheus. - Comcast/kuberhealthy</td>
</tr>
</table>

クラスタの統合的なテストを行うツール。
kube-systemのコンポーネントが生きているかどうかなどを調べるツールのようだ。


## smallstep/certificates
<table>
<tr>
  <td colspan="2"><a href="https://github.com/smallstep/certificates">smallstep/certificates</a></td>
</tr>
<tr>
  <td><img src="https://avatars2.githubusercontent.com/u/23183426?s=400&v=4"></td>
  <td>🛡️ An online certificate authority and related tools for secure automated certificate management, so you can use TLS everywhere. - smallstep/certificates</td>
</tr>
</table>

Podにアノテーションを書いておくと、勝手にmtls用の証明書がマウントされる仕組み。証明書のローテーションなども自動で行ってくれる。
よく似たプロダクトとして、[cert-manager](https://github.com/jetstack/cert-manager)があるが、これはWebサービス用の証明書をLet's Encryptから取ってくることに特化している。対してこのautocertは相互TLS用の、自己署名の鍵を作ることに特化している。

# The Editorial

## How Aspen Mesh Runs Cortex in Production
<table>
<tr>
  <td colspan="2"><a href="https://www.weave.works/blog/how-aspen-mesh-runs-cortex-in-production">How Aspen Mesh Runs Cortex in Production</a></td>
</tr>
<tr>
  <td><img src="https://www.weave.works/assets/images/bltd2293103d53e5da0/cortex_logo.jpg"></td>
  <td>Neeraj Poddar Lead Platform Architect at Aspen Mesh gives us insight and tips on why and how they implemented Cortex in production.</td>
</tr>
</table>

[cortexproject/cortex](https://github.com/cortexproject/cortex/)というPrometheus as a Serviceの利用例の紹介。

CNCFのSandbox Project。Prometheusのremote writeのエンドポイントとして実装されており、たくさんのKubernetesクラスタからメトリクスを集めることができるようだ。それぞれのKubernetesクラスタにはstatelessなPrometheusがあれば良い。

Aspen Meshというこの会社では、今まで個別にPrometheusを構築していたが、7ヶ月前からCortexを使うようにしたようです。

## KubeCon + CloudNativeCon North America 2018 Conference Transparency Report: A Record-Breaking CNCF Event - Cloud Native Computing Foundation
<table>
<tr>
  <td colspan="2"><a href="https://www.cncf.io/blog/2019/02/12/kubecon-cloudnativecon-north-america-2018-conference-transparency-report-a-record-breaking-cncf-event/">KubeCon + CloudNativeCon North America 2018 Conference Transparency Report: A Record-Breaking CNCF Event - Cloud Native Computing Foundation</a></td>
</tr>
<tr>
  <td><img src="https://www.cncf.io/wp-content/uploads/2019/02/Screen-Shot-2019-02-11-at-4.21.11-PM-300x111.png"></td>
  <td>KubeCon + CloudNativeCon North America 2018 was a huge success with record-breaking registrations, attendance, sponsorships, and co-located events. Out of 8,000 attendees, 73% were first-time KubeCon-ers, highlighting massive growth and...</td>
</tr>
</table>

KubeCon + CloudNativeCon North America 2018 の来場者数などのレポート。
どのプロジェクトに興味があるか、といったような数字も紹介されている。

## IBM preps Watson AI services to run on Kubernetes
<table>
<tr>
  <td colspan="2"><a href="https://www.infoworld.com/article/3339778/artificial-intelligence/ibm-preps-watson-machine-learning-services-to-run-on-kubernetes.html">IBM preps Watson AI services to run on Kubernetes</a></td>
</tr>
<tr>
  <td><img src="https://images.idgesg.net/images/article/2019/02/container-ship_storage_transport_colorful-containers_diversity_outsourcing-100787326-large.3x2.jpg"></td>
  <td>IBM Watson services arrive in versions that can run on the public cloud or on privately hosted container infrastructure</td>
</tr>
</table>

IBMのWatsonがKubernetes上で動くようになったという話。
いまのところ Watson Assistant, Watson OpenScaleのみ対応。

## Will Kubernetes Be the Operating System for 5G? AT&T News Suggests Yes - Telecompetitor
<table>
<tr>
  <td colspan="2"><a href="https://www.telecompetitor.com/will-kubernetes-be-the-operating-system-for-5g-att-news-suggests-yes/">Will Kubernetes Be the Operating System for 5G? AT&T News Suggests Yes - Telecompetitor</a></td>
</tr>
<tr>
  <td><img src="https://telecompetitormain-pivotmedia.netdna-ssl.com/wp-content/themes/telecompetitor/images/telecompetitor-logo.png"></td>
  <td>Kubernetes is an open source software originally developed by Google to manage applicaitons requiring numnerous computing resources, which could make it a good candidate to manage 5G networks, which AT&T sees as . . .</td>
</tr>
</table>

5Gのインフラ構築にあたってもKubernetesは有望であるというような内容の記事。

## Joe Beda on Kubernetes & the CNCF 
<table>
<tr>
  <td colspan="2"><a href="https://www.infoq.com/podcasts/joe-beda-kubernetes-cncf">Joe Beda on Kubernetes & the CNCF </a></td>
</tr>
<tr>
  <td><img src="https://res.infoq.com/podcasts/joe-beda-kubernetes-cncf/en/headerimage/Joe-Beda-on-Kubernetes-CNCF-h-1549970097789.jpeg"></td>
  <td>Today on The InfoQ Podcast, Wes talks with Joe Beda. The two discuss the recent purchase of Heptio by VMWare, the Kubernetes Privilege Escalation Flaw (and the response to it), Kubernetes Enhancement Proposals, the CNCF/organization of Kubernetes, and some of the future hopes for the platform.</td>
</tr>
</table>

Kubernetesの co-creatorである　Joe BedaのPodCast
（聞いていない）

## What is Knative, and What Can It Do for You? - Container Journal
<table>
<tr>
  <td colspan="2"><a href="https://containerjournal.com/2019/02/13/what-is-knative-and-what-can-it-do-for-you/">What is Knative, and What Can It Do for You? - Container Journal</a></td>
</tr>
<tr>
  <td><img src="https://i2.wp.com/containerjournal.com/wp-content/uploads/2019/02/What-Is-Knative.jpg?fit=770%2C330&ssl=1"></td>
  <td>If you haven’t yet taken a look at what Knative is or how it can save time and headaches, you could be missing out on some powerful features.</td>
</tr>
</table>

Knativeとは何か、どういう人がそれを使うべきか　といったことが述べられている。

Knativeは何か新しいことができるものではないが、このようなことをKubernetesで実現しようと様々なツールを使っている人や、特に同じようなことを自前で実装しようとしている人は、knativeに乗ることで恩恵を受けることができるだろう、とのこと。

## Kubernetes and AI are like peas and carrots
<table>
<tr>
  <td colspan="2"><a href="https://appdevelopermagazine.com/kubernetes-and-ai-are-like-peas-and-carrots/">Kubernetes and AI are like peas and carrots</a></td>
</tr>
<tr>
  <td><img src="https://appdevelopermagazine.com/images/news_images/AI-and-Kubernetes-App-Developer-Magazine_kmz0qcbz.jpg"></td>
  <td>Developing AI systems on Kubernetes makes sense because of the many attributes the platform offers such as quickly scaling to large amount of processing power - something.</td>
</tr>
</table>

AIの動作環境としてKubernetesは有望であるという記事。


## Does Kubernetes have a target on its back? | TechBeacon
<table>
<tr>
  <td colspan="2"><a href="https://techbeacon.com/security/does-kubernetes-have-target-its-back">Does Kubernetes have a target on its back? | TechBeacon</a></td>
</tr>
<tr>
  <td><img src="https://techbeacon.com/sites/default/files/styles/social/public/field/image/target-kubernetes.jpg?itok=_G51pCqP"></td>
  <td>2018 was a wake-up call for Kubernetes. With its popularity, there are bound to be more attacks. Here's why, and what you can do about it.</td>
</tr>
</table>

Kubernetesをsecureに保つための方法。
とりあえずは、みんなと同じクラウドプロバイダに乗っておくのが良いのでは？ということらしい。

## CKAD(Certified Kubernetes Application Developer) — My journey
<table>
<tr>
  <td colspan="2"><a href="https://medium.com/@harioverhere/ckad-certified-kubernetes-application-developer-my-journey-3afb0901014">CKAD(Certified Kubernetes Application Developer) — My journey</a></td>
</tr>
<tr>
  <td><img src="https://cdn-images-1.medium.com/fit/c/100/100/1*cJV2RQsIeRwPeIFV1C0AwA.jpeg"></td>
  <td>I am happy and thrilled to have completed CKAD(Certified Kubernetes Application Developer) certification. My intention to take up this…</td>
</tr>
</table>

CKADを取った人の記録。オススメの本や、オンラインチュートリアル、参考サイトなど。

## Kubernetes as the simplest complex solution – DevOpsLinks Community Publication – Medium
<table>
<tr>
  <td colspan="2"><a href="https://medium.com/devopslinks/kubernetes-as-the-simplest-complex-solution-3e72ff5937c1">Kubernetes as the simplest complex solution – DevOpsLinks Community Publication – Medium</a></td>
</tr>
<tr>
  <td><img src="https://cdn-images-1.medium.com/max/1200/1*S9gqskM7GpuM3HurUHTCaA.png"></td>
  <td>Outlining my current thinking of the tradeoffs around administering production software with Kubernetes</td>
</tr>
</table>

SimpleであることとComplexであるということは両立する、という観点でKubernetesのComplexさと、それをいかにSimpleに実現しているかということを説明している。