KubeWeekly #174

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

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


# The Headlines

## Shanghai '19: KubeCon + CloudNativeCon + Open Source Summit - YouTube
<table>
<tr>
  <td colspan="2"><a href="http://www.youtube.com/playlist?list=PLj6h78yzYM2Njj5PvNc4Mtcril2YyR95d">Shanghai '19: KubeCon + CloudNativeCon + Open Source Summit - YouTube</a></td>
</tr>
<tr>
  <td><img src="https://i.ytimg.com/vi/5yKheFRMflQ/hqdefault.jpg?sqp=-oaymwEXCNACELwBSFryq4qpAwkIARUAAIhCGAE=&rs=AOn4CLCjJx8Pe2lQXVj2aqpm8NdsD3v6cg"></td>
  <td></td>
</tr>
</table>

上海で行われた、KubeCon + CloudNativeCon + Open Source Summitの各セッションの動画はYoutubeで見ることができます。

# The Techinical

## Whats new in Kubernetes 1.15? | Sysdig
<table>
<tr>
  <td colspan="2"><a href="https://sysdig.com/blog/whats-new-kubernetes-1-15/">Whats new in Kubernetes 1.15? | Sysdig</a></td>
</tr>
<tr>
  <td><img src="https://sysdig.com/wp-content/uploads/2019/06/kubernetes_1_15_scheduler_plugins.png"></td>
  <td>What's new in Kubernetes 1.15: Major improvements to the CustomResourceDefinitions (CRD), Event API overhaul, Kubernetes scheduler plugins and much more.</td>
</tr>
</table>

Kubernetes 1.15での新機能をそれぞれ概要とともに紹介している。
ChangeLogだけみてもわかりづらいのでこういうまとめは助かります。

## Announcing addon-operator to simplify managing additional components in K8s clusters
<table>
<tr>
  <td colspan="2"><a href="https://medium.com/flant-com/kubernetes-addon-operator-89f7bae4f3f9">Announcing addon-operator to simplify managing additional components in K8s clusters</a></td>
</tr>
<tr>
  <td><img src="https://miro.medium.com/max/1200/0*RHs5PCh7r2fURtPY.png"></td>
  <td>Discover a new simple, consistent and automated way to install & update components of your Kubernetes clusters.</td>
</tr>
</table>

[addon-operator](https://github.com/flant/addon-operator)の紹介。
[shell-operator](https://github.com/flant/shell-operator)というKubernetesのイベントを受けて任意のシェルスクリプトを実行するオペレータを元に作成されており、内部的にはHelm Chartでアドオンを管理するようになっている。

[Kubernetesのcluster addon operator](https://github.com/kubernetes-sigs/addon-operators)というのが提案されているが、それとは関係ないもののようだが、クラスタで動くアドオンを管理する方法が様々なところで求められているようだ。

## Tutorial: Continuous Integration and Delivery to AWS Kubernetes
<table>
<tr>
  <td colspan="2"><a href="https://dzone.com/articles/continuous-integration-and-delivery-to-aws-kuberne">Tutorial: Continuous Integration and Delivery to AWS Kubernetes</a></td>
</tr>
<tr>
  <td><img src="https://semaphoreci.com/wp-content/uploads/2019/06/preview-lightbox-sem-amazon-eks.png"></td>
  <td>Learn how to combine Semaphore with AWS Elastic Container Registry and Kubernetes Service to get effective CI/CD.</td>
</tr>
</table>

[Semaphore](https://semaphoreci.com/)というCI・CDのSaaSとAWS(Amazon Container Registry, EKS)の組み合わせ方の紹介。

## google/ko
<table>
<tr>
  <td colspan="2"><a href="https://github.com/google/ko">google/ko</a></td>
</tr>
<tr>
  <td><img src="https://avatars0.githubusercontent.com/u/1342004?s=400&v=4"></td>
  <td>Build and deploy Go applications on Kubernetes. Contribute to google/ko development by creating an account on GitHub.</td>
</tr>
</table>

Go言語製のアプリケーションのGitHubリポジトリをまるでコンテナイメージのリポジトリのように扱うことができるようなユーティリティのようです。

`ko`というCLIにKubernetesのマニフェストのようなものを与えてGoのアプリケーションをビルド＋デプロイすることができます。与えるマニフェストファイルの`.spec.containers.image`にはGoのプロジェクトのパスを入れることができるのがポイントです。

## Introducing Volume Cloning Alpha for Kubernetes
<table>
<tr>
  <td colspan="2"><a href="https://kubernetes.io/blog/2019/06/21/introducing-volume-cloning-alpha-for-kubernetes/">Introducing Volume Cloning Alpha for Kubernetes</a></td>
</tr>
<tr>
  
  <td>Author: John Griffith (Red Hat)
Kubernetes v1.15 introduces alpha support for volume cloning. This feature allows you to create new volumes using the contents of existing volumes in the user’s namespace using the Kubernetes API.
What is a Clone? Many storage systems provide the ability to create a “clone” of a volume. A clone is a duplicate of an existing volume that is its own unique volume on the system, but the data on the source is duplicated to the destination (clone).</td>
</tr>
</table>

Kubernetes1.15に導入されたAlphaな機能であるVolume Cloningの紹介。

## Learn How to Assign Pods to Nodes in Kubernetes Using nodeSelector and Affinity Features
<table>
<tr>
  <td colspan="2"><a href="https://supergiant.io/blog/learn-how-to-assign-pods-to-nodes-in-kubernetes-using-nodeselector-and-affinity-features/">Learn How to Assign Pods to Nodes in Kubernetes Using nodeSelector and Affinity Features</a></td>
</tr>
<tr>
  <td><img src="https://supergiant.io/wp-content/uploads/2019/01/affinity-nodeselector-main.png"></td>
  <td>In this article, we'll discuss how to assign Pods to nodes using nodeSelector and affinity/anti-affinity feature in Kubernetes.</td>
</tr>
</table>

Podを特定のNodeにスケジュールするための機能とその使用法についてのチュートリアル。

- nodeSelector　（今や非推奨なので注意）
- Node Affinity
- Inter-Pod Affinity, podAntiAffinity

## [Simplify Kubernetes in AWS with the Amazon EKS Service](https://virtualizationreview.com/articles/2019/06/25/simplify-kubernetes-in-aws-with-the-amazon-eks-service.aspx?m=1)

EKSを利用したKubernetesクラスタの作成方法の紹介。

## [Simplify Kubernetes with the EKS Service, Part 2: Required Prep Work](https://virtualizationreview.com/articles/2019/06/26/simplify-kubernetes-with-the-eks-service-part-2-required-prep-work.aspx?m=1)

上の記事の続き kubectlを取得する方法など。

# The Editorial

## A Production Ready Checklist for Kubernetes
<table>
<tr>
  <td colspan="2"><a href="https://www.weave.works/blog/production-ready-checklist-kubernetes">A Production Ready Checklist for Kubernetes</a></td>
</tr>
<tr>
  <td><img src="https://www.weave.works/assets/images/blt2d34daf52c1903e7/rocket-prod-ready.png"></td>
  <td>How do you know when you’re ready to run your Kubernetes cluster in production?   In this blog series, we define Production Ready checklists for your cluster and applications.</td>
</tr>
</table>

Production Readyのためのチェックリスト。クラスタ編。
必要なAddon一覧という感じのチェックリストでした。

## The Application Checklist for Kubernetes
<table>
<tr>
  <td colspan="2"><a href="https://www.weave.works/blog/application-checklist-kubernetes">The Application Checklist for Kubernetes</a></td>
</tr>
<tr>
  <td><img src="https://www.weave.works/assets/images/blt0784f18d98e9a9b7/scalable-application-monitoring.png"></td>
  <td>Find out what the best practices are for running applications in Kubernetes with this convenient application checklist.</td>
</tr>
</table>

Production Readyのためのチェックリスト。アプリケーション編。
基本的な項目が多いが、チェックリストとしてまとまっていることに価値があると感じました。

## The CISO's guide to Kubernetes security and deployment
<table>
<tr>
  <td colspan="2"><a href="https://searchcloudsecurity.techtarget.com/tip/The-CISOs-guide-to-Kubernetes-security-and-deployment">The CISO's guide to Kubernetes security and deployment</a></td>
</tr>
<tr>
  <td><img src="https://cdn.ttgtmedia.com/visuals/search400/iseries_backup_recovery/search400_article_012.jpg"></td>
  <td>This guide to Kubernetes security outlines a roadmap to the open source orchestration platform features, in addition to security best practices and habits CISOs should follow to optimize deployment.</td>
</tr>
</table>

CISOのためのKubernetesセキュリティガイド。

Kubernetesに搭載されているセキュリティ周りの機能の紹介

- APIの認証
- RBACによる認可
- Pod Security Context
- Secretストア

Kubernetesを扱う上でのセキュリティ周りの習慣の紹介

- 必要に応じてワークロードを分割する
- namespaceでリソースを分離する
- ログを有効化する
- コンテナレベルでのセキュリティを忘れない

Extra tips

- 最新版を使おう
- CISベンチマークなどを活用しよう
- CKAなどを社員に取得させよう

## Low Carbon Kubernetes Scheduler: A demand side management solution that consumes electricity in low grid carbon intensity areas | Packt Hub
<table>
<tr>
  <td colspan="2"><a href="https://hub.packtpub.com/low-carbon-kubernetes-scheduler-a-demand-side-management-solution-that-consumes-electricity-in-low-grid-carbon-intensity-areas/">Low Carbon Kubernetes Scheduler: A demand side management solution that consumes electricity in low grid carbon intensity areas | Packt Hub</a></td>
</tr>
<tr>
  <td><img src="https://hub.packtpub.com/wp-content/uploads/2019/06/green-plug-electricity.jpg"></td>
  <td>Researchers from the University of Bristol, UK, introduced their research on a low carbon scheduling policy for the open-source Kubernetes container orchestrator, Low Carbon Kubernetes Scheduler.</td>
</tr>
</table>

二酸化炭素排出量が少なくなるようにPodを配置するスケジューラの論文の紹介。
クラウドプロバイダや、国によってデータセンターの電力を賄っている仕組みは異なる。それぞれの二酸化炭素排出量を重みとしてPodをスケジュールすることで二酸化炭素排出量を少なくしている。

## Cloud-Native Performance Critical Computing - Sylabs - Medium
<table>
<tr>
  <td colspan="2"><a href="https://medium.com/sylabs/cloud-native-performance-critical-computing-7dcdf63fee9e">Cloud-Native Performance Critical Computing - Sylabs - Medium</a></td>
</tr>
<tr>
  <td><img src="https://miro.medium.com/max/1200/1*JHEbsDaIwUHz8tgu11YuOA.png"></td>
  <td>Motivation</td>
</tr>
</table>

HPC業界でよく使われているコンテナ型仮想化ソリューションの[Singularity](https://singularity.lbl.gov/)をCRI対応させKubernetesのコンテナランタイムとして利用できるようにした話。

## Kubernetes Security Myths Debunked - Tremolo Security
<table>
<tr>
  <td colspan="2"><a href="https://www.tremolosecurity.com/kubernetes-security-myths-debunked/">Kubernetes Security Myths Debunked - Tremolo Security</a></td>
</tr>
<tr>
  <td><img src="https://www.tremolosecurity.com/wp-content/uploads/2019/06/mythbusters.png"></td>
  <td>I talk to many folks on slack channels, twitter and in person about various security issues with Kubernetes.  I hear many of the same myths that I’d like to address and debunk. The Kubernetes Dashboard is a Security Risk Nope.  Not even a little.  The problem isn’t the dashboard, it’s how you deploy it.  When...</td>
</tr>
</table>

Kubernetesのセキュリティにまつわる迷信を打ち破る。

- Kubernetes Dashboardはセキュリティリスク？
- PodSecurityPolicyはきつい？
- ユーザアクセスのためにServiceAccountを使うことができるか？
- JWTのTokenの期間を長くすることができますが？
- ホストにアクセスするSSHを共有しますか？
- ほぼ全てを許可して、一部だけを不許可にするようなRBACルールを書きたいのだけれども・・？
- CI/CDやモニタリングへのアクセスのために`kubectl proxy`を使うのはどうか？
- マルチテナントはきついので、みんなに1つのクラスタを与えよう！？
- Ingressの実装にTLSを入れたいのだが・・？

認証系の話を中心にまとめられており、最終的には[Orchestra](https://www.tremolosecurity.com/kubernetes/)のアピールを行うというスタイルの記事。

## New Kubernetes command-line flaw discovered - Techerati
<table>
<tr>
  <td colspan="2"><a href="https://techerati.com/news-hub/new-kubernetes-flaw-discovered-command-line/">New Kubernetes command-line flaw discovered - Techerati</a></td>
</tr>
<tr>
  <td><img src="https://techerati.com/wp-content/uploads/2019/02/kubernetes1.jpg"></td>
  <td>Kubernetes vulnerability linked to incomplete patch of kubectl flaw discovered in March.</td>
</tr>
</table>

kubectlの脆弱性について。

## Certified Kubernetes Administrator (CKA) Exam and Courses Are Now Offered Onsite in China in Local Language - The Linux Foundation
<table>
<tr>
  <td colspan="2"><a href="https://www.linuxfoundation.org/press-release/2019/06/certified-kubernetes-administrator-cka-exam-and-courses-are-now-offered-onsite-in-china-in-local-language/">Certified Kubernetes Administrator (CKA) Exam and Courses Are Now Offered Onsite in China in Local Language - The Linux Foundation</a></td>
</tr>
<tr>
  <td><img src="https://linuxfoundation.org/wp-content/uploads/2017/08/favicon.png"></td>
  <td>SHANGHAI – June 24, 2018 – KubeCon + CloudNativeCon, China – The Linux Foundation, the nonprofit organization enabling mass innovation...</td>
</tr>
</table>

中国でCKAの試験とラーニングがオンサイトで中国語で受けられる場所ができたという話。

## The trendy five: Blazing hot GitHub repos in June 2019 - JAXenter
<table>
<tr>
  <td colspan="2"><a href="https://jaxenter.com/github-trending-june-2019-159622.html">The trendy five: Blazing hot GitHub repos in June 2019 - JAXenter</a></td>
</tr>
<tr>
  <td><img src="https://jaxenter.com/wp-content/uploads/2019/07/shutterstock_665203357.jpg"></td>
  <td>Put on your sunscreen, because these repos are hot! This month, some of our favorite GitHub repos for June 2019 include a new open source programming language that takes inspiration from Go, a robotics platform built in Python, and a repo full of Kubernetes failure stories that will have you laughing and learning.</td>
</tr>
</table>

2019年六月の注目のGitHubリポジトリ

- [Kibana](https://github.com/elastic/kibana)
- [V programming language](https://github.com/vlang/v)
- [ThingsBoard](https://github.com/thingsboard/thingsboard)
- [PyRobot](https://github.com/facebookresearch/pyrobot)
- [Kubernetes failure stories](https://github.com/hjacobs/kubernetes-failure-stories)