KubeWeekly #178

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

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


# The Headlines

## What's New in Kubernetes 1.15 - Cloud Native Computing Foundation
<table>
<tr>
  <td colspan="2"><a href="https://www.cncf.io/community/webinars/kubernetes-1-15-release/">What's New in Kubernetes 1.15 - 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></td>
</tr>
</table>

CNCFによるKubernetes 1.15の新機能紹介Webinar
Issueごとに細かく紹介されていてわかりやすい。スライドも公開されているので必見。

## Kubernetes: What is "reconciliation"?
<table>
<tr>
  <td colspan="2"><a href="https://speakerdeck.com/thockin/kubernetes-what-is-reconciliation">Kubernetes: What is "reconciliation"?</a></td>
</tr>
<tr>
  <td><img src="https://speakerd.s3.amazonaws.com/presentations/0a4210f322534a03983359da6836b60f/slide_0.jpg?533957"></td>
  <td>A very brief exploration of what we mean when we talk about reconciliation in the context of Kubernetes APIs and controllers.</td>
</tr>
</table>

Kubernetesの重要なコンセプトである"Reconciliation"について説明したスライド

# The Technical

## Deprecated APIs Removed In 1.16: Here’s What You Need To Know
<table>
<tr>
  <td colspan="2"><a href="https://kubernetes.io/blog/2019/07/18/api-deprecations-in-1-16/">Deprecated APIs Removed In 1.16: Here’s What You Need To Know</a></td>
</tr>
<tr>
  
  <td>Author: Vallery Lancey (Lyft)
As the Kubernetes API evolves, APIs are periodically reorganized or upgraded. When APIs evolve, the old API is deprecated and eventually removed.
The 1.16 release will deprecate APIs for four services:
 NetworkPolicy PodSecurityPolicy DaemonSet, Deployment, StatefulSet, and ReplicaSet Ingress  None of these resources will be removed from Kubernetes or deprecated in any way. However, to continue using these resources, you must use a current version of the Kubernetes API.</td>
</tr>
</table>

Kubernetes 1.16では今までよく使われてきapiVersionが廃止となるので、事前告知されている。

## Day 2 Kubernetes: Migrating EKS Node Groups with Zero Downtime
<table>
<tr>
  <td colspan="2"><a href="https://www.pulumi.com/blog/day-2-kubernetes-migrating-eks-nodegroups-with-zero-downtime/">Day 2 Kubernetes: Migrating EKS Node Groups with Zero Downtime</a></td>
</tr>
<tr>
  <td><img src="https://www.pulumi.com/blog/day-2-kubernetes-migrating-eks-nodegroups-with-zero-downtime/eks-migrate-nodegroups.png"></td>
  <td>Managed Kubernetes offerings greatly reduce the overhead required in
administering Kubernetes. However, the cluster is only one of the
components under management, as app lifecycles are self-driven tasks
that vary by workloads.

In Kubernetes, node groups are a useful mechanism for creating pools of resources that can enforce
scheduling requirements. They also provide a utility for shifting
workloads around during cluster management and updates.

In this post, we’ll see how to use Pulumi for Day 2 Kubernetes administration.
We’ll spin up a new EKS cluster with two node groups and a given workload.
Then we’ll add one more node group with an updated configuration, and migrate the workload
over to it with zero downtime using code and kubectl.</td>
</tr>
</table>

ソースコードで構成管理ができるツール「Pulumi」を使ったEKSでのクラスタ移行の例の紹介。

## Get started with Kubernetes (using Python)
<table>
<tr>
  <td colspan="2"><a href="https://kubernetes.io/blog/2019/07/23/get-started-with-kubernetes-using-python/">Get started with Kubernetes (using Python)</a></td>
</tr>
<tr>
  <td><img src="https://kubernetes.io//images/blog/get-started-with-kubernetes-using-python/docker-image-ls.png"></td>
  <td>Author: Jason Haley (Independent Consultant)
So, you know you want to run your application in Kubernetes but don’t know where to start. Or maybe you’re getting started but still don’t know what you don’t know. In this blog you’ll walk through how to containerize an application and get it running in Kubernetes.
This walk-through assumes you are a developer or at least comfortable with the command line (preferably bash shell).</td>
</tr>
</table>

Pythonアプリケーションをコンテナ化してKubernetes上にデプロイするというチュートリアル。

## Announcing Polaris Snapshot
<table>
<tr>
  <td colspan="2"><a href="https://www.fairwinds.com/news/announcing-polaris-snapshot">Announcing Polaris Snapshot</a></td>
</tr>
<tr>
  <td><img src="https://www.fairwinds.com/hubfs/lighthouse-3469408_1920.jpg#keepProtocol"></td>
  <td>Polaris Snapshot will let you generate a report and allow teams to sync on how to make their Kubernetes workloads more stable, efficient, and secure.</td>
</tr>
</table>

[Polaris](https://github.com/FairwindsOps/polaris)というKubernetesのチェックをしてくれるツールの新機能紹介
Snapshotと呼ばれるクラスタの状態をレポートとして書き出す機能がついたようだ。

## Running Apache Kafka over Istio - benchmark · Banzai Cloud
<table>
<tr>
  <td colspan="2"><a href="https://banzaicloud.com/blog/kafka-on-istio-performance/">Running Apache Kafka over Istio - benchmark · 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>

マルチクラウド環境でKafka on Istioを動かしたベンチマーク。シングルクラスタでのベンチマーク、シングルクラウドマルチリージョンでのベンチマーク、おまけでLinkerdを使ったベンチマークなども掲載されている。
この記事を書いているBonzaiCloudが提供するIstio operatorを使うことで簡単にマルチクラウド環境でIstioを利用できるようだ。

## How a Production Outage Was Caused Using Kubernetes Pod Priorities
<table>
<tr>
  <td colspan="2"><a href="https://grafana.com/blog/2019/07/24/how-a-production-outage-was-caused-using-kubernetes-pod-priorities/">How a Production Outage Was Caused Using Kubernetes Pod Priorities</a></td>
</tr>
<tr>
  <td><img src="https://grafana.com/static/assets/img/blog/BlogCover_Generic.jpg"></td>
  <td>On July 19, Grafana Cloud’s Hosted Prometheus service experienced a 30-minute outage. Here’s our incident postmortem.</td>
</tr>
</table>

Grafana社の提供するHosted Prometheus serviceが引き起こした30分にわたる障害についてのレポート。
Peremptionの挙動をうまく使うようにしようとしたところ、作業の順番を誤って、既存のPodをPreemptしてしまったようだ。

事故ってしまっていますが、ローリングアップデートの時だけリソースが必要というようなアプリケーションと、常に稼働している必要がないPodが存在するような環境での、Preemptionの活用の良い例だと感じました。

## Container Security: A Look at Rootless Containers
<table>
<tr>
  <td colspan="2"><a href="https://www.alibabacloud.com/blog/container-security-a-look-at-rootless-containers_595153">Container Security: A Look at Rootless Containers</a></td>
</tr>
<tr>
  <td><img src="https://yqintl.alicdn.com/ea20dc16db5a8ef5b96da996365fe24d7d8604e7.jpeg"></td>
  <td>This blog article discusses Rootless Containers, which was introduced in Docker 19.03, and how this feature further improves the security and manageability of containers.</td>
</tr>
</table>

Docker 19.03で実験的にサポートされたRootless Conatinerについて、簡単な仕組みと、実際の動作チュートリアルの紹介。

## Kubernetes Network Policies 101
<table>
<tr>
  <td colspan="2"><a href="https://www.magalix.com/blog/kubernetes-network-policies-101">Kubernetes Network Policies 101</a></td>
</tr>
<tr>
  <td><img src="https://www.magalix.com/hubfs/kubernetes%20network%20policy%20example-1.png#keepProtocol"></td>
  <td>Kubernetes uses the NetworkPolicy resource to fulfill the firewall role. Learn how to utilize NetworkPolicies to control and secure network traffic.</td>
</tr>
</table>

KubernetesのNetworkPolicyの紹介といくつかのポリシーの例を紹介。

# [Webinar video: Kubernetes RBAC: Getting Permission or Asking for Forgiveness?](https://cdn2.hubspot.net/hubfs/1665891/1%20-%20Videos%20and%20Webinar%20MP4/Kubernetes%20RBAC.mp4?t=1562786396455)

KubernetesのRBACに関するWebinar

# The Editorial

## Happy birthday Knative! Celebrating one year of portable serverless computing | Google Cloud Blog
<table>
<tr>
  <td colspan="2"><a href="https://cloud.google.com/blog/products/serverless/happy-birthday-knative-celebrating-one-year-of-portable-serverless-computing/">Happy birthday Knative! Celebrating one year of portable serverless computing | Google Cloud Blog</a></td>
</tr>
<tr>
  <td><img src="https://storage.googleapis.com/gweb-cloudblog-publish/images/Banner_Bday_Knative_2120x888_v1.max-2200x2200.jpg"></td>
  <td>At one year old, Google’s open-source Knative project is helping to realize the dream of portable serverless workloads.</td>
</tr>
</table>

Knativeの生誕1周年を祝う記事。またGoogleが提供しているKnativeを基にしたサービス”Cloud Run”についての紹介。

## CKAD (Certified Kubernetes Application Developer) program review
<table>
<tr>
  <td colspan="2"><a href="https://rieckpil.de/review-ckad-certified-kubernetes-application-developer-program/">CKAD (Certified Kubernetes Application Developer) program review</a></td>
</tr>
<tr>
  <td><img src="https://i0.wp.com/rieckpil.de/wp-content/uploads/2019/07/ckadReviewBlogPostLogo.png?fit=560%2C315&ssl=1"></td>
  <td>Review of the CKAD (Certified Kubernetes Application Developer) program of the Cloud Native Computing Foundation (CNCF) with tips & tricks</td>
</tr>
</table>

CKAD取得の道のりについての記事。公式のトレーニングや、著者独自のTipsなど

## Why Kubernetes will disappear
<table>
<tr>
  <td colspan="2"><a href="https://levelup.gitconnected.com/why-kubernetes-will-disappear-10ffcfb39f01">Why Kubernetes will disappear</a></td>
</tr>
<tr>
  <td><img src="https://miro.medium.com/max/1200/1*CL-twTPemr82Zj9DTsyXQw.jpeg"></td>
  <td>The prize of ubiquity is invisibility</td>
</tr>
</table>

Kubernetesは使う分には便利だが、自分たちで運用するためには複雑すぎるため、大規模なクラウドプロバイダ以外での利用は下火になって落ち着くだろうという意見。

## Intent-based Capacity Planning and Autoscaling with Kubernetes
<table>
<tr>
  <td colspan="2"><a href="https://blog.squadcast.com/intent-based-capacity-planning-autoscaling-kubernetes/">Intent-based Capacity Planning and Autoscaling with Kubernetes</a></td>
</tr>
<tr>
  <td><img src="https://blog.squadcast.com/content/images/2019/07/Blog-Banner.png"></td>
  <td>Intent-based Capacity Planning is Google's approach to declare reliability intent for a service and then solve for the most efficient resource allocation plan dynamically. Learn how you can start using this approach to manage the reliability of your services running on your Kubernetes cluster.</td>
</tr>
</table>

Intent-based Capacity Planningの考え方の紹介と、それをKubernetesで実現するための機能紹介。
Resource Limit/Request,HorizontalPodAutoscaler,ClusterAutoscalerの紹介。
さらにResourceQuotaや、Affinity、Tolerationなどにも触れている。

## Kubernetes Podcast from Google
<table>
<tr>
  <td colspan="2"><a href="https://kubernetespodcast.com/episode/063-economics-of-kubernetes/">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
ゲストはクラウド周りの分析をやっている調査会社のResearch Vice President.