KubeWeekly #153

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

# The Headlines

## 2018 Steering Committee Election Results
<table>
<tr>
  <td colspan="2"><a href="https://kubernetes.io/blog/2018/10/15/2018-steering-committee-election-results/">2018 Steering Committee Election Results</a></td>
</tr>
<tr>
  
  <td>Authors: Jorge Castro (Heptio), Ihor Dvoretskyi (CNCF), Paris Pittman (Google)
Results The Kubernetes Steering Committee Election is now complete and the following candidates came ahead to secure two year terms that start immediately:
 Aaron Crickenberger, Google, @spiffxp Davanum Srinivas, Huawei, @dims Tim St. Clair, Heptio, @timothysc  Big Thanks!  Steering Committee Member Emeritus Quinton Hoole for his service to the community over the past year. We look forward to The candidates that came forward to run for election.</td>
</tr>
</table>

Kubernetes Steering Committee の投票結果。

## Testing Kubernetes RBAC – YLD Engineering Blog – Medium
<table>
<tr>
  <td colspan="2"><a href="https://medium.com/yld-engineering-blog/testing-kubernetes-rbac-5e00dc93af8e">Testing Kubernetes RBAC – YLD Engineering Blog – Medium</a></td>
</tr>
<tr>
  <td><img src="https://cdn-images-1.medium.com/max/1200/0*Fk-j2d_gyfqNQgqJ"></td>
  <td>Securing your Kubernetes cluster is one thing, keeping it secure is a continuous uphill struggle. However, with the introduction of new…</td>
</tr>
</table>

RBACが正しく動いているかをテストする方法の紹介。
`kubectl can-i`をシェルスクリプトのテストフレームワークであるbatsから利用している。

## Using Kubeless for Kubernetes Events
<table>
<tr>
  <td colspan="2"><a href="http://www.leebriggs.co.uk/blog/2018/10/16/using-kubeless-for-kubernetes-events.html">Using Kubeless for Kubernetes Events</a></td>
</tr>
<tr>
  <td><img src="https://i.imgur.com/33lEhUq.png"></td>
  <td>Serverless computing is all the rage at the moment, and why wouldn’t it be? The idea of deploying code without having to worry about anything like servers, o...</td>
</tr>
</table>

Kubeless( https://kubeless.io/ )を使ってKubernetesのイベントをトリガに処理を実行するデモ。KubernetsのPythonクライアントを使って、KubernetesのイベントをNATS( https://nats.io/ )に送信する。Kubelessでfunctionを登録しておき、NATSのイベントが来たら実行するようにしている。

## The Technical

## Topology-Aware Volume Provisioning in Kubernetes
<table>
<tr>
  <td colspan="2"><a href="https://kubernetes.io/blog/2018/10/11/topology-aware-volume-provisioning-in-kubernetes/">Topology-Aware Volume Provisioning in Kubernetes</a></td>
</tr>
<tr>
  
  <td>Author: Michelle Au (Google)
The multi-zone cluster experience with persistent volumes is improving in Kubernetes 1.12 with the topology-aware dynamic provisioning beta feature. This feature allows Kubernetes to make intelligent decisions when dynamically provisioning volumes by getting scheduler input on the best place to provision a volume for a pod. In multi-zone clusters, this means that volumes will get provisioned in an appropriate zone that can run your pod, allowing you to easily deploy and scale your stateful workloads across failure domains to provide high availability and fault tolerance.</td>
</tr>
</table>

Kubernetes 1.12でbetaとなった topology-aware dynamic provisioningの紹介。
今まではVolumeのProvisioningとPodのスケジューリングは別々に行われていたが、Zoneが違うとボリュームをマウントできないため、場合によってはPodがUnschedulableな状態になってしまっていたようだ。そこで、Podのスケジューリングが決定したのちにVolumeを該当ZoneにProvisioningする機能が実装された。

## Ballerina Channels – Vinod Kavinda – Medium
<table>
<tr>
  <td colspan="2"><a href="https://medium.com/@vinok88/ballerina-channels-af4908538411">Ballerina Channels – Vinod Kavinda – Medium</a></td>
</tr>
<tr>
  <td><img src="https://cdn-images-1.medium.com/max/1200/1*2s3uefSXlevtSDtl8tJFYg.jpeg"></td>
  <td>If you are new to Ballerina, first you need to go to the ballerina.io and learn the basic moves before you learn the advance stuff!</td>
</tr>
</table>

Ballerina( https://ballerina.io/ )という言語のChannelという機能の紹介。他にもWorker Interactionsというメッセージ送信の機構があるようだが、使いどころが違うようだ。
Ballerinaあまり知らないので、違いがよくわからなかった。

<table>
<tr>
  <td colspan="2"><a href="None">Cloud Native Programming Language</a></td>
</tr>
<tr>
  <td><img src="https://ballerina.io//img/ballerina-sm.jpg"></td>
  <td>Ballerina makes it easy to create resilient services that integrate and orchestrate transactions across distributed endpoints.</td>
</tr>
</table>

## [Polyaxon, Argo and Seldon for model training, package and deployment in Kubernetes | Daniel Rodriguez](https://danielfrg.com/blog/2018/10/model-management-polyaxon-argo-seldon/)

機械学習をKubernetes上で実行するための手順の紹介。
Polyaxon( https://polyaxon.com/ ), Argo( https://argoproj.github.io/ ),s2i( https://github.com/openshift/source-to-image ), Seldon( https://www.seldon.io/ )を利用して機械学習のモデルを管理する。
それぞれを個別にセットアップしているので、かなり煩雑。記事内でも紹介されているがKubeFlowなどを利用する方が良さそうとのことでした。

## Set Up a CI/CD Pipeline with a Jenkins Pod in Kubernetes (Part 2)
<table>
<tr>
  <td colspan="2"><a href="https://www.linux.com/blog/learn/chapter/Intro-to-Kubernetes/2017/6/set-cicd-pipeline-jenkins-pod-kubernetes-part-2">Set Up a CI/CD Pipeline with a Jenkins Pod in Kubernetes (Part 2)</a></td>
</tr>
<tr>
  <td><img src="https://www.linux.com/sites/lcom/files/hello-kenzan-pipeline.png"></td>
  <td>In Part 1 of our series, we got our local Kubernetes cluster up and running with Docker, Minikube, and kubectl. We set up an image repository, and tried building, pushing, and deploying a container image with code changes we made to the Hello-Kenzan app. It’s now time to automate this process.</td>
</tr>
</table>

minikubeにJenkinsをデプロイして、CI/CDを実現する方法の解説。

## Adopting Istio in Your Kubernetes Clusters – uptime 99 – Medium
<table>
<tr>
  <td colspan="2"><a href="https://medium.com/uptime-99/adopting-istio-in-your-kubernetes-clusters-a3e28ed6f4b7">Adopting Istio in Your Kubernetes Clusters – uptime 99 – Medium</a></td>
</tr>
<tr>
  <td><img src="https://cdn-images-1.medium.com/max/1200/1*mM5cLyLlvWwipXAxESmHJA.jpeg"></td>
  <td>Learn about some of the sharp edges before you install Istio service mesh on your Kubernetes clusters.</td>
</tr>
</table>

istio( https://istio.io/ )をKubernetesクラスタに入れる方法と、気になる昨日の紹介。

- mTLSのPERMISSIVEモード
  - 段階的にmTLSを有効にする際に有効
  - probeもmTLSの影響を受けるので注意
- edge filteringは設定が難しいし、Hostヘッダで偽装できるので、無効にする方法を紹介している。　
- istioではcert-managerのような仕組みが現状は使えない

などなど

## Using Kubeflow for Analyzing Financial Time Series: Part I
<table>
<tr>
  <td colspan="2"><a href="https://blog.ml6.eu/using-kubeflow-for-analyzing-financial-time-series-part-i-18580ef5df0b">Using Kubeflow for Analyzing Financial Time Series: Part I</a></td>
</tr>
<tr>
  <td><img src="https://cdn-images-1.medium.com/max/1200/1*pNJ6eQv2JQXGZkdSb3UxRw.png"></td>
  <td>Kubeflow is an open-source project dedicated to making deployments of machine learning (ML) workflows on Kubernetes simple, portable and…</td>
</tr>
</table>

Kubeflowのチュートリアル。
JupyterNotebookやksonnetを駆使してモデルをチューニングする。

## Kubernetes: deploy Laravel the easy way – ITNEXT
<table>
<tr>
  <td colspan="2"><a href="https://itnext.io/kubernetes-deploy-laravel-the-easy-way-c747b769939">Kubernetes: deploy Laravel the easy way – ITNEXT</a></td>
</tr>
<tr>
  <td><img src="https://cdn-images-1.medium.com/max/1200/0*mv44WbuUtFLIAr7e.jpg"></td>
  <td>Laravel is an excellent framework for developing PHP applications. Whether you need to prototype a new idea, develop an MVP (Minimum…</td>
</tr>
</table>

LaravelのWebアプリをminikubeにデプロイするチュートリアル。
特別なところはLaravel用のDockerfileくらいで、あとは普通にKubernetesの使い方。

## Customizing  Kubernetes Logging (Part 1) – Google Cloud Platform - Community – Medium
<table>
<tr>
  <td colspan="2"><a href="https://medium.com/google-cloud/customizing-kubernetes-logging-part-1-a1e5791dcda8">Customizing  Kubernetes Logging (Part 1) – Google Cloud Platform - Community – Medium</a></td>
</tr>
<tr>
  <td><img src="https://cdn-images-1.medium.com/max/1200/1*B-ItNFu5U1aXTq75JDXbAw.png"></td>
  <td>One of the most powerful tools at your disposal when debugging applications in production are the logs. They’re very easy to create, give…</td>
</tr>
</table>

GKEでStackdriverを使いログを構造化する方法の紹介。
正規表現で、ログのフォーマットを指定すると構造化してくれる。構造化できるとBigQueryなどで扱いやすい。

## Manage ML Deployments Like A Boss: Deploy Your First AB Test With Sklearn, Kubernetes, and…
<table>
<tr>
  <td colspan="2"><a href="https://medium.com/analytics-vidhya/manage-ml-deployments-like-a-boss-deploy-your-first-ab-test-with-sklearn-kubernetes-and-b10ae0819dfe">Manage ML Deployments Like A Boss: Deploy Your First AB Test With Sklearn, Kubernetes, and…</a></td>
</tr>
<tr>
  <td><img src="https://cdn-images-1.medium.com/max/1200/1*eQvktDmu0L0FZxM4rUBrwA.jpeg"></td>
  <td>Read This First — Summary</td>
</tr>
</table>

機械学習のモデルを複数つくって、それらに対してABテストを実施する方法のチュートリアル。
Kubeflowなどは使わず、必要なDeploymentをそれぞれデプロイする方式。
sklarnでモデルを作って、s2iでコンテナに変換
Seldon-coreでABテストを実現している。

## Tooling Spotlight

## ynqa/kubernetes-rust
<table>
<tr>
  <td colspan="2"><a href="https://github.com/ynqa/kubernetes-rust">ynqa/kubernetes-rust</a></td>
</tr>
<tr>
  <td><img src="https://avatars3.githubusercontent.com/u/6745370?s=400&v=4"></td>
  <td>Rust client for Kubernetes. Contribute to ynqa/kubernetes-rust development by creating an account on GitHub.</td>
</tr>
</table>

KubernetesのRustクライアント


## GoogleContainerTools/krew
<table>
<tr>
  <td colspan="2"><a href="https://github.com/GoogleContainerTools/krew">GoogleContainerTools/krew</a></td>
</tr>
<tr>
  <td><img src="https://avatars0.githubusercontent.com/u/38444003?s=400&v=4"></td>
  <td>📦 The package manager for "kubectl plugins". Contribute to GoogleContainerTools/krew development by creating an account on GitHub.</td>
</tr>
</table>

kubectl pluginのパッケージマネージャのようです。brewのような感じでpluginを探して、インストールすることができるようです。

# The Editorial

## Kubernetes 2018 North American Contributor Summit
<table>
<tr>
  <td colspan="2"><a href="https://kubernetes.io/blog/2018/10/16/kubernetes-2018-north-american-contributor-summit/">Kubernetes 2018 North American Contributor Summit</a></td>
</tr>
<tr>
  
  <td>Authors: Bob Killen (University of Michigan) Sahdev Zala (IBM), Ihor Dvoretskyi (CNCF)
The 2018 North American Kubernetes Contributor Summit to be hosted right before KubeCon + CloudNativeCon Seattle is shaping up to be the largest yet. It is an event that brings together new and current contributors alike to connect and share face-to-face; and serves as an opportunity for existing contributors to help shape the future of community development. For new community members, it offers a welcoming space to learn, explore and put the contributor workflow to practice.</td>
</tr>
</table>

KubeCon + CloudNativeConの前に開催されるContributer Summitについて

## New in Fission: Live-Reload, Record-Replay, Canary Deployments, Prometheus integration
<table>
<tr>
  <td colspan="2"><a href="https://blog.fission.io/posts/new-features-in-fission-for-quality-reliability/">New in Fission: Live-Reload, Record-Replay, Canary Deployments, Prometheus integration</a></td>
</tr>
<tr>
  <td><img src="https://docs.fission.io/0.11.0/images/fission-logo.png"></td>
  <td>Today we’re really excited to launch a set of new features for Fission, our open source Kubernetes-native serverless framework. These features are all designed to help you improve the quality and reliability of your serverless applications on Kubernetes.
Serverless architectures have obvious productivity advantages. You can get your apps up and running quickly, reducing the total lead time to ship your new application. However, to make this “production ready”, serverless architecture needs to be not just about moving fast, but also about moving fast safely, and at scale.</td>
</tr>
</table>

ServerlessフレームワークのひとつであるFission( https://fission.io/ )の新機能の紹介。

- Live reload：　手元のソースコードを変更すると自動的にfunctionを適用する機能
- Record-replay:  テストなどで実施した関数の実行リクエストを覚えておいて、後から再度実行できる機能
- Automated Canary Deployments: 自動でカナリアリリースを行い、自動でローリングアップデートを制御する。
- Prometheus Integration: Functionのメトリクスが収集できる機能

## GKE Container-Native Load Balancing, with Ines Envid and Neha Pattan
<table>
<tr>
  <td colspan="2"><a href="None">GKE Container-Native Load Balancing, with Ines Envid and Neha Pattan</a></td>
</tr>
<tr>
  <td><img src="https://kubernetespodcast.com/_assets/images/Kubernetes-Podcast-Logo_1400x1400.png"></td>
  <td></td>
</tr>
</table>

Kubernetes Podcastの紹介。GKEでのロードバランサがVM単位ではなくPod単位で負荷分散するようになった話について。
（聞いていない）

## An introduction to Ansible Operators in Kubernetes
<table>
<tr>
  <td colspan="2"><a href="https://opensource.com/article/18/10/ansible-operators-kubernetes">An introduction to Ansible Operators in Kubernetes</a></td>
</tr>
<tr>
  <td><img src="https://opensource.com/sites/default/files/lead-images/BUSINESS_barnraising_2.png"></td>
  <td>The new Operator SDK makes it easy to create a Kubernetes controller to deploy and manage a service or application in a cluster.</td>
</tr>
</table>

Operator SDKがansibleを使ったOperatorの作成をサポートした話
[operator-sdk/user-guide.md at master · operator-framework/operator-sdk · GitHub](https://github.com/operator-framework/operator-sdk/blob/master/doc/ansible/user-guide.md)

AnsibleからもKubernetesのリソースが扱えるようになっているらしい
[k8s - Manage Kubernetes (K8s) objects — Ansible Documentation](https://docs.ansible.com/ansible/2.6/modules/k8s_module.html)


## Spinnaker: The Kubernetes of Continuous Delivery
<table>
<tr>
  <td colspan="2"><a href="https://www.linux.com/blog/2018/10/spinnaker-kubernetes-continuous-delivery">Spinnaker: The Kubernetes of Continuous Delivery</a></td>
</tr>
<tr>
  <td><img src="https://www.linux.com/sites/lcom/files/spinnaker-11.jpg"></td>
  <td>Comparing Spinnaker and Kubernetes in this way is somewhat unfair to both projects. The scale, scope, and magnitude of these technologies are different, but parallels can still be drawn.</td>
</tr>
</table>

Spinnaker( https://www.spinnaker.io/ )の歴史などを紹介する記事。あまりKubernetesの話は出てこない。

## "DevOps is the new normal, cloud is the new infrastructure & Kubernetes is the new operating system" - JAXenter
<table>
<tr>
  <td colspan="2"><a href="https://jaxenter.com/devops-cloudbees-labourey-interview-150556.html">"DevOps is the new normal, cloud is the new infrastructure & Kubernetes is the new operating system" - JAXenter</a></td>
</tr>
<tr>
  <td><img src="https://jaxenter.com/wp-content/uploads/2018/10/shutterstock_137472032.jpg"></td>
  <td>We are now witnessing the democratization of DevOps. We talked to Sacha Labourey, CEO and founder at CloudBees about all this and more.</td>
</tr>
</table>

CloudBeeのCEOがJenkinsX( https://jenkins.io/projects/jenkins-x/ )の紹介と、DevOpsについてインタビューを受けている。

## Kubernetes in the DevOps Space: Everything You Need to Know - DZone DevOps
<table>
<tr>
  <td colspan="2"><a href="https://dzone.com/articles/kubernetes-in-devops-space-everything-you-need-to">Kubernetes in the DevOps Space: Everything You Need to Know - DZone DevOps</a></td>
</tr>
<tr>
  <td><img src="https://dz2cdn2.dzone.com/storage/article-thumb/10458849-thumb.jpg"></td>
  <td>See how the Kubernetes container orchestration and delivery automation platform can strengthen DevOps implementation for software development in the enterprise.</td>
</tr>
</table>

DevOpsとコンテナ、Kubernetesについての関係性の説明。

## 6 charts take the confusion out of Kubernetes
<table>
<tr>
  <td colspan="2"><a href="https://www.ciodive.com/news/6-charts-take-the-confusion-out-of-kubernetes/539459/">6 charts take the confusion out of Kubernetes</a></td>
</tr>
<tr>
  <td><img src="https://www.ciodive.com/user_media/cache/ff/4c/ff4c649df8782fd9dbf75fd5df7e5cc2.jpg"></td>
  <td>Containers are an increasingly popular tool for businesses to provision workloads on the cloud and maximize resources. </td>
</tr>
</table>

6つのグラフからコンテナやKubernetesの流行について論じている。

## Best practices and anti-patterns for containerized deployments | TechBeacon
<table>
<tr>
  <td colspan="2"><a href="https://techbeacon.com/best-practices-anti-patterns-containerized-deployments">Best practices and anti-patterns for containerized deployments | TechBeacon</a></td>
</tr>
<tr>
  <td><img src="https://techbeacon.com/sites/default/files/styles/social/public/field/image/containerized-apps.jpg?itok=-utoGI1H"></td>
  <td>Kubernetes is all the rage for cloud apps, but follow these best practices—and don't fall into these traps—as you're making the leap.</td>
</tr>
</table>

コンテナ化の6つのベストプラクティスと6つのアンチパターンの紹介。
どういうアプリケーションをコンテナ化すべきか、と言った話から、どういう組織で実施すべきかと言った話まで。

## Observability Practitioners Summit 2018 Schedule
<table>
<tr>
  <td colspan="2"><a href="https://opsummitna18.sched.com/">Observability Practitioners Summit 2018 Schedule</a></td>
</tr>
<tr>
  <td><img src="http://opsummitna18.sched.com/img/app-icon.png?1540190380"></td>
  <td>Check out the schedule for Observability Practitioners Summit 2018</td>
</tr>
</table>

Observability Practitioners Summit 2018のスケジュール

# バックナンバー

- KubeWeekly #152 https://qiita.com/inajob/items/3566a7140c6d7f93f334
- KubeWeekly #151 https://qiita.com/inajob/items/5b3bb83dcb68818020c0
- KubeWeekly #150 https://qiita.com/inajob/items/bebd4fcca440ec695d34
- KubeWeekly #149 https://qiita.com/inajob/items/d007ba0114dfb5eb77e2
- KubeWeekly #148 https://qiita.com/inajob/items/4f153cb214fd622bdb89
- KubeWeekly #147 https://qiita.com/inajob/items/8148914d7e6b8afc186c
- KubeWeekly #143 https://qiita.com/inajob/items/b93257781552c61da173
- KubeWeekly #142 https://qiita.com/inajob/items/6eac1a856e95f18cd2ca
- KubeWeekly #141 https://qiita.com/inajob/items/7771e5a5a4409f433042