KubeWeekly #177

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

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



# The Headlines

## Kubernetes Podcast from Google
<table>
<tr>
  <td colspan="2"><a href="https://kubernetespodcast.com/episode/062-cern/">Kubernetes Podcast from Google</a></td>
</tr>
<tr>
  <td><img src="https://kubernetespodcast.com/_assets/images/Kubernetes-Podcast-Logo_1400x1400.png"></td>
</tr>
</table>

Kubernetes Podcast。CERNの巨大なKubernetesクラスタについて。

## Kubernetes Deployments: The Ultimate Guide
<table>
<tr>
  <td colspan="2"><a href="https://semaphoreci.com/blog/kubernetes-deployment">Kubernetes Deployments: The Ultimate Guide</a></td>
</tr>
<tr>
  <td><img src="https://semaphoreci.com/wp-content/uploads/2019/07/kubernetes-ultimate-guide.png"></td>
  <td>What you need to know about Kubernetes deployments to deliver your Docker containers to production.</td>
</tr>
</table>

Deploymentの動きについての丁寧な説明。
Kubernetes初学者にもわかるように、Podとは？ReadinessProbeとは？、ReplicaSetとは？Label,Selectorとは？Serviceとは？などということも解説されている。

# The Technical

## Build cloud-native apps faster for Kubernetes with Kabanero, a new open source project from IBM
<table>
<tr>
  <td colspan="2"><a href="https://developer.ibm.com/blogs/cloud-native-apps-kubernetes-kabanero/">Build cloud-native apps faster for Kubernetes with Kabanero, a new open source project from IBM</a></td>
</tr>
<tr>
  <td><img src="https://developer.ibm.com/developer/blogs/cloud-native-apps-kubernetes-kabanero/social.jpg"></td>
  <td>Learn about three new open source projects -- Kabanero, Appsody, and Codewind -- that developers can use to build cloud-native apps faster for Kubernetes environments.</td>
</tr>
</table>

IBMがオープンソースで公開しているツールを紹介

- Kabanero: Knative, Istio, Tektonとこの後紹介する Appsody, Codewind、Razeeを同梱したもの
- Appsody: クラウドネイティブなアプリケーションの雛形をつくるアプリケーション
- Codewind: IDEとクラウドネイティブアプリケーションを統合するためのツール
- Razee: マルチクラスタ対応のCDツール。

## A deep dive into Kubernetes federation v2 · Banzai Cloud
<table>
<tr>
  <td colspan="2"><a href="https://banzaicloud.com/blog/multi-cloud-fedv2/">A deep dive into Kubernetes federation v2 · 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 federation v2の紹介。
BonzaiCloudのPKEがKube Fed v2をサポートしたということで、その説明と使い方のデモ。

## Avoid time-of-measurement bias with Prometheus
<table>
<tr>
  <td colspan="2"><a href="https://blog.lawrencejones.dev/incremental-measurement/">Avoid time-of-measurement bias with Prometheus</a></td>
</tr>
<tr>
  <td>Most Prometheus metrics recording durations are subject to a time-of-measurement bias, causing misleading graphs that can derail investigations. See how an open-source Tracer can help solve this problem.</td>
</tr>
</table>

バッチ処理のワーカーのjobごとにかかった時間をPrometheusで収集できるように公開していたが、jobが終了するタイミングでその時間を更新する方法で実装したところ、意図しないメトリクスとなってしまっった、というPrometheusにありがちな落とし穴の紹介。

また、これを解決するための[Tracer](https://github.com/lawrencejones/prometheus-client-tracer-ruby)という仕組みを紹介している。

## Virtual Kubelet Turns 1.0 — Deep Dive
<table>
<tr>
  <td colspan="2"><a href="https://medium.com/microsoftazure/virtual-kubelet-turns-1-0-deep-dive-b64056061b18">Virtual Kubelet Turns 1.0 — Deep Dive</a></td>
</tr>
<tr>
  <td><img src="https://miro.medium.com/max/1200/1*kuhcHqw2UyK0ouiKK-g3Nw.png"></td>
  <td>For the last year-ish I’ve been working on Virtual Kubelet, a pretty cool project created by some awesome people (not me). A lot has…</td>
</tr>
</table>

Virtual Kubeletが1.0になった、という記事。

Virtual KubeletはNodeとそこで動くPodを扱うためのフレームワークとして作り込まれ、各クラウドプロバイダごとの実装が、それをインポートする形になっているようだ。

この記事ではそのフレームワークの簡単な使い方を示している。

## Failure Injection using the Service Mesh Interface and Linkerd
<table>
<tr>
  <td colspan="2"><a href="https://linkerd.io/2019/07/18/failure-injection-using-the-service-mesh-interface-and-linkerd/">Failure Injection using the Service Mesh Interface and Linkerd</a></td>
</tr>
<tr>
  <td><img src="https://linkerd.io/uploads/internal-server-error.png"></td>
  <td>Application failure injection is a form of chaos engineering where we artificially increase the error rate of certain services in a microservice application to see what impact that has on the system as a whole. Traditionally, you would need to add some kind of failure injection library into your service code in order to do application failure injection. Thankfully, the service mesh gives us a way to inject application failures without needing to modify or rebuild our services at all.
</td>
</tr>
</table>

LinkerdでFailure injectionを実現する方法の紹介。 エラーのみを返すアプリケーションを作り、それに対してTrafic Splitを設定することで実現している。
サービスメッシュの層でこれを実現することで、アプリケーションに手を加えずにFault Injectionが実現できる。

## Secure Control of Egress Traffic in Istio, part 2
<table>
<tr>
  <td colspan="2"><a href="https://istio.io/blog/2019/egress-traffic-control-in-istio-part-2/">Secure Control of Egress Traffic in Istio, part 2</a></td>
</tr>
<tr>
  <td>Use Istio Egress Traffic Control to prevent attacks involving egress traffic.</td>
</tr>
</table>

egressのトラフィックを規制する方法について。
よく話題になるのはingress方向のトラフィックからの防御だが、クラスタに侵入された場合においてはegressのトラフィックをどのように規制するかが問題になってくる。

この記事では、egressのトラフィックを規制する方法を紹介している。
また攻撃者が、単純な防御をかいくぐろうとした場合の注意点についてもまとめられている。

(感想)egressのセキュリティを考える場合はistioの注入しているsidecarを迂回されることも考える必要がある。などといった一歩踏み込んだセキュリティ対策は、考えたことがなかった。

## Kubernetes, etcd and disk throughput - Ricard Bejarano
<table>
<tr>
  <td colspan="2"><a href="https://blog.bejarano.io/kubernetes-etcd-and-disk-throughput.html">Kubernetes, etcd and disk throughput - Ricard Bejarano</a></td>
</tr>
<tr>
  
  <td>TL;DR: ensure sufficient disk read and write speeds for your etcd cluster nodes. Any minimally decent hard drive will do, but don't put /var/lib/etcd on a thumb drive.</td>
</tr>
</table>

[先週紹介済み。](https://qiita.com/inajob/items/c821d43cdfb8e99d31a7#kubernetes-etcd-and-disk-throughput---ricard-bejarano)

## Kubernetes and Containers Best Practices - Health Probes
<table>
<tr>
  <td colspan="2"><a href="https://www.magalix.com/blog/kubernetes-and-containers-best-practices-health-probes">Kubernetes and Containers Best Practices - Health Probes</a></td>
</tr>
<tr>
  <td><img src="https://www.magalix.com/hubfs/High%20observability%20principle%20%28HOP%29.jpg#keepProtocol"></td>
  <td>Learn about High Observability Principle (HOP) and how to apply it inside Kubernetes through readinessProbe and the livenessProbe. Code examples included!</td>
</tr>
</table>

readinessProbeとlivenessProbeの紹介と、実装方法の例。

## To Rook, or not to Rook, that’s Kubernetes
<table>
<tr>
  <td colspan="2"><a href="https://medium.com/flant-com/to-rook-in-kubernetes-df13465ff553">To Rook, or not to Rook, that’s Kubernetes</a></td>
</tr>
<tr>
  <td><img src="https://miro.medium.com/max/1200/0*MrxXNO55N-rSYLEb.png"></td>
  <td>Why and what we like in Rook using it with Ceph in our production Kubernetes clusters.</td>
</tr>
</table>

Rook1.0.0がリリースされた。
この記事ではRookを導入する方法や、YAMLで簡単にS3互換ストレージが利用できることを紹介している。

## Introducing rbIAM: a unified AWS IAM & Kubernetes RBAC access control exploration tool
<table>
<tr>
  <td colspan="2"><a href="https://mhausenblas.info/rbIAM/">rbIAM</a></td>
</tr>
<tr>
  
  <td>Unified AWS IAM & Kubernetes RBAC access control</td>
</tr>
</table>

EKSにおいて AWSのIAMとKubernetesのRBACをいい感じに閲覧することができるツール　rbIAM

## Preparing an application for Istio  |  Istio on GCP |  Google Cloud
<table>
<tr>
  <td colspan="2"><a href="https://cloud.google.com/istio/docs/prepare-app-for-istio">Preparing an application for Istio  |  Istio on GCP
       |  Google Cloud</a></td>
</tr>
</table>

GKEにおけるIstioの使い方。
アプリケーションをコンテナ化し、マニフェストを書いてGKEにデプロイ。その後istioを入れるところまでのチュートリアル。

## Kubernetes Journey — Up and running out of the cloud — flannel
<table>
<tr>
  <td colspan="2"><a href="https://itnext.io/kubernetes-journey-up-and-running-out-of-the-cloud-flannel-c01283308f0e">Kubernetes Journey — Up and running out of the cloud — flannel</a></td>
</tr>
<tr>
  <td><img src="https://miro.medium.com/max/1200/1*yvTpoKqNTBkURxamI_dzSQ.jpeg"></td>
  <td>In this article, we’ll present some details about flannel and what role it performs in a Kubernetes network. I highly recommend you to…</td>
</tr>
</table>

Kubernetes under the hoodというシリーズの記事。今回は”flannel”。
「ホテルの内線・外線」の例えを使ってflannelの動作をわかりやすく説明している。

## Automate Progressive Deployments to Kubernetes with Flagger and Linkerd
<table>
<tr>
  <td colspan="2"><a href="https://www.weave.works/blog/automate-progressive-deployments-to-kubernetes-with-flagger-and-linkerd">Automate Progressive Deployments to Kubernetes with Flagger and Linkerd</a></td>
</tr>
<tr>
  <td><img src="https://www.weave.works/assets/images/blt5d9841174465229b/flagger-linkerd-traffic-split.png"></td>
  <td>Use Flagger with Linkerd to automate progressive deployments like canaries and other advanced deployment strategies for your Kubernetes workloads.   Linkerd implements the Service Mesh Interface (SMI) Traffic Split API. This allows Flagger to control the traffic between two versions of the same application.</td>
</tr>
</table>

カナリアリリースを上手いことやってくれるFlaggarとLinkerdの連携について紹介している記事。
LinkerdがService Mesh Interface(SMI)に準拠したおかげで、このように外部ツールとの連携が強化できているとのこと。

## [Post Mortem: Kubernetes Node OOM](https://www.bluematador.com/blog/post-mortem-kubernetes-node-oom)

実際に本番環境でNodeがメモリ使いすぎにより利用できなくなった障害についての詳細報告。
結論としてはログ転送のPodがメモリを使いすぎていたということのようですが、Namespaceが別れているため障害時に気づけなかったということのようです。

# The Editorial

## 030: Cloud Native Ops with Ansible and Kubernetes | CloudSkills.fm
<table>
<tr>
  <td colspan="2"><a href="https://cloudskills.fm//030">030: Cloud Native Ops with Ansible and Kubernetes | CloudSkills.fm</a></td>
</tr>
<tr>
  <td><img src="https://media.simplecast.com/episode/image/304374/small_1563381388-artwork.jpg"></td>
  <td>In this episode I had a chance to chat with Chris Short from the Ansible team at RedHat. We discuss Ansible, Kubernetes, and the importance of building up your Linux skills as the industry transitions into a cloud native world. Chris is also a CNCF Ambassador and runs the DevOps, Cloud Native, and open source focused newsletter DevOps’ish.</td>
</tr>
</table>

Podcastの紹介。RedHatのAnsibleチームの方が、AnsibleやKubernetesについて話しているようです。

## Kubernetes 2020: What’s in store for next year and beyond?
<table>
<tr>
  <td colspan="2"><a href="http://techgenix.com/kubernetes-2020/">Kubernetes 2020: What’s in store for next year and beyond?</a></td>
</tr>
<tr>
  <td><img src="http://techgenix.com/tgwordpress/wp-content/uploads/2019/07/Kubernetes-2020-lede2-1024x428.jpg"></td>
  <td>In 2019, everyone’s got their eggs in one big Kubernetes basket. And it’s safe to say that Kubernetes 2020 will see more eggs and a bigger basket.</td>
</tr>
</table>

2020年Kubernetesはどうなるか？という記事。

- Serverless orchestration
- Hybrid orchestration
- End-to-end CI/CD

などのテーマで現在の動きと将来への期待について言及している。

## [Why we're moving our agency, and clients, to Kubernetes.](http://www.thisismess.com/blog/why-we-are-moving-our-agency-and-clients-kubernetes/)

Kubernetesに移行した話。
Kubernetesにしたおかげで、ごく稀に大量トラフィックがくるようなサービスについて、過剰にサーバを用意する必要がなくなったとのこと。

## Why Did DevOps Become So Popular? 3 Theories - DevOps.com
<table>
<tr>
  <td colspan="2"><a href="https://devops.com/why-did-devops-become-so-popular-3-theories/">Why Did DevOps Become So Popular? 3 Theories - DevOps.com</a></td>
</tr>
<tr>
  <td><img src="https://devops.com/wp-content/uploads/2019/07/DevOps-Popular-Theories.jpg"></td>
  <td>As we look back at the history of DevOps, it's worth asking: Where did DevOps come from, and why did it take off when it did? Let's explore those questions.</td>
</tr>
</table>

なぜDevOpsがこんなに流行ったのか？という記事。

- DevOpsが非常に優れたアイデアだったから
- アジャイルが発展したから
- ITの歴史の流れで必然性が生まれた

など、いくつかの説を紹介している。

## Kubernetes by the numbers: 13 compelling stats
<table>
<tr>
  <td colspan="2"><a href="https://enterprisersproject.com/article/2019/7/kubernetes-statistics-13-compelling">Kubernetes by the numbers: 13 compelling stats</a></td>
</tr>
<tr>
  <td><img src="https://enterprisersproject.com/sites/default/files/cio_kubernetes.png"></td>
  <td>Let’s quantify what’s going on with Kubernetes. These statistics speak to reach, adoption, Github activity, job openings - and hint at what’s ahead.</td>
</tr>
</table>

Kubermetesにまつわる13の数字という記事。

- $4.3 billion 2022年におけるコンテナの市場規模
- 87 percent コンテナ技術を利用している割合
- 90 percent 利用しているうちの90%がプロダクションでも利用している
- 65 percent 利用しているうちの複数のオーケストレーションツール利用の割合
- 8,000+ KubeCon+CloudNativeCon North America 2018の参加者
- 40 percent Kubernetes利用企業の割合
- 80,798 GitHubのCommit数
- 2,206 GitHubのActive Contributer数
- 55,519 GitHubのStar
- 8 GitHubのオープンソースプロダクトの順位におけるKubernetesの位置
- 4 100の価値あるリポジトリ (by U°OS)　に含まれるKubernetes関係のリポジトリ数
- 100 certified Kubernetes service providersの数
- $100,000+ salaries 求人市場におけるKubernetesポジションの価値

出典なども元記事に書かれている

## How to prepare and pass Certified Kubernetes Administrator(CKA) exam
<table>
<tr>
  <td colspan="2"><a href="https://medium.com/@sovmirich/preparing-and-passing-the-certified-kubernetes-administrator-cka-exam-4a76fa4b1c4">How to prepare and pass Certified Kubernetes Administrator(CKA) exam</a></td>
</tr>
<tr>
  <td><img src="https://miro.medium.com/fit/c/96/96/0*Ycf0KqnCEOoRe37p.jpg"></td>
  <td>In this post I want to share my successful experience in preparing and passing the Certified Kubernetes Administrator (CKA) exam.</td>
</tr>
</table>

CKA受験のための準備についての有用な教材・アドバイス

## Kubernetes Security 101 - Everything You Must Know to Secure k8s · StackRox: Container Security for Docker and Kubernetes
<table>
<tr>
  <td colspan="2"><a href="https://www.stackrox.com/post/2019/07/kubernetes-security-101/">Kubernetes Security 101 - Everything You Must Know to Secure k8s · StackRox: Container Security for Docker and Kubernetes</a></td>
</tr>
<tr>
  <td><img src="https://res.cloudinary.com/stackrox/v1563842597/kubernetes-security-101-blog-banner.jpg"></td>
  <td>We take a deep dive into different areas of Kubernetes security and provide practical recommendations to help you build a resilient cloud-native infrastructure. </td>
</tr>
</table>

Kubernetesのセキュリティについての概要。
コンテナ環境における特有の注意事項に関する説明や、Kubernetesのセキュリティにまつわる機能紹介、最後にセキュリティを高く保つための12の質問が紹介されている。