KubeWeekly #186

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

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

# The Headlines

## Kubernetes Podcast from Google
<table>
<tr>
  <td colspan="2"><a href="https://kubernetespodcast.com/episode/072-kubernetes-1.16/">Kubernetes 1.16, with Lachlan Evenson</a></td>
</tr>
<tr>
  <td><img src="https://kubernetespodcast.com/_assets/images/Kubernetes-Podcast-Logo_1400x1400.png"></td>
</tr>
</table>

Kubernetes Podcast。今回のゲストは1.16のリリースマネージャ Lachlan Evenson。

# The Technical

## Ping monitoring between Kubernetes nodes
<table>
<tr>
  <td colspan="2"><a href="https://medium.com/flant-com/ping-monitoring-between-kubernetes-nodes-11e815f4eff1">Ping monitoring between Kubernetes nodes</a></td>
</tr>
<tr>
  <td><img src="https://miro.medium.com/max/780/0*UnkF879zLqgH1mTa.png"></td>
  <td>Using Python, Prometheus and Grafana</td>
</tr>
</table>

特定のNodeがNotReadyを繰り返すようなトラブルに気づくために違いにpingを送り合うような監視のコンテナをKubernetesにデプロイする方法。
結果はPrometheusのメトリクス形式で取得できる。

## The Kubernetes logging operator reloaded · Banzai Cloud
<table>
<tr>
  <td colspan="2"><a href="https://banzaicloud.com/blog/logging-operator-v2/">The Kubernetes logging operator reloaded · 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>

logging-operator のv2ができたという話。
これはfluentdやfluentbitを適切に設定し、Kubernetesクラスタのログを、CustomResourceを使って定義したフィルタや、宛先のルールに従い転送するための仕組み。
この記事ではクラスタのログをAmazonのS3に格納するという設定を行うデモを紹介している。

## Kubernetes 1.16: A big step for CRDs, kubectl and Container Storage Interface – Red Hat OpenShift Blog
<table>
<tr>
  <td colspan="2"><a href="https://blog.openshift.com/a-look-into-the-technical-details-of-kubernetes-1-16/">Kubernetes 1.16: A big step for CRDs, kubectl and Container Storage Interface – Red Hat OpenShift Blog</a></td>
</tr>
<tr>
  <td><img src="https://blog.openshift.com/wp-content/uploads/logo_with_border-1024x994.png"></td>
  <td>This week Kubernetes 1.16 is expected and we want to highlight the technical features that enterprise Kubernetes users should know about. With Custom Resource Definitions (CRDs) moving into official general availability, storage improvements, and more, this release hardens the project and celebrates the main extension points for building cloud native applications on Kubernetes. CRDs to …</td>
</tr>
</table>

RedHat OpenShiftチームによるKubernetes1.16新機能ハイライト。

- CRDがGAになった。
- `*.k8s.io`に該当するAPIはレビューが必要で、そのようなCRDにはレビューが通っていることを示すannotationが必要となった。
- CRDのデフォルティングがBetaとなった。
- `kubectl`が別リポジトリとして独立した。 https://github.com/kubernetes/kubectl/
- ストレージ周りの改良
  - Volume Cloningがベータに
  - CSI Volume Expansionがデフォルトに
  - Raw Block の改良とバグフィックス

それぞれのトピックスで細かく書かれているので気になる方は元記事を参照してください。

## Open-Sourcing Isopod: An Expressive DSL Framework for Kubernetes Configuration
<table>
<tr>
  <td colspan="2"><a href="https://medium.com/cruise/isopod-5ad7c565d350">Open-Sourcing Isopod: An Expressive DSL Framework for Kubernetes Configuration</a></td>
</tr>
<tr>
  <td><img src="https://miro.medium.com/max/988/1*-K3WmIwZifLblKBsiQETqw.jpeg"></td>
  <td>With Isopod, we achieved strongly typed Kubernetes objects, code reuse, and test coverage that was not possible before.</td>
</tr>
</table>

Kubernetesのマニフェストを書くためのDSLである[Isopod](https://github.com/cruise-automation/isopod)をオープンソースにしたという話。
既存のテンプレーティングツールの欠点として下記を挙げている。

- テストができない
- CLIのバージョンに依存する。そしてCLIのバージョンは環境ごとに違う
- applyするまでインデントのミスなどには気づけない
- YAMLの適応によってワークロードに生じる影響を予見できない
- 複雑なコントロールロジックによりYAMLを作成することが難しい。例えばループや分岐など。

IsopodではマニフェストをStarlarkというPythonの方言を利用して記述します。これにより上記の問題が解決できます。

また、一連のリリースをロールアウトしたり、dry-runにより実行結果のdiffを確認するなどの機能も備えています。

Isopodの導入により10,000行のBashスクリプトが60%削減され、ロールアウトが80%高速化されたそうです。

## GoogleCloudPlatform/flink-on-k8s-operator
<table>
<tr>
  <td colspan="2"><a href="https://github.com/GoogleCloudPlatform/flink-on-k8s-operator">GoogleCloudPlatform/flink-on-k8s-operator</a></td>
</tr>
<tr>
  <td><img src="https://avatars2.githubusercontent.com/u/2810941?s=400&v=4"></td>
  <td>Kubernetes operator for managing the lifecycle of Apache Flink applications. - GoogleCloudPlatform/flink-on-k8s-operator</td>
</tr>
</table>

Apache Flinkのためのオペレータ。
（GCPリポジトリにはあるものの非公式のようです。）

## Kubernetes and Python
<table>
<tr>
  <td colspan="2"><a href="https://srcco.de/posts/kubernetes-and-python.html">Kubernetes and Python</a></td>
</tr>
<tr>
  <td><img src="https://srcco.de/galleries/python-logo.png"></td>
  <td>While Go is the language-of-choice in the cloud-native world, Python has a huge community and makes it really easy to extend Kubernetes in only a few lines of code.
This post is a follow-up to a talk </td>
</tr>
</table>

[先週紹介しました。](https://qiita.com/inajob/items/8a3a51e041f7ff7f0cc4#kubernetes-and-python)

## Upgrade to Istio 1.3 using the operator with ease · Banzai Cloud
<table>
<tr>
  <td colspan="2"><a href="https://banzaicloud.com/blog/istio-operator-1.3/">Upgrade to Istio 1.3 using the operator with ease · 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>

[Istio-operator](https://banzaicloud.com/blog/istio-operator/)を使ってIstioのバージョンを1.3に更新する方法を紹介。
またIstio 1.3の新機能についても紹介している。

## Azure/aks-periscope
<table>
<tr>
  <td colspan="2"><a href="https://github.com/Azure/aks-periscope">Azure/aks-periscope</a></td>
</tr>
<tr>
  <td><img src="https://avatars0.githubusercontent.com/u/6844498?s=400&v=4"></td>
  <td>aks-periscope aims to detect various kubernetes cluster problems - Azure/aks-periscope</td>
</tr>
</table>

AKSのトラブルシューティングのための情報を収集するツール。
Kubernetesクラスタにトラブルがあった際に、その状況をエキスパートに共有するときなどに便利そう。

## How to keep your Kubernetes secrets secure in Git
<table>
<tr>
  <td colspan="2"><a href="https://learnk8s.io/kubernetes-secrets-in-git">How to keep your Kubernetes secrets secure in Git</a></td>
</tr>
<tr>
  <td><img src="https://learnk8s.io/a/c4beabbc0e974fd220dd5f132fb7f428.png"></td>
  <td>Kubernetes secrets that you load into the cluster must exist somewhere. Do you keep a copy or rely on Kubernetes to be the only source of truth? How do you back them up? What if you keep a copy and they go out of sync?</td>
</tr>
</table>

SecretリソースをGitで管理するための方法を紹介。

- [Sealed Secret](https://github.com/bitnami-labs/sealed-secrets)
- [Helm Secrets](https://github.com/futuresimple/helm-secrets)
- [Kamus](https://github.com/Soluto/kamus)

## [Recorded Webinar: 360 Kubernetes Security](https://get.alcide.io/hubfs/Webinar%20Recordings/360°%20Kubernetes%20Security%20From%20Source%20Code%20to%20K8s%20Configuration%20Security%20Webinar.mp4)

Kubernetesのセキュリティに関するWebinar
（みてない）

# The Editorial

## Kubernetes 1.16: Important Features for Operational Excellence · StackRox: Security for Containers and Kubernetes
<table>
<tr>
  <td colspan="2"><a href="https://www.stackrox.com/post/2019/09/kubernetes-1.16-important-features-for-operational-excellence/">Kubernetes 1.16: Important Features for Operational Excellence · StackRox: Security for Containers and Kubernetes</a></td>
</tr>
<tr>
  <td><img src="https://res.cloudinary.com/stackrox/v1568932276/kubernetes-1.16-release-blog-banner_zhgdir.jpg"></td>
  <td>This week marked the release of Kubernetes 1.16 and, like previous releases, delivers a range of new features and enhancements that showcase its rapid velocity and maturity, driven by a community of more than 32,000 individual contributors.</td>
</tr>
</table>

Kubernetes 1.16の新機能ハイライト。
(先週とここまででだいたい紹介したものばかりなので割愛)

## Citrix integrates its ADC portfolio with Istio | Citrix Blogs
<table>
<tr>
  <td colspan="2"><a href="https://www.citrix.com/blogs/2019/09/23/citrix-integrates-its-adc-portfolio-with-istio/">Citrix integrates its ADC portfolio with Istio | Citrix Blogs</a></td>
</tr>
<tr>
  <td><img src="https://www.citrix.com/blogs/wp-content/uploads/2019/09/Copy-of-Copy-of-Untitled-Design22-1036x479.png"></td>
  <td>Citrix is excited to announce the integration of our ADC portfolio with the Istio control plane as an ingress gateway and as a sidecar proxy.</td>
</tr>
</table>

CitrixのADCというソリューションにIstioが追加されたという話。
（Citrix ADCに詳しくないので、ちょっと内容が理解できていない。）

## Contributor Summit San Diego Registration Open!
<table>
<tr>
  <td colspan="2"><a href="https://kubernetes.io/blog/2019/09/24/san-diego-contributor-summit/">Contributor Summit San Diego Registration Open!</a></td>
</tr>
<tr>
  <td><img src="https://kubernetes.io//images/blog/2019-09-24-san-diego-contributor-summit/IMG_2588.JPG"></td>
  <td>Authors: Paris Pittman (Google), Jeffrey Sica (Red Hat), Jonas Rosland (VMware)
Contributor Summit San Diego 2019 Event Page
Registration is now open and in record time, we’ve hit capacity for the new contributor workshop session of the event! Waitlist is now available.
Sunday, November 17
Evening Contributor Celebration:
QuartYard*
Address: 1301 Market Street, San Diego, CA 92101
Time: 6:00PM - 9:00PM
Monday, November 18
All Day Contributor Summit:
Marriott Marquis San Diego Marina</td>
</tr>
</table>

KubeCon + CloudNativeConの前に開催されるサンディエゴでのContributor Summitの登録開始のお知らせ。
またこのイベントの運営チームの構成についても紹介されている。イベントの持続性を高めるためにチームを分割し、作業を引き継ぎしているようだ。

## The Ship has Sailed
<table>
<tr>
  <td colspan="2"><a href="https://blog.containership.io/shutdown/">The Ship has Sailed</a></td>
</tr>
<tr>
  <td><img src="https://blog.containership.io//content/images/2018/10/fullsizeoutput_23ec.jpeg"></td>
  <td>Flash back to five years ago. The infrastructure space looks drastically different. Some companies, like the one I worked for at the time, were figuring out how to successfully orchestrate containers at scale. Yet for the majority of businesses, containerization wasn't even on their radar. Given how quick-moving and young</td>
</tr>
</table>

Containership Cloud社の歴史と、終了のお知らせ。
マネタイズがうまくいかなかったとのこと。

## The Problem With “Cloud Native”
<table>
<tr>
  <td colspan="2"><a href="https://www.forbes.com/sites/googlecloud/2019/09/19/the-problem-with-cloud-native/">The Problem With “Cloud Native”</a></td>
</tr>
<tr>
  <td><img src="https://thumbor.forbes.com/thumbor/600x315/https%3A%2F%2Fspecials-images.forbesimg.com%2Fimageserve%2F1010819940%2F960x0.jpg"></td>
  <td>The most important technology in business today is cloud computing, and it has a problem.</td>
</tr>
</table>

"Cloud Native"という単語が表すものは、なにかそれ用の新しいもの、というイメージがつきまとうが、実はそんなことはなく、テクノロジーをいかにうまく扱うようにビジネスを変化させるか、ということでありそういう意味では”Cloud Optimzed"といった単語の方がより良いのではないか？というような内容。

## Five key takeaways from the 2019 Helm Summit in Amsterdam
<table>
<tr>
  <td colspan="2"><a href="https://medium.com/@cloudark/five-key-takeaways-from-the-2019-helm-summit-in-amsterdam-74e51653a3f9">Five key takeaways from the 2019 Helm Summit in Amsterdam</a></td>
</tr>
<tr>
  <td><img src="https://miro.medium.com/max/1200/1*r6RXcnAExDz5ZimdJY8RFA.jpeg"></td>
  <td>Helm summit was held in Amsterdam last week. It was a great gathering of around 150 Helm enthusiasts representing various Kubernetes users…</td>
</tr>
</table>

アムステルダムで開催されたHelm Summitの見どころ

- Helm 3.0の登場
  - Tillerがサーバサイドからなくなる
  - 最小権限がデフォルトとなる
  - CRDの扱いがよくなる
  - CLIの使い勝手の向上
- OCIレジストリをストレージとして使いHelm ChartやKustomizeのpatchファイルを格納しようとする動きがある
- Helmを利用したOperatorについて
- Helm Chartをどのように管理するかという問題

それぞれのトピックで目立った発表へのリンクなどもあるので、気になる方は元記事を参照してみてください。

## No, Kubernetes is Not the New OpenStack, Says Canonical - Container Journal
<table>
<tr>
  <td colspan="2"><a href="https://containerjournal.com/topics/container-ecosystems/no-kubernetes-is-not-the-new-openstack-says-canonical/">No, Kubernetes is Not the New OpenStack, Says Canonical - Container Journal</a></td>
</tr>
<tr>
  <td><img src="https://containerjournal.com/wp-content/uploads/2019/05/k3OS-Kubernetes-2.jpg"></td>
  <td>It's easy to think of Kubernetes as the great disruptor of earlier generations of cloud-native platforms, such as OpenStack. But that view would be just</td>
</tr>
</table>

KubernetesはOpenStackの代替となるかというと、そうではない、という旨の記事
それぞれに適したワークロードがある、という主張のようです。

## Container-native load balancing on GKE now generally available | Google Cloud Blog
<table>
<tr>
  <td colspan="2"><a href="https://cloud.google.com/blog/products/containers-kubernetes/container-native-load-balancing-on-gke-now-generally-available/">Container-native load balancing on GKE now generally available | Google Cloud Blog</a></td>
</tr>
<tr>
  <td><img src="https://storage.googleapis.com/gweb-cloudblog-publish/images/002-GoogleCloud-Blog-Header_xeak7mk.max-2200x2200.png"></td>
  <td>Last year, we announced container-native load balancing, a feature that allows you to create services using network endpoint groups (NEGs) so that requests</td>
</tr>
</table>

GKEのContainer-native Load balancingがGAになりました。
これはロードバランサがPodに直接通信を振り分けるという仕組みのものです。

[pod readiness gate feature](https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#pod-readiness-gate) の機能が活用されているようです。

## Your Friendly Service Mesh for Abstract Network Architecture - Istio
<table>
<tr>
  <td colspan="2"><a href="https://hackernoon.com/istio-your-friendly-service-mesh-8qoj3zun">Your Friendly Service Mesh for Abstract Network Architecture - Istio</a></td>
</tr>
<tr>
  <td><img src="https://hackernoon.com/drafts/e53d3zmg.png"></td>
  <td>There is a new hype in the DevOps world: Istio and service meshes. But why exactly is everyone suddenly migrating to Istio? In this post, we will examine whether it actually makes sense to use Istio and in which use cases it may help you (as well as when it’s simply an overkill).</td>
</tr>
</table>

サービスメッシュの概要とIstioの機能紹介、また対抗馬としてのLinkerdの紹介。

## Bringing container magic to cloud-native applications - Open Source Blog
<table>
<tr>
  <td colspan="2"><a href="https://cloudblogs.microsoft.com/opensource/2019/09/10/cloud-native-application-bundle-cnab-1-0-updates/">Bringing container magic to cloud-native applications - Open Source Blog</a></td>
</tr>
<tr>
  <td><img src="https://cloudblogs.microsoft.com/uploads/prod/sites/37/2019/04/V_1O61BK.jpg"></td>
  <td>Last year at Microsoft Connect and DockerCon we announced the Cloud Native Application Bundle (CNAB) specification in partnership with Docker, HashiCorp, and Bitnami. Since then the CNAB community has grown to include Pivotal, Intel, Datadog, and others, and we are all extremely pleased to announce that the CNAB core 1.0 specification has reached Final Draft Read more</td>
</tr>
</table>

CNABのCore Specificationが1.0になった話と、次はCNAB RegistryとSecurityに取り組むという話。また、CNABを開発するための企業を横断したJoint Development Foundationの設立について紹介されている。