KubeWeekly #208

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

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

※この記事は、[Z Lab](https://qiita.com/organizations/zlab)の業務の一環として作成したものです。

# The Headlines

## Join SIG Scalability and Learn Kubernetes the Hard Way
<table>
<tr>
  <td colspan="2"><a href="https://kubernetes.io/blog/2020/03/19/join-sig-scalability/">Join SIG Scalability and Learn Kubernetes the Hard Way</a></td>
</tr>
<tr>
  
  <td>Authors: Alex Handy
Contributing to SIG Scalability is a great way to learn Kubernetes in all its depth and breadth, and the team would love to have you join as a contributor. I took a look at the value of learning the hard way and interviewed the current SIG chairs to give you an idea of what contribution feels like.
The value of Learning The Hard Way There is a belief in the software development community that pushes for the most challenging and rigorous possible method of learning a new language or system.</td>
</tr>
</table>

SIG Scalabilityへのコントリビューションのお誘い。
専門知識を持っていなくても貢献し始めることができ、やりがいもあり、Kubernetesに詳しくなれると紹介している。

## Kong Ingress Controller and Service Mesh: Setting up Ingress to Istio on Kubernetes
<table>
<tr>
  <td colspan="2"><a href="https://kubernetes.io/blog/2020/03/18/kong-ingress-controller-and-istio-service-mesh/">Kong Ingress Controller and Service Mesh: Setting up Ingress to Istio on Kubernetes</a></td>
</tr>
<tr>
  <td><img src="https://kubernetes.io//images/blog/Kong-Ingress-Controller-and-Service-Mesh/KIC-gRPC.png"></td>
  <td>Author: Kevin Chen, Kong
Kubernetes has become the de facto way to orchestrate containers and the services within services. But how do we give services outside our cluster access to what is within? Kubernetes comes with the Ingress API object that manages external access to services within a cluster.
Ingress is a group of rules that will proxy inbound connections to endpoints defined by a backend. However, Kubernetes does not know what to do with Ingress resources without an Ingress controller, which is where an open source controller can come into play.</td>
</tr>
</table>

Kong Ingress Controller とIstioを組み合わせて利用する際の設定方法を紹介。

# ICYMI: CNCF Webinars 

## CNCF Member Webinar: Small Is Not Always Beautiful – Moving Enterprise Applications to the Cloud - Cloud Native Computing Foundation
<table>
<tr>
  <td colspan="2"><a href="https://www.cncf.io/webinars/small-is-not-always-beautiful-moving-enterprise-apps-to-the-cloud/">CNCF Member Webinar: Small Is Not Always Beautiful – Moving Enterprise Applications to the Cloud - 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>How do you move on-premises enterprise applications to a Software as a Service model? Using Kubernetes and Java Application Server Operators, Intris NV, an end-user, moved to the cloud without...</td>
</tr>
</table>

オンプレのエンタープライズアプリケーションをどうやってクラウド環境に持ってくるか？というWebinar。
作り直すのではなく、便利なツールを使って移行させようといったことが書かれているので、そういうツールの紹介か？（内容は見ていません）


## CNCF Member Webinar: Democratizing Analytics with Cloud Native Data Warehouses on Kubernetes - Cloud Native Computing Foundation
<table>
<tr>
  <td colspan="2"><a href="https://www.cncf.io/webinars/democratizing-analytics-cloud-native-data-warehouses-on-k8s/">CNCF Member Webinar: Democratizing Analytics with Cloud Native Data Warehouses on Kubernetes - 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>SQL data warehouses offer high-performance query over enormous quantities of data. Up until now they have been rare beasts on Kubernetes. This webinar introduces the ClickHouse Kubernetes operator and shows...</td>
</tr>
</table>

ClickHouseというデータ分析基盤を、Kubernetes上にデプロイするoperatorについてのWebinar

## CNCF Member Webinar: Calico Networking with eBPF - Cloud Native Computing Foundation
<table>
<tr>
  <td colspan="2"><a href="https://www.cncf.io/webinars/calico-networking-with-ebpf/">CNCF Member Webinar: Calico Networking with eBPF - 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>What do you get when you combine Calico’s rich networking and network policy capabilities with the latest eBPF capabilities of the Linux kernel? Join us to find out! Sometimes referred...</td>
</tr>
</table>

CalicoのeBPF機能についての紹介。

# The Technical

## On the state of Envoy Proxy control planes
<table>
<tr>
  <td colspan="2"><a href="https://mattklein123.dev/2020/03/15/on-the-state-of-envoy-proxy-control-planes/index.html">On the state of Envoy Proxy control planes</a></td>
</tr>
<tr>  
  <td>I have been thinking a lot about Envoy Proxy control planes recently so I thought it would be useful to share some of my conclusions about the industry status quo and where I envision the state of the</td>
</tr>
</table>

Envoyのコントロールプレーンの現状と今後の予定について。
カスタムのコントロールプレーンを作る際に役立つ[go-control-plane](https://github.com/envoyproxy/go-control-plane)や、多数のEnvoyの設定を管理するための[xds-relay](https://github.com/envoyproxy/xds-relay)などが紹介されている。

## Introducing istiod: simplifying the control plane
<table>
<tr>
  <td colspan="2"><a href="https://istio.io/blog/2020/istiod/">Introducing istiod: simplifying the control plane</a></td>
</tr>
<tr>
  <td>Istiod consolidates the Istio control plane components into a single binary.</td>
</tr>
</table>

Istioがモノリスなコントロールプレーンであるistiodを作るに至った経緯について。
マイクロサービス化によって得られる利点のそれぞれを、Istioにとっては活用できない理由と、モノリス化でIstioが得られた利点が紹介されている。

## Introducing the Calico eBPF dataplane | Project Calico
<table>
<tr>
  <td colspan="2"><a href="https://www.projectcalico.org/introducing-the-calico-ebpf-dataplane/">Introducing the Calico eBPF dataplane | Project Calico</a></td>
</tr>
</table>

CalicoにeBPFを利用するオプションがマージされました。この機能はv3.13から"TechPreview"として利用できるようになる予定です。
kube-proxyと比べた場合の様々なパフォーマンステストの結果が掲載されています。

## Directing Kubernetes traffic with Traefik
<table>
<tr>
  <td colspan="2"><a href="https://opensource.com/article/20/3/kubernetes-traefik">Directing Kubernetes traffic with Traefik</a></td>
</tr>
<tr>
  <td><img src="https://opensource.com/sites/default/files/lead-images/browser_web_internet_website.png"></td>
  <td>In this article, we will deploy a couple of simple websites and learn how to ingress traffic from the outside world into our cluster using Traefik. After that, we will learn how to remove Kubernetes resources as well. Let’s get started!</td>
</tr>
</table>

[k3s](https://k3s.io/)でRaspberry Piに構築したKubernetesクラスタでDeployment, Service, Ingressをデプロイする実例。
k3sではTraefikを同梱するようで、セットアップするだけでIngressが利用できるようだ。

## Your own Kubernetes controller - Laying out the work
<table>
<tr>
  <td colspan="2"><a href="https://blog.frankel.ch/your-own-kubernetes-controller/1/">Your own Kubernetes controller - Laying out the work</a></td>
</tr>
<tr>
  <td><img src="https://blog.frankel.ch/assets/resources/your-own-kubernetes-controller/technology-joystick-controller-gadget-blue-console-567976-pxhere.com.jpg"></td>
  <td>It’s hard nowadays to ignore Kubernetes. It has become the ubiquitous platform of choice to deploy containerized applications. In a few years, Kubernetes has entrenched itself deeply in the DevOps landscape under the tutelage of the Cloud Native Computing Foundation. One could speculate about the reasons. IMHO, one very compelling argument is that it allows users to be independent of the API of a single cloud provider. If you’ve been living under the monopoly of Microsoft on the deskt</td>
</tr>
</table>

Kubernetesのコントローラ・オペレータの紹介と、それをGoではなく使い慣れた言語で書くことが良い、という主張について述べている。
この記事は3部構成の一番目の記事でおそらく次はJavaを使ったオペレータの実装方法の紹介の記事が公開されると思われる。

## Migrating from Helm v2 to v3 · GeekSocket
<table>
<tr>
  <td colspan="2"><a href="https://geeksocket.in/posts/helm-2-3-migration/">Migrating from Helm v2 to v3 · GeekSocket</a></td>
</tr>
<tr>
  <td><img src="https://geeksocket.in/blog/wp-content/uploads/2020/helm-horizontal-color.png"></td>
  <td>Helm is the package manager for Kubernetes. This blog post is about the details of new features in v3, how to make your charts compatible with v2 as well as v3 and how to migrate the existing releases in place.</td>
</tr>
</table>

Helm v3に移行するために既存のChartをどのように変更すれば良いのかという話。
CRDをインストールするものは、修正が必要のようだ。また、Helmのv2, v3両方に対応する方法も紹介されている。
また、helmのクライアントを使ったReleaseの移行を行うこともでき、[そのためのツール](https://github.com/helm/helm-2to3)が紹介されている。

## Show Me Your Code with Walter Dal Mut: Extend Kubernetes in NodeJS
<table>
<tr>
  <td colspan="2"><a href="https://gianarb.it/blog/show-me-your-code-walter-dal-mut-kubernetes-nodejs-informers">Show Me Your Code with Walter Dal Mut: Extend Kubernetes in NodeJS</a></td>
</tr>
<tr>
  <td><img src="https://gianarb.it/img/show-me-your-code/ep1-thump.jpg"></td>
  <td>Let's try to get virtual! This is the first attempt as CNCF Meetup from Turin to do something online! The series is called Show me your code. Walter dal Mut from Corley will be the guinea pig to test this new format. Live show on YouTube about Kubernetes and how to use shared informer to extend its capabilities in Node.js.</td>
</tr>
</table>

Node.jsを使ったKubernetesの拡張方法の紹介の動画

## 5 tips for troubleshooting apps on Kubernetes
<table>
<tr>
  <td colspan="2"><a href="https://medium.com/@alexellisuk/5-tips-for-troubleshooting-apps-on-kubernetes-835b6b539c24">5 tips for troubleshooting apps on Kubernetes</a></td>
</tr>
<tr>
  <td><img src="https://miro.medium.com/max/1200/1*nj27D-WiKDnttiKyiduwyw.jpeg"></td>
  <td>After moving from Docker, to Docker Swarm, to Kubernetes and then dealing with all of the various API changes over the years, I’ve got…</td>
</tr>
</table>

Kubernetesでのデバッグのtips5つ。

- kubectl get deployment , kubectl get pods
- kubectl get events
- kubectl logs
- kubectl get -o yaml
- kubectl scale
- kubectl port-forward

どれも基本的なコマンドだが、細かいオプションなども紹介されている。

## Our failure story with Redis operator for K8s (+ a brief look at Redis data analysis tools)
<table>
<tr>
  <td colspan="2"><a href="https://medium.com/flant-com/redis-kubernetes-operator-and-data-analysis-tools-afce55b02123">Our failure story with Redis operator for K8s (+ a brief look at Redis data analysis tools)</a></td>
</tr>
<tr>
  <td><img src="https://miro.medium.com/max/780/0*-IDoV1xKG1-9bDJK.png"></td>
  <td>Why you should be careful using Kubernetes operators for critical infrastructure and which tools are useful to analyze your Redis…</td>
</tr>
</table>

[Redis Operator](https://github.com/spotahome/redis-operator)を使いスケールアウトしようとして、データを失った話と、Redisの解析ツールの紹介。
[Redis-memory-analyzer(RMA)](https://github.com/gamenet/redis-memory-analyzer)がおすすめのようです。

## Introduction to Security Contexts and SCCs – Red Hat OpenShift Blog
<table>
<tr>
  <td colspan="2"><a href="https://blog.openshift.com/introduction-to-security-contexts-and-sccs/">Introduction to Security Contexts and SCCs – Red Hat OpenShift Blog</a></td>
</tr>
<tr>
  <td><img src="https://blog.openshift.com/wp-content/uploads/Openshift-API-Call.png"></td>
  <td>With Role Based Access Control, we have an OpenShift-wide tool to determine the actions (or verbs) each user can perform against each object in the API. For that, rules are defined combining resources with the API verbs into sets called roles, and with the role binding we attribute those rules to users. Once we have …</td>
</tr>
</table>

OpenShiftに実装されているSCCs (Security Context Constraints)  についての紹介。
これはOpenShift独自のkubernetesリソースでこれによりデフォルトのSecurityContextを指定することができるようです。

## Creating Workspaces with the HashiCorp Terraform Operator for Kubernetes
<table>
<tr>
  <td colspan="2"><a href="https://www.hashicorp.com/blog/creating-workspaces-with-the-hashicorp-terraform-operator-for-kubernetes/">Creating Workspaces with the HashiCorp Terraform Operator for Kubernetes</a></td>
</tr>
<tr>
  <td><img src="https://www.datocms-assets.com/2885/1542060063-terraformshare-imglogo-w-stack-graphic1200x630.png?fit=max&fm=jpg&w=1000"></td>
  <td>We are pleased to announce the alpha release of HashiCorp Terraform Operator for Kubernetes. The new Operator lets you define and create infrastructure as code natively in Kubernetes by making calls to Terraform Cloud.</td>
</tr>
</table>

HashiCorp Terraform Operatorのリリースについて。
これを利用することでTerraform Cloudの機能をKubernetesのリソースから操作できるようになります。
例えばAWSのSQSを作ったりできます、Terraformの結果もConfigMapなどで出力されるようで、デプロイいされたSQSのエンドポイントをPodから利用する際に利用できます。

## Recommended Steps to Secure a DigitalOcean Kubernetes Cluster | DigitalOcean
<table>
<tr>
  <td colspan="2"><a href="https://www.digitalocean.com/community/tutorials/recommended-steps-to-secure-a-digitalocean-kubernetes-cluster">Recommended Steps to Secure a DigitalOcean Kubernetes Cluster | DigitalOcean</a></td>
</tr>
<tr>
  <td><img src="https://community-cdn-digitalocean-com.global.ssl.fastly.net/assets/tutorials/images/large/kubernetes_tutorials.png?1582922907"></td>
  <td>In this guide, you will take basic steps to secure your DigitalOcean Kubernetes cluster. You will configure secure local authentication with TLS/SSL certificates, grant permissions to local users with Role-based access controls (RBAC), grant permissio</td>
</tr>
</table>

DigitalOcean Kubernetes Clusterのセキュリティ強化方法の紹介。

- リモート環境から利用するための鍵ペアの生成と、Kubernetesへの鍵の登録
- RBACにより上記ユーザの権限を設定
- ServiceAccountの作成とその権限の設定
- AdmissionControllerの設定 例として ResourceQuota, LimitRangeの設定方法の紹介

## Tutorials | DigitalOcean
<table>
<tr>
  <td colspan="2"><a href="https://www.digitalocean.com/community/tutorials?language=es&q=kubernetes">Tutorials | DigitalOcean</a></td>
</tr>
<tr>
  <td><img src="https://images.prismic.io/digitalocean/70910e9fdeb57be46aaa209ce8d9b4dc8e117fab_w4do2.jpg?auto=compress,format"></td>
  <td>Technical tutorials, Q&A, events—This is an inclusive place where developers can find or lend support and discover new ways to contribute to the community.</td>
</tr>
</table>

スペイン語、ポルトガル語、ロシア語で書かれたKubernetesのチュートリアル（リンクはスペイン語）

# The Editorial

## etcd, with Xiang Li

<table>
<tr>
  <td colspan="2"><a href="https://kubernetespodcast.com/episode/095-etcd/">etcd, with Xiang Li</a></td>
</tr>
<tr>
  <td><img src="https://kubernetespodcast.com/_assets/images/Kubernetes-Podcast-Logo_1400x1400.png"></td>
</tr>
</table>

Kubernetes Podcast, 今回はEtcdの話。ゲストはCoreOSでEtcdの開発を始めたXiang Li。

## Managing Harbor at cloud scale : The story behind Harbor Kubernetes Operator | OVHcloud Blog
<table>
<tr>
  <td colspan="2"><a href="https://www.ovh.com/blog/managing-harbor-at-cloud-scale-the-story-behind-harbor-kubernetes-operator/">Managing Harbor at cloud scale : The story behind Harbor Kubernetes Operator | OVHcloud Blog</a></td>
</tr>
<tr>
  <td><img src="https://www.ovh.com/blog/wp-content/uploads/2020/03/7E235649-EEE8-4D3A-ABF7-0A1D6D93942F.png"></td>
  <td>We will explain why OVHcloud chose to base this service on the Harbor project, built a Kubernetes operator for it, and open sourced it under the CNCF goharbor project.</td>
</tr>
</table>

[Harbor Kubernetes Operator](https://github.com/goharbor/harbor-operator)について

## Nicole Hubbard - Securing Kubernetes Networking
<table>
<tr>
  <td colspan="2"><a href="https://soundcloud.com/thenewstackmakers/nicole-hubbard-securing-kubernetes-networking">Nicole Hubbard - Securing Kubernetes Networking</a></td>
</tr>
<tr>
  <td><img src="https://i1.sndcdn.com/avatars-000115856938-s0r47h-t500x500.jpg"></td>
  <td>For the full video go here: https://youtu.be/honVx93d9aM

As Nicole Hubbard, a developer advocate for HashiCorp observed, customers constantly face difficulties when trying to secure the communication</td>
</tr>
</table>

KubernetesのネットワークセキュリティについてのPodcast。
ゲストはHashiCorpのNicole Hubbard。

## Day 2 for the Operator Ecosystem - DevOps.com
<table>
<tr>
  <td colspan="2"><a href="https://devops.com/day-2-for-the-operator-ecosystem/">Day 2 for the Operator Ecosystem - DevOps.com</a></td>
</tr>
<tr>
  <td><img src="https://devops.com/wp-content/uploads/2020/03/day-2-op-eco.jpg"></td>
  <td>The original focus for Kubernetes was very much on stateless applications, which don’t rely on coordination between instances or sharing data between</td>
</tr>
</table>

Kubernetesオペレータの紹介と、オペレータの開発を助ける[KUDO](https://kudo.dev/)の紹介と、彼らが提唱するKubernetes Operator Interface（KOI)について。

## 4 ways  to manage Kubernetes resources
<table>
<tr>
  <td colspan="2"><a href="http://cloudowski.com/articles/4-ways-to-manage-kubernetes-resources/">4 ways  to manage Kubernetes resources</a></td>
</tr>
<tr>
  <td><img src="http://cloudowski.com/assets/images/4-ways-to-manage-k8s.jpg"></td>
</tr>
</table>

kubernetesリソースを管理するための4つの方法

- シンプルなYAMLファイル
- Kustomize
- Helm
- Operator

それぞれの選択肢が、どういう場面で利用でき、どういう場面で避けるべきなのかがを紹介している。

## Interoperability of open-source tools: the emergence of interfaces
<table>
<tr>
  <td colspan="2"><a href="https://medium.com/@kgamanji/interoperability-of-open-source-tools-the-emergence-of-interfaces-f3b7a90891e4">Interoperability of open-source tools: the emergence of interfaces</a></td>
</tr>
<tr>
  <td><img src="https://miro.medium.com/max/1065/1*aQCwnEiL0aIEVSbrNyQocQ.jpeg"></td>
  <td>In the past years, Kubernetes has been the nucleus of container orchestration frameworks. Numerous tools have been developed to extend…</td>
</tr>
</table>

Kubernetesの各種のインターフェースの発展の紹介と、それがKubernetesの特徴であると述べています。