KubeWeekly #157

# KubeWeekly読書メモ紹介
半年ほど細々と「KubeWeekly読書メモ」を公開してきました→ https://qiita.com/tags/kubeweekly
今回はちょうどシーズンなのでAdventCalendarとして公開することにします！

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


# The Headlines

## Kubernetes 1.13: Simplified Cluster Management with Kubeadm, Container Storage Interface (CSI), and CoreDNS as Default DNS are Now Generally Available
<table>
<tr>
  <td colspan="2"><a href="https://kubernetes.io/blog/2018/12/03/kubernetes-1-13-release-announcement/">Kubernetes 1.13: Simplified Cluster Management with Kubeadm, Container Storage Interface (CSI), and CoreDNS as Default DNS are Now Generally Available</a></td>
</tr>
<tr>
  
  <td>Author: The 1.13 Release Team
We’re pleased to announce the delivery of Kubernetes 1.13, our fourth and final release of 2018!
Kubernetes 1.13 has been one of the shortest releases to date at 10 weeks. This release continues to focus on stability and extensibility of Kubernetes with three major features graduating to general availability this cycle in the areas of Storage and Cluster Lifecycle. Notable features graduating in this release include: simplified cluster management with kubeadm, Container Storage Interface (CSI), and CoreDNS as the default DNS.</td>
</tr>
</table>

Kubernetes1.13リリースの報告記事。
1.13はいつもの3ヶ月周期より早く10週でリリースされた。　Kubeadm GA, CSI GA, CoreDNSデフォルト化に注力したリリース。

## Production-Ready Kubernetes Cluster Creation with kubeadm
<table>
<tr>
  <td colspan="2"><a href="https://kubernetes.io/blog/2018/12/04/production-ready-kubernetes-cluster-creation-with-kubeadm/">Production-Ready Kubernetes Cluster Creation with kubeadm</a></td>
</tr>
<tr>
  
  <td>Authors: Lucas Käldström (CNCF Ambassador) and Luc Perkins (CNCF Developer Advocate)
kubeadm is a tool that enables Kubernetes administrators to quickly and easily bootstrap minimum viable clusters that are fully compliant with Certified Kubernetes guidelines. It’s been under active development by SIG Cluster Lifecycle since 2016 and we’re excited to announce that it has now graduated from beta to stable and generally available (GA)!
This GA release of kubeadm is an important event in the progression of the Kubernetes ecosystem, bringing stability to an area where stability is paramount.</td>
</tr>
</table>

Kubernetes1.13でGAとなったkubeadmの紹介

## The Kubernetes Cluster API – Heptio
<table>
<tr>
  <td colspan="2"><a href="https://blog.heptio.com/the-kubernetes-cluster-api-de5a1ff870a5">The Kubernetes Cluster API – Heptio</a></td>
</tr>
<tr>
  <td><img src="https://cdn-images-1.medium.com/max/1200/1*MtJFkhIIMUU2PhLd656XoQ.png"></td>
  <td>I’ve been close to Kubernetes for a long time (considering Kubernetes is just a little over four years old). My first commit was in…</td>
</tr>
</table>

ClusterAPI開発のモチベーションについて。

# The Technical

## K8s Selenium Grid — Selenium Grid with Docker on Kubernetes
<table>
<tr>
  <td colspan="2"><a href="https://medium.com/@subbarao.pilla/k8s-selenium-grid-selenium-grid-with-docker-on-kubernetes-42af8b9a2cba">K8s Selenium Grid — Selenium Grid with Docker on Kubernetes</a></td>
</tr>
<tr>
  <td><img src="https://cdn-images-1.medium.com/max/1200/1*jZtvyGjlUtMWsE4NIzrSxA.png"></td>
  <td>Getting Started</td>
</tr>
</table>

Selenium GridをminikubeとGCP(?)にデプロイする方法の紹介。

## Kubernetes Ingress Controllers and Certificates: The Walkthrough
<table>
<tr>
  <td colspan="2"><a href="http://jessicadeen.com/kubernetes-ingress-controllers-and-certificates-the-walkthrough/">Kubernetes Ingress Controllers and Certificates: The Walkthrough</a></td>
</tr>
<tr>
  <td><img src="https://res.cloudinary.com/jldeen/image/upload/Screen-Shot-2018-11-21-at-13.39.59.png"></td>
  <td>I have gone through a written walk through of Ingresses and Helm Charts before back in May, but this is the updated version with a video; I'm SO excited. The content I walkthrough today is something that's been asked about for a very long time and I could not be</td>
</tr>
</table>

Ingress Controllerと証明書について、動画で紹介している（みていない）

## Unprivileged OCI image builds on Kubernetes · Banzai Cloud
<table>
<tr>
  <td colspan="2"><a href="None">Unprivileged OCI image builds on Kubernetes · Banzai Cloud</a></td>
</tr>
<tr>
  <td><img src="https://banzaicloud.com//img/m-logo-inverse.png"></td>
  <td>Bringing cloud native to the enterprise, simplifying the transition to microservices on Kubernetes</td>
</tr>
</table>

kubernetes上で動作するCIツールで特権なしで、コンテナイメージをビルドする方法の紹介。
imgやKanikoを紹介し、またDrone.ioからKanikoを利用することができるプラグイン [GitHub - banzaicloud/kaniko-plugin: A thin shim-wrapper around the official Google Kaniko Docker image to make it behave like the Drone Docker plugin.](https://github.com/banzaicloud/kaniko-plugin) を紹介している。

## The Mechanics of Kubernetes – Dominik Tornow – Medium
<table>
<tr>
  <td colspan="2"><a href="https://medium.com/@dominik.tornow/the-mechanics-of-kubernetes-ac8112eaa302">The Mechanics of Kubernetes – Dominik Tornow – Medium</a></td>
</tr>
<tr>
  <td><img src="https://cdn-images-1.medium.com/max/1200/1*svtj02h8Xh9fSFX8V7xo_w.png"></td>
  <td>By Andrew Chen and Dominik Tornow</td>
</tr>
</table>

Kubernetesは宣言的に理想的な状態を定義し、その状態に現実を合わせていく、という説明をよくするが、その細かい所を解説する記事。

## Running Vault and Consul on Kubernetes
<table>
<tr>
  <td colspan="2"><a href="https://testdriven.io/blog/running-vault-and-consul-on-kubernetes/">Running Vault and Consul on Kubernetes</a></td>
</tr>
<tr>
  <td></td>
  <td>In the following tutorial we'll walk you through provisioning Hashicorp's Vault and Consul on Kubernetes.</td>
</tr>
</table>

minikubeで作ったKubernetesクラスタ上にVaultとConsulをデプロイする方法の紹介。
まずConsulをつくりそれをバックエンドとしたVaultを作成する。
使ったスクリプトなどはgithubにまとめられている [GitHub - testdrivenio/vault-consul-kubernetes: vault + consul on kubernetes](https://github.com/testdrivenio/vault-consul-kubernetes)

## Kubernetes & Traefik locally with a wildcard certificate
<table>
<tr>
  <td colspan="2"><a href="https://medium.com/localz-engineering/kubernetes-traefik-locally-with-a-wildcard-certificate-e15219e5255d">Kubernetes & Traefik locally with a wildcard certificate</a></td>
</tr>
<tr>
  <td><img src="https://cdn-images-1.medium.com/max/1200/1*DJq8WwJXMNSJjqpvtPHc-Q.png"></td>
  <td>As a passionate software engineer at Localz, I get to tinker with fancy new tools (in my own time) and then annoy my coworkers by…</td>
</tr>
</table>

docker for Macで作成したKubernetesクラスタにTraefik-ingress-controllerをデプロイしSSLでingressにアクセスできるようにする。
ドメインはMacのローカルにdnsmasqをたててそちらを参照するようにしている。

## Exposing Kubernetes workloads to the world without losing sleep (or your mind)!
<table>
<tr>
  <td colspan="2"><a href="https://medium.com/@elad.ishay_10522/exposing-kubernetes-workloads-to-the-world-without-losing-sleep-or-your-mind-71776968d3e5">Exposing Kubernetes workloads to the world without losing sleep (or your mind)!</a></td>
</tr>
<tr>
  <td><img src="https://cdn-images-1.medium.com/max/1200/1*BRceldmcNfpXfpmFQv5W5w.png"></td>
  <td>So you’ve got your Kubernetes cluster up and running and now its time to expose workloads to the outside world in a secure fashion.</td>
</tr>
</table>

Kubernetesクラスタ内のサービスを安全にインターネットに公開する方法について紹介。
External DNSで動的にDNSを設定、oauth2_proxyで認証、nginx-ingressでL7のクラスタの入り口を作成、Kube LegoでLet's Encryptの証明書を発行

## A Cloud-Native API Part 2: Google Endpoints – High Alpha – Medium
<table>
<tr>
  <td colspan="2"><a href="https://medium.com/high-alpha/a-cloud-native-api-part-2-google-endpoints-3753ee0280d8">A Cloud-Native API Part 2: Google Endpoints – High Alpha – Medium</a></td>
</tr>
<tr>
  <td><img src="https://cdn-images-1.medium.com/max/1200/1*-IZZqJcXYusKOki7Zivu0A.png"></td>
  <td>In the first part of this guide (which you can find here), we created our Hello World api on Google’s Kubernetes Engine (GKE), and got to…</td>
</tr>
</table>

[Cloud Endpoints](https://cloud.google.com/endpoints/)を利用したAPIの公開。APIのバックエンドとしてKubernetes上のPodを登録している。
Cloud EndpointsにはOpenAPI形式で仕様を登録しておく、これにより、バリデーションやモニタリング、流量制限などが実現できるようだ。

## Istio step-by-step Part 04 — Traffic routing path of Istio service-mesh (Part A — Ingress routing)
<table>
<tr>
  <td colspan="2"><a href="https://medium.com/devopslinks/istio-step-by-step-part-04-traffic-routing-path-of-istio-service-mesh-part-a-ingress-routing-28e03cdaa048">Istio step-by-step Part 04 — Traffic routing path of Istio service-mesh (Part A — Ingress routing)</a></td>
</tr>
<tr>
  <td><img src="https://cdn-images-1.medium.com/max/1200/1*dlAoouloOs-h8xQNQ4FiZQ@2x.jpeg"></td>
  <td>Hi! Welcome back to my Istio step-by-step tutorial series. This tutorial contains two parts as Part A-Ingress traffic routing and Part…</td>
</tr>
</table>

Istioを使って、クラスタの外からの通信を制御する方法の紹介。
Gateway, VirtualService, Serviceの流れの解説

# Tooling Spotlight

## danderson/virtuakube
<table>
<tr>
  <td colspan="2"><a href="https://github.com/danderson/virtuakube">danderson/virtuakube</a></td>
</tr>
<tr>
  <td><img src="https://avatars1.githubusercontent.com/u/1918?s=400&v=4"></td>
  <td>Virtual k8s cluster for testing. Contribute to danderson/virtuakube development by creating an account on GitHub.</td>
</tr>
</table>

仮想的にKubernetesを作るアプリケーション。minikubeと似ているが、node数を自由に増やせること、システムの特権が不要なこと、インターネットに繋がらなくても動作すること、などの違いがある。
qemuをつかうらしい。

## stefanprodan/flagger
<table>
<tr>
  <td colspan="2"><a href="https://github.com/stefanprodan/flagger">stefanprodan/flagger</a></td>
</tr>
<tr>
  <td><img src="https://avatars3.githubusercontent.com/u/3797675?s=400&v=4"></td>
  <td>Istio progressive delivery Kubernetes operator. Contribute to stefanprodan/flagger development by creating an account on GitHub.</td>
</tr>
</table>

Istioをいい感じに設定してカナリアリリースを実現するオペレータ。
徐々に割合を増やしつつ、レスポンスタイムやエラーレートをみて、自動的に切り戻したりすることもできる。
カナリアの動作を確認するメトリクスや、問題があった時のアラーティングなどの機能もある。

# The Editorial
## Benchmark results of Kubernetes network plugins (CNI) over 10Gbit/s network
<table>
<tr>
  <td colspan="2"><a href="https://itnext.io/benchmark-results-of-kubernetes-network-plugins-cni-over-10gbit-s-network-36475925a560">Benchmark results of Kubernetes network plugins (CNI) over 10Gbit/s network</a></td>
</tr>
<tr>
  <td><img src="https://cdn-images-1.medium.com/max/1200/1*CejvF2mlwcV27sAy-sz1VQ.png"></td>
  <td>Kubernetes is a great orchestator for containers. But it does not manage network for Pod-to-Pod communication. This is the mission of…</td>
</tr>
</table>

10Gbit環境でのCNIのベンチマーク。Jumbo framesに対応したネットワークでの実験。

- セットアップが簡単では無いCNI
- MTUを自動で設定しないCNI
- 通信の暗号化
- ネットワークポリシーの実装
- ネットワークパフォーマンス
- CPU・メモリ利用率

## SuperGloo: The Service Mesh Orchestration Platform – solo.io – Medium
<table>
<tr>
  <td colspan="2"><a href="https://medium.com/solo-io/https-medium-com-solo-io-supergloo-ff2aae1fb96f">SuperGloo: The Service Mesh Orchestration Platform – solo.io – Medium</a></td>
</tr>
<tr>
  <td><img src="https://cdn-images-1.medium.com/max/1200/1*5B9AnFqsglTxUs_H2Ewvxw.png"></td>
  <td>Today we are thrilled to announce the release of SuperGloo, an open-source project to manage and orchestrate service meshes at scale…</td>
</tr>
</table>

SuperGlooの紹介。様々なサービスメッシュのアプリケーションを共有のインターフェースで操作できるようにするもののようだ。
対応しているのは　istio,AWS App Mesh, Consul Connect, Linkerd2

## As We May Kube* – ITNEXT
<table>
<tr>
  <td colspan="2"><a href="https://itnext.io/as-we-may-kube-293b30c0a365">As We May Kube* – ITNEXT</a></td>
</tr>
<tr>
  <td><img src="https://cdn-images-1.medium.com/max/1200/1*80rIRdW86OOqds99tLi6dw.jpeg"></td>
  <td>We use different programming languages and development environments to write apps. Each language comes with a different flow and also we…</td>
</tr>
</table>

Kubernetesを使った開発フローを改善する様々なツールの紹介と[kubed-sh | The Kubernetes distributed shell, for the casual cluster user](http://kubed.sh/) という一風変わったkubernetesの開発環境の紹介。

kubedはシェルを提供し、そのシェルで実行したアプリケーションはkubernetes上で動いているように見える。telepresenceにシェルがついたようなものなのだろうか？（アーキテクチャなどは見ていないので想像です。

## New Contributor Workshop Shanghai
<table>
<tr>
  <td colspan="2"><a href="https://kubernetes.io/blog/2018/12/05/new-contributor-workshop-shanghai/">New Contributor Workshop Shanghai</a></td>
</tr>
<tr>
  <td><img src="https://kubernetes.io//images/blog/2018-12-05-new-contributor-shanghai/attendees.png"></td>
  <td>Authors: Josh Berkus (Red Hat), Yang Li (The Plant), Puja Abbassi (Giant Swarm), XiangPeng Zhao (ZTE)
   Kubecon Shanghai New Contributor Summit attendees. Photo by Jerry Zhang   We recently completed our first New Contributor Summit in China, at the first KubeCon in China. It was very exciting to see all of the Chinese and Asian developers (plus a few folks from around the world) interested in becoming contributors.</td>
</tr>
</table>

KubeCon上海でのContributer workshopの紹介

> Both the “Great Firewall” and the language barrier prevent contributing Kubernetes from China from being straightforward. 

大変さが伺える

## The “Function” Package - Creating a Spec for Serverless Application Packaging - Cloud Native Computing Foundation
<table>
<tr>
  <td colspan="2"><a href="https://www.cncf.io/blog/2018/12/04/serverless-application-packaging/">The “Function” Package - Creating a Spec for Serverless Application Packaging - Cloud Native Computing Foundation</a></td>
</tr>
<tr>
  <td><img src="https://www.cncf.io/wp-content/uploads/2018/12/Picture1.png"></td>
  <td>by Yoav Landman, CTO, JFrog What’s in a function? Creating serverless applications is a multi-step process. One of the critical steps in this process is packaging the serverless functions you...</td>
</tr>
</table>

FaaSの実現方法としてコンテナ方式と、ベンダー独自の方式がある。ベンダー独自の方式の場合Functionの依存するライブラリなどは、それぞれのベンダー固有の方法で管理するが、それを企画化することで、ベンダーロックインを回避し、ポータビリティの高いFunction as a Serviceが実現できるのでは無いか？という提案

## A Look Back At KubeCon + CloudNativeCon Shanghai 2018 - Cloud Native Computing Foundation
<table>
<tr>
  <td colspan="2"><a href="https://www.cncf.io/blog/2018/12/05/a-look-back-at-kubecon-cloudnativecon-shanghai-2018/">A Look Back At KubeCon + CloudNativeCon Shanghai 2018 - 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>Now that we’ve finally caught our breath after a fantastic two days at the KubeCon + CloudNativeCon in Shanghai, let’s dive into some of the key highlights and news. The...</td>
</tr>
</table>

KubeCon+CloudNativeCon Shanghaiの様子
HarborがCNCF sandboxからincubationに移行した。Harborは中国コミュニティで作られたプロダクトで最初にCNCFに入ったものである。

## Ever higher in the stack: the “app native” paradigm and the future direction of OSS projects
<table>
<tr>
  <td colspan="2"><a href="https://medium.com/@lperkins/ever-higher-in-the-stack-the-app-native-paradigm-and-the-future-direction-of-oss-projects-d896f90b0a54">Ever higher in the stack: the “app native” paradigm and the future direction of OSS projects</a></td>
</tr>
<tr>
  <td><img src="https://cdn-images-1.medium.com/max/1200/0*y9sjo02afPL4p_e1"></td>
  <td>The OSS world remains tightly focused on plumbing. But we will likely see the emergence of an “app native” paradigm of OSS focused on…</td>
</tr>
</table>

Kubernetesのようなプラットフォームを構成するようなアプリケーションをApp-nativeと呼び、今後そういうものを期待しているという内容の記事。
例として、note(evernoteみたいなの), calendars, task tracking and project management, chat, devaice, rental, multimedia content presentation(youtubeなど)を挙げている。

## How we transitioned to Kubernetes – Ricardo Domingos – Medium
<table>
<tr>
  <td colspan="2"><a href="https://medium.com/@ricardohsd/how-we-transitioned-to-kubernetes-e26392086215">How we transitioned to Kubernetes – Ricardo Domingos – Medium</a></td>
</tr>
<tr>
  <td><img src="https://cdn-images-1.medium.com/max/1200/1*Q2wLuu2QNP9HRocI7bBSDg.jpeg"></td>
  <td>At the beginning of 2018 I've joined the Platform team at COUP, an eScooter sharing company providing scooters in the European cities of…</td>
</tr>
</table>

ドイツのスクーターレンタル会社がも乗りシックアプリをKubernetesに移行している話。
EC2とTerraformで頑張っていたが、マイクロサービス化するにあたりKubernetesへの移行を検討し始めた。
GKEはドイツリージョンがなかったのでkopsで作っているとのこと。　 CI/CDはTravisCIとBuildkite

## Everything You Need to Know about Containers, Part III: Orchestration with Kubernetes | Linux Journal
<table>
<tr>
  <td colspan="2"><a href="None">Everything You Need to Know about Containers, Part III: Orchestration with Kubernetes | Linux Journal</a></td>
</tr>
<tr>
  <td><img src="https://www.linuxjournal.com//sites/default/files/inline-images/become_a_patron_button.png"></td>
  <td></td>
</tr>
</table>

Kubernetesの紹介と、conjure-upを使ったKubernetesクラスタの構築方法の紹介

## Cloud Computing Predictions for Containers and Kubernetes
<table>
<tr>
  <td colspan="2"><a href="https://solutionsreview.com/cloud-platforms/cloud-computing-predictions-containers-kubernetes/">Cloud Computing Predictions for Containers and Kubernetes</a></td>
</tr>
<tr>
  <td><img src="https://solutionsreview.com/cloud-platforms/files/2018/11/Cloud-Computing-Predictions-for-Containers-and-Kubernetes-.jpg"></td>
  <td>Containers have grown in popularity due to their mobility, speed, and functionality. The enterprise IT space constantly evolves, and for now, containers will drive this evolution. For example, team…</td>
</tr>
</table>

コンテナやKubernetesに関する将来の予想。年末だしこういう記事が多いのかな？