KubeWeekly #167

# はじめに

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

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

# The Headlines

## Introducing kube-iptables-tailer: Better Networking Visibility in Kubernetes Clusters
<table>
<tr>
  <td colspan="2"><a href="https://kubernetes.io/blog/2019/04/19/introducing-kube-iptables-tailer/">Introducing kube-iptables-tailer: Better Networking Visibility in Kubernetes Clusters</a></td>
</tr>
<tr>
  <td><img src="https://i.imgur.com/fGAIVuS.png"></td>
  <td>Authors: Saifuding Diliyaer, Software Engineer, Box
At Box, we use Kubernetes to empower our engineers to own the whole lifecycle of their microservices. When it comes to networking, our engineers use Tigera’s Project Calico to declaratively manage network policies for their apps running in our Kubernetes clusters. App owners define a Calico policy in order to enable their Pods to send/receive network traffic, which is instantiated as iptables rules.</td>
</tr>
</table>

[box/kube-iptables-tailer](https://github.com/box/kube-iptables-tailer)の紹介。
これはiptablesのルールによってPodの通信がdropされた時にそれをKubernetesのEventとして記録するためのユーティリティプログラムです。
これにより、設定ミスなどによりパケットがドロップされていることに気づけるようになります。

## How do you connect Kubernetes clusters located in different data centres?
<table>
<tr>
  <td colspan="2"><a href="https://learnk8s.io/bite-sized/connecting-multiple-kubernetes-clusters">How do you connect Kubernetes clusters located in different data centres?</a></td>
</tr>
<tr>
  <td><img src="https://learnk8s.io/a/1d48191342378d467ad57af778c543e3.png"></td>
  <td>In Kubernetes, you might want to distribute your workloads in different regions to improve your reliability and availability. Should you use a single cluster over a unified network or multiple clusters? Learn what options you have.</td>
</tr>
</table>

Kubernetesクラスタを複数のデータセンターに渡って運用するための方法をいくつか紹介。
公式が取り組んでいるKubefed2と[bookingcom/shipper](https://github.com/bookingcom/shipper)、[admiraltyio/multicluster-scheduler](https://github.com/admiraltyio/multicluster-scheduler)

multicluster-schedulerは[KubeWeekly #160](https://qiita.com/inajob/items/0720b23073b3fdd00ab2#running-argo-workflows-across-multiple-kubernetes-clusters)でも紹介していた。

## 50 Best Kubernetes Architecture Tutorials - Security Boulevard
<table>
<tr>
  <td colspan="2"><a href="https://securityboulevard.com/2019/04/50-best-kubernetes-architecture-tutorials/">50 Best Kubernetes Architecture Tutorials - Security Boulevard</a></td>
</tr>
<tr>
  <td><img src="https://www.threatstack.com/wp-content/uploads/2018/11/Kubes-300x114.png"></td>
  <td>Kubernetes is a multi-functional, container-centric platform for managing workloads and services. Given the fact that containers and container orchestration can dramatically improve costs, flexibility, and resilience, it’s no mystery why Kubernetes has soared in popularity since Google open-sourced it in 2014. On one hand, it’s a powerful orchestration tool; on the other, it’s not a … Continue reading "50 Best Kubernetes Architecture Tutorials" The post 50 Best Kubernetes Architecture Tutorials appeared first on Threat Stack.</td>
</tr>
</table>

Kubernetesに関する50個のチュートリアル紹介。
（すごい量！）

# The Technical

## Setting up Kubernetes Network Policies - A Detailed Guide - Cloud Native Computing Foundation
<table>
<tr>
  <td colspan="2"><a href="https://www.cncf.io/blog/2019/04/19/setting-up-kubernetes-network-policies-a-detailed-guide/">Setting up Kubernetes Network Policies - A Detailed Guide - 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>

KubernetesのNetworkPolicyについての紹介。
主にingress（Podへの通信）について紹介してありegress（Podからの通信）はまた今度紹介ということらしい。また適用する順番としてもまずingressからということのようだ。

## Kubernetes Identity Management: Authentication | Linux Journal
<table>
<tr>
  <td colspan="2"><a href="https://www.linuxjournal.com/content/kubernetes-identity-management-authentication">Kubernetes Identity Management: Authentication | Linux Journal</a></td>
</tr>
<tr>
  <td><img src="https://www.linuxjournal.com//sites/default/files/inline-images/become_a_patron_button.png"></td>
  <td></td>
</tr>
</table>

Kubernetesの認証の仕組みとその種類について紹介。
ServiceAccount、OpenID Connect, certificate authenticationそれぞれの特徴と使いどころについて述べている。

## Helm - The Package Manager for Kubernetes.
<table>
<tr>
  <td colspan="2"><a href="https://helm.sh/blog/helm-3-preview-pt1/">Helm - The Package Manager for Kubernetes.</a></td>
</tr>
<tr>
  <td><img src="https://helm.sh//src/img/favicon-152.png"></td>
  <td>Helm - The Kubernetes Package Manager.</td>
</tr>
</table>

Helmの歴史とHelm 3のα版紹介についてのシリーズ物の記事。
この記事ではHelm1そして今メジャーに使われているHelm2について、どういう目的で作られたものか、などが語られている。

## K8s Federation v2 — a guide on how to get started
<table>
<tr>
  <td colspan="2"><a href="https://medium.com/condenastengineering/k8s-federation-v2-a-guide-on-how-to-get-started-ec9cc26b1fa7">K8s Federation v2 — a guide on how to get started</a></td>
</tr>
<tr>
  <td><img src="https://cdn-images-1.medium.com/max/1200/0*7Eh8xlVcsfdR8AgQ"></td>
  <td>Recently I had the privilege of presenting my latest findings of Kubernetes Federation v2 at the OpenInfra Days in London. While…</td>
</tr>
</table>

Kubernetesの公式のfereration V2の紹介と、手元で動作を試す方法の紹介。
kindでクラスタを複数立ち上げhelmでfederationのためのコントロールプレーンをインストールする。

## Securing Developer Workflows
<table>
<tr>
  <td colspan="2"><a href="https://www.weave.works/blog/securing-developer-workflows">Securing Developer Workflows</a></td>
</tr>
<tr>
  <td><img src="https://www.weave.works/assets/images/blt47280f3f449e94e8/securing-developer-workflows.png"></td>
  <td>As modern developers and DevOps teams are embarking on a quest for speed and reliability through automated CICD pipelines for Kubernetes, enterprises still need to ensure security and regulatory compliance.</td>
</tr>
</table>

GitOpsを実践する場合のセキュリティについて。それぞれのツールを利用するための認証情報などのクレデンシャルをどのように管理するのが安全か、といった話。

## Navigating Network Services and Policy With Helm - RX-M
<table>
<tr>
  <td colspan="2"><a href="https://www.tigera.io/blog/navigating-network-services-and-policy-with-helm/">Navigating Network Services and Policy With Helm - RX-M</a></td>
</tr>
<tr>
  <td><img src="https://rx-m.com/wp-content/uploads/2019/02/helm-tigera.jpg"></td>
  <td>Learn basic Helm concepts with this tutorial on deploying and modifying charts to fit needs like adding a network policy to the chart.</td>
</tr>
</table>

Helmの紹介、インストール方法と、既存のChartを編集してNetworkPolicyに対応させる方法の紹介。

## [Kubernetes Deployments: Rolling Update Configuration](https://www.bluematador.com/blog/kubernetes-deployments-rolling-update-configuration)

KubernetesのDeploymentの解説と、ローリングアップデート時の動作の詳細な解説。
またReadyの仕組みや、Pod Affinityなどについても解説している。


## Istio monitoring explained
<table>
<tr>
  <td colspan="2"><a href="https://blog.giantswarm.io/Istio-monitoring-explained/">Istio monitoring explained</a></td>
</tr>
<tr>
  <td><img src="https://blog.giantswarm.io/assets/2019/03/istio-monitoring-explained.jpg"></td>
  <td>Nobody would be surprised if I say “Service Mesh” is a trending topic in the tech community these days. One of the most active projects in this area is Istio. It was jointly created by IBM, Google, and Lyft as...</td>
</tr>
</table>

Istioのモニタリング機能に関するチュートリアル。
metricやprometheusというistio固有のCRを定義して、Istioのメトリクス情報をPrometheusに送る方法の紹介。

## Kubeflow on GPU Enabled AWS-EKS Cluster
<table>
<tr>
  <td colspan="2"><a href="https://itnext.io/kubeflow-on-gpu-enabled-aws-eks-cluster-7c5d88c09d9b">Kubeflow on GPU Enabled AWS-EKS Cluster</a></td>
</tr>
<tr>
  <td><img src="https://cdn-images-1.medium.com/max/1200/1*wCsxFaCQRxKKwL4CsW1XVA.png"></td>
  <td>Ever since Google created Kubernetes as an open source container orchestration tool, it has seen it blossom in ways it might never have…</td>
</tr>
</table>

GPUを有効にしたEC2インスタンスを使ってGPUが使えるKubernetesクラスタをEKSで作成し、その環境でKubeflowを使う方法の紹介。

# Tooling Spotlight

## jay-johnson/metalnetes
<table>
<tr>
  <td colspan="2"><a href="https://github.com/jay-johnson/metalnetes">jay-johnson/metalnetes</a></td>
</tr>
<tr>
  <td><img src="https://avatars2.githubusercontent.com/u/4564911?s=400&v=4"></td>
  <td>Create and manage multiple Kubernetes clusters using KVM on a bare metal Fedora 29 server. Includes helm + rook-ceph + nginx ingress + the stock analysis engine (jupyter + redis cluster + minio + a...</td>
</tr>
</table>

KVMを使って、3NodeのKubernetesクラスタを作るためのツール。全てBashで書かれている。
デプロイしたクラスタにはhelm, rook ,nginx ingress, jupyter, redis, minio ... など便利ツールをデプロイすることもできる）

## kubecost/cost-model
<table>
<tr>
  <td colspan="2"><a href="https://github.com/kubecost/cost-model">kubecost/cost-model</a></td>
</tr>
<tr>
  <td><img src="https://avatars1.githubusercontent.com/u/45108136?s=400&v=4"></td>
  <td>Cross-cloud cost allocation models for workloads running on Kubernetes - kubecost/cost-model</td>
</tr>
</table>


Kubernetesクラスタの運用コストを可視化するツール

# The Editorial

## Tinder’s move to Kubernetes
<table>
<tr>
  <td colspan="2"><a href="https://medium.com/tinder-engineering/tinders-move-to-kubernetes-cda2a6372f44">Tinder’s move to Kubernetes</a></td>
</tr>
<tr>
  <td><img src="https://cdn-images-1.medium.com/max/1200/1*ZrenfouNIrMeMRklW_Mecw.jpeg"></td>
  <td>Written By: Chris O’Brien, Engineering Manager |Chris Thomas, Engineering Manager| Jinyong Lee, Senior Software Engineer</td>
</tr>
</table>

TinderのKubernetes移行の話。
クラスタ構築はkube-aws。 オーバーレイネットワークとしてFlannelを使っている。
605NodeのクラスタでFlannelを動かしていると、ARPの上限を超えてしまい、通信ができなくなったことがあったそうだ。
DNSの名前引きの失敗が多発する現象もあり、CoreDNSをDaemonSetにすることである程度は収まったが、依然として継続中のようだ。これはまだ修正されていないバグのようで、根本対策を待っているそうだ。

Podの不均等な負荷を分散するためにL7のロードバランサとしてEnvoyを利用している。

## CNCF Meetups Grow to Over 100,000 Members - Cloud Native Computing Foundation
<table>
<tr>
  <td colspan="2"><a href="https://www.cncf.io/blog/2019/04/23/cncf-meetups-grow-to-over-100000-members/">CNCF Meetups Grow to Over 100,000 Members - Cloud Native Computing Foundation</a></td>
</tr>
<tr>
  <td><img src="https://www.cncf.io/wp-content/uploads/2019/04/image1-1-300x187.png"></td>
  <td>CNCF Meetup groups cover topics around cloud-native computing and CNCF-hosted projects throughout the year. Through the passion of our community, and the help of the Cloud Native Ambassador (CNA) program,...</td>
</tr>
</table>

CNCF Meetup groupsのメンバーが100,000を超えたよ！という話 （ https://www.meetup.com/ja-JP/pro/cncf/ ）

日本だと [Cloud Native Meetup Tokyo](https://www.meetup.com/Cloud-Native-Meetup-Tokyo) がそうですね。

## The Future of Cloud Providers in Kubernetes
<table>
<tr>
  <td colspan="2"><a href="https://kubernetes.io/blog/2019/04/17/the-future-of-cloud-providers-in-kubernetes/">The Future of Cloud Providers in Kubernetes</a></td>
</tr>
<tr>
  <td><img src="https://d33wubrfki0l68.cloudfront.net/e298a92e2454520dddefc3b4df28ad68f9b91c6f/70d52/images/docs/pre-ccm-arch.png"></td>
  <td>Authors: Andrew Sy Kim (VMware), Mike Crute (AWS), Walter Fender (Google)
Approximately 9 months ago, the Kubernetes community agreed to form the Cloud Provider Special Interest Group (SIG). The justification was to have a single governing SIG to own and shape the integration points between Kubernetes and the many cloud providers it supported. A lot has been in motion since then and we’re here to share with you what has been accomplished so far and what we hope to see in the future.</td>
</tr>
</table>

SIG Cloud Providerの紹介。今の状態・今後の活動予定。
全てのin-treeの実装をout-of-treeにする予定のようだ。

## Pod Priority and Preemption in Kubernetes
<table>
<tr>
  <td colspan="2"><a href="https://kubernetes.io/blog/2019/04/16/pod-priority-and-preemption-in-kubernetes/">Pod Priority and Preemption in Kubernetes</a></td>
</tr>
<tr>
  
  <td>Author: Bobby Salamat
Kubernetes is well-known for running scalable workloads. It scales your workloads based on their resource usage. When a workload is scaled up, more instances of the application get created. When the application is critical for your product, you want to make sure that these new instances are scheduled even when your cluster is under resource pressure. One obvious solution to this problem is to over-provision your cluster resources to have some amount of slack resources available for scale-up situations.</td>
</tr>
</table>

1.14でGAとなった Pod Priority, Preemptionの紹介。
Cluster Autoscalerと比較して紹介されている。確かに優先度の低いPodを落としたりPendingにすることで、クラスタを健全に保てるなら、同じ目的の機能と言うこともできるかもしれない。

## Meet the Ambassador: Diane Mueller
<table>
<tr>
  <td colspan="2"><a href="https://www.cncf.io/blog/2019/04/23/meet-the-ambassador-diane-mueller/">Meet the Ambassador: Diane Mueller</a></td>
</tr>
<tr>
  <td><img src="https://www.cncf.io/wp-content/uploads/2019/04/social-facebook.jpg"></td>
  <td>Diane Mueller, Director of Community Development  at Red Hat, sat down with Kaitlyn Barnard, Cloud Native Computing Foundation(CNCF), to talk about cloud native, trends in the industry, and being an Ambassador. Below is their interview. You can also view the video.</td>
</tr>
</table>

CNCFのAmbassadorのインタビュー。動画とTranscript
RedHatのコミュニティディベロップメントのディレクタの方。

## Kubernetes basic glossary
<table>
<tr>
  <td colspan="2"><a href="https://blog.lelonek.me/kubernetes-basic-glossary-9ca0416e3948">Kubernetes basic glossary</a></td>
</tr>
<tr>
  <td><img src="https://cdn-images-1.medium.com/max/1200/0*jk6kfnDAhLEWy712.png"></td>
  <td>Must-know terminology to understand Kubernetes concepts</td>
</tr>
</table>

Kubernetes初心者が知るべきKubernetesの基礎用語の解説。

## Supercharging Kubernetes Storage with CSI - Cloud Native Apps
<table>
<tr>
  <td colspan="2"><a href="https://blogs.vmware.com/cloudnative/2019/04/18/supercharging-kubernetes-storage-with-csi/">Supercharging Kubernetes Storage with CSI - Cloud Native Apps</a></td>
</tr>
<tr>
  <td><img src="https://blogs.vmware.com/cloudnative/files/2019/04/Untitled-design-21.png"></td>
  <td>One of the most important propositions of Kubernetes is the ability to seamlessly provide storage capabilities on nodes where workloads are scheduled, but there are issues. As a solution to these issues, Kubernetes adopted the Container Storage Interface, or CSI.</td>
</tr>
</table>

CSIの紹介。CSIを構成するコンポーネントとその役割の紹介。

## Container Design Patterns for Kubernetes
<table>
<tr>
  <td colspan="2"><a href="https://www.weave.works/blog/container-design-patterns-for-kubernetes/">Container Design Patterns for Kubernetes</a></td>
</tr>
<tr>
  <td><img src="https://www.weave.works/assets/images/bltd4b50232db23488d/sidecar-pattern.png"></td>
  <td>Find out how design patterns make both your application and your developers more efficient, reducing overhead and allowing you to reuse proven architectures and containers across your applications.</td>
</tr>
</table>

コンテナデザインパターンを紹介するシリーズ物の記事の第一弾。図入りで簡潔に説明されている。

## Key Kubernetes Concepts
<table>
<tr>
  <td colspan="2"><a href="https://towardsdatascience.com/key-kubernetes-concepts-62939f4bc08e">Key Kubernetes Concepts</a></td>
</tr>
<tr>
  <td><img src="https://cdn-images-1.medium.com/max/1200/1*Mg6Ii8ibJPomegYj1tn8Ag.jpeg"></td>
  <td>Cloud computing, containerization, and container orchestration are the most important trends in DevOps. Whether you’re a data scientist…</td>
</tr>
</table>

Kubernetesの様々なリソースの紹介と、クラスタを構成するコンポーネントの紹介。