KubeWeekly #210

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

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

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



# The Headlines

## Cloud Native Summit - Online!
<table>
<tr>
  <td colspan="2"><a href="https://cloudnativesummit.online/">Cloud Native Summit - Online!</a></td>
</tr>
<tr>
  <td><img src="https://cloudnativesummit.online/images/og-card.png"></td>
  <td>A cloud native community event focused on graduated CNCF projects, SIGs and WGs - what's happening & why / how of getting involved.</td>
</tr>
</table>

太平洋時間4/7 6:00 - 2:00 でオンラインイベント CloudNatveSummitを開催したようです。

# ICYMI: CNCF Webinars 

## CNCF Ambassador Webinar: Continuous Profiling Go Application Running in Kubernetes - Cloud Native Computing Foundation
<table>
<tr>
  <td colspan="2"><a href="https://www.cncf.io/webinars/continuous-profiling-go-application-running-in-k8s/">CNCF Ambassador Webinar: Continuous Profiling Go Application Running in 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>Microservices and Kubernetes help our architecture to scale and to be independent at the price of running many more applications. Golang provides a powerful profiling tool called pprof, it is...</td>
</tr>
</table>

Kubernetesクラスタ上で動作するごのアプリケーションの継続的プロファイリングについてのWebinar

## CNCF Member Webinar: MindSpore and Cloud Native Ecosystem - Cloud Native Computing Foundation
<table>
<tr>
  <td colspan="2"><a href="https://www.cncf.io/webinars/cncf-member-webinar-mindspore-and-cloud-native-ecosystem/">CNCF Member Webinar: MindSpore and Cloud Native Ecosystem - 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>In this webinar we will introduce MindSpore, the newly open sourced deep learning framework that could be used for mobile, edge and cloud scenarios, and how we utilize cloud native...</td>
</tr>
</table>

深層学習用のオープンソースのフレームワークであるMindSphereの紹介のWebinaer

## CNCF Member Webinar: Container Security at Scale: Lessons Learned from the Front Lines with ABN AMRO and Palo Alto Networks - Cloud Native Computing Foundation
<table>
<tr>
  <td colspan="2"><a href="https://www.cncf.io/webinars/container-security-at-scale-lessons-learned-from-the-front-lines-with-abn-amro-and-palo-alto-networks/">CNCF Member Webinar: Container Security at Scale: Lessons Learned from the Front Lines with ABN AMRO and Palo Alto Networks - 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>Containers are becoming the standard to build, package and deploy applications on-premises and in the cloud. Even in highly regulated environments, container terminals are accepting containers as their default package....</td>
</tr>
</table>

コンテナセキュリティについて、実例を紹介するWebinar。

## CNCF Member Webinar: Taming Your AI/ML Workloads with Kubeflow - The Journey to Version 1.0 - Cloud Native Computing Foundation
<table>
<tr>
  <td colspan="2"><a href="https://www.cncf.io/webinars/taming-ai-ml-workloads-with-kubeflow-journey-to-v1/">CNCF Member Webinar: Taming Your AI/ML Workloads with Kubeflow - The Journey to Version 1.0 - 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>Putting Machine Learning (ML) into production is not trivial and the actual ML capability is just a tiny part of the entire AI/ML lifecycle. This requires new platforms for collaboration...</td>
</tr>
</table>

Kubeflowが解決するべき課題の紹介、1.0リリースの内容などを紹介するWebinar。

# The Technical

## How to detect outdated Kubernetes APIs
<table>
<tr>
  <td colspan="2"><a href="https://opensource.com/article/20/3/deprek8">How to detect outdated Kubernetes APIs</a></td>
</tr>
<tr>
  <td><img src="https://opensource.com/sites/default/files/lead-images/ship_captain_devops_kubernetes_steer.png"></td>
  <td>Recently, deprecated APIs have been wreaking havoc on everyone's Kubernetes manifests. Why is this happening?!? It's because the objects that we've come to know and love are moving on to their new homes. And it's not like this happened overnight. Deprecation warnings have been in place for quite a few releases now. We've all just been lazy and thought the day would never come. Well, it's here!</td>
</tr>
</table>

[Deprek8](https://github.com/naquada/deprek8)という[Open Policy Agent](https://github.com/open-policy-agent/opa) のためのポリシーのセットの紹介。

このポリシーはKubernetesのDepreecatedになってしまったオブジェクトを検知するためのものです。
[Conftest](https://github.com/instrumenta/conftest)と組み合わせて使うことで、自分のリポジトリの中のマニフェストがDeprecatedになってしまっていないかを確認することができます。

さらにこれをGithubActionsでチェックする方法も紹介しています。

## GitOps for Kubernetes | Caylent
<table>
<tr>
  <td colspan="2"><a href="https://caylent.com/gitops-for-kubernetes">GitOps for Kubernetes | Caylent</a></td>
</tr>
<tr>
  
  <td>GitOps is a new approach to Continuous Deployment that leverages Git as a single source of truth for declarative infrastructure and applications.</td>
</tr>
</table>

GitOpsの紹介とそれを実現するためのFluxの紹介。
GitOpsを採用することでセキュリティ監査の要件を満たすようなことも書いてあり、気になりました。

## Evaluating Predictive Autoscaling in Kubernetes
<table>
<tr>
  <td colspan="2"><a href="https://jamiethompson.me/posts/Evaluating-Predictive-Autoscaling-Kubernetes/">Evaluating Predictive Autoscaling in Kubernetes</a></td>
</tr>
<tr>
  <td><img src="https://avatars1.githubusercontent.com/u/6690498?s=460&v=4"></td>
  <td>Over the past 6 months I’ve developed the Custom Pod Autoscaler
Framework (CPA), an open source
framework for building autoscalers in Kubernetes, similar to the Horizontal Pod
Autoscaler. As part of this I built the Predictive Horizontal Pod Autoscaler
(PHPA) which is in
pre-release
to provide predictive autoscaling functionality ontop of the Horizontal Pod
Autoscaler using statistical models.

</td>
</tr>
</table>

推測に基づいてPodをスケールさせるための自作の [Predictive Horizontal Pod Autoscaler](https://predictive-horizontal-pod-autoscaler.readthedocs.io/en/latest/)(PHPA)の紹介です。
特定の時間帯に負荷が増加するようなワークロードにおいては、Kubernetes標準のHPAより高負荷時のレイテンシを低く抑えられるという目論見で開発されているようです。
この記事の実験では、PHPAがHPAに比べ、負荷増加時のレイテンシが低く抑えられる実例や、Pod数の変更が細かすぎて、結果的にレイテンシが高くなってしまう例が紹介されています。
まだ実用で使うのは早いかなという印象でしたが、期待できるプロダクトです。

## How to Secure Your Kubernetes Cluster on GKE - DevOps.com
<table>
<tr>
  <td colspan="2"><a href="https://devops.com/how-to-secure-your-kubernetes-cluster-on-gke/">How to Secure Your Kubernetes Cluster on GKE - DevOps.com</a></td>
</tr>
<tr>
  <td><img src="https://devops.com/wp-content/uploads/2020/03/GKE0.jpg"></td>
  <td>Google Kubernetes Engine (GKE) is easy to get going with, but requires additional security controls. The documentation is hard to grasp as there are many</td>
</tr>
</table>

GKEをセキュアにするためのTips紹介。
デフォルトでは有効化されていない様々なセキュリティ機能について、設定の方法と、それを設定しないと何がまずいのかということを紹介している。

## With Kubernetes Operators comes great responsibility
<table>
<tr>
  <td colspan="2"><a href="https://www.redhat.com/en/blog/kubernetes-operators-comes-great-responsibility">With Kubernetes Operators comes great responsibility</a></td>
</tr>
<tr>
  <td><img src="https://www.redhat.com/profiles/rh/themes/redhatdotcom/img/red-hat-social-share.jpg"></td>
  <td>In this post we explore safe ways to deploy Operators to Openshift 4.x using OperatorHub, OLM and scoping rules for Operators.</td>
</tr>
</table>

OpenShiftにてオペレータをインストールする方法を紹介。OpenShiftではデフォルトでOperator Lifecycle Managerが動作しており、これがOperatorをインストールする。
OperatorGroupというOpenShift特有のリソースを使うことで、オペレータに特定のNameapaceの権限だけを与える方法が紹介されている。

## Using UBI images to minimize container vulnerabilities | Snyk
<table>
<tr>
  <td colspan="2"><a href="https://snyk.io/blog/ubi-to-minimize-container-vulnerabilities/">Using UBI images to minimize container vulnerabilities | Snyk</a></td>
</tr>
<tr>
  <td><img src="https://snyk.io/wp-content/uploads/container-scans-1.png"></td>
  <td>At Snyk, we work hard to continue improving container and cloud-native security solutions. In this post, we look at Red Hat Universal Base Images.</td>
</tr>
</table>

Red Hat Universal Base Images(UBI)についての紹介。
中身はRed Hat Enterpriseと近いですが、セキュリティ・パフォーマンスの面で優れており、ライフサイクルも早いようです。
各言語用のベースイメージもUBI版が提供されており、RedHat社が脆弱性に対する修正を頻繁に行っているようです。

## Build a Kubernetes Operator in 10 minutes with Operator SDK
<table>
<tr>
  <td colspan="2"><a href="https://opensource.com/article/20/3/kubernetes-operator-sdk">Build a Kubernetes Operator in 10 minutes with Operator SDK</a></td>
</tr>
<tr>
  <td><img src="https://opensource.com/sites/default/files/lead-images/kubernetes_containers_ship_lead.png"></td>
  <td>In Kubernetes, objects are analogous to a job or a completed task in the real world. You can use them to define common tasks, store them in a version control system, and apply them with kubectl apply. Kubernetes ensures that this triggers everything necessary to bring your declarative description to life by creating the depending resources (like pods) to run your software. Kubernetes contains a number of built-in object types that can be created with this workflow, like Deployments and Services.</td>
</tr>
</table>

Operator SDKを使って10分で Operatorを作成するという記事。
Scaffoldingの機能があるため、最低限のコードを書くことでオペレータを作ることができる。

## Kpt: Packaging up your Kubernetes configuration with git and YAML since 2014
<table>
<tr>
  <td colspan="2"><a href="https://opensource.googleblog.com/2020/03/kpt-packaging-up-your-kubernetes.html">Kpt: Packaging up your Kubernetes configuration with git and YAML since 2014</a></td>
</tr>
<tr>
  <td><img src="https://opensource.google.com/assets/static/images/home/blog/blog_image_1.jpg"></td>
  <td>Kpt, an OSS tool for Kubernetes packaging, uses a standard format to bundle, publish, customize, update, and apply configuration manifests. Built around an “as data” architecture bundling Kubernetes resource configuration, a format for both humans and machines, the ability for tools to read and write the package contents using standardized data structures enables powerful new capabilities!</td>
</tr>
</table>

Kubernetesのためのパッケージングツールである[kpt](https://googlecontainertools.github.io/kpt/)の紹介。
gitで公開された上位のマニフェストを元に、下位のマニフェストを作成するというユースケースにおいて、上位のマニフェストが再度変更された場合に、うまいことマージしたり、下位のマニフェストを変更しやすくするためのテンプレーティングを提供したりするツールのようです。

## Provisioning cloud resources (AWS, GCP, Azure) in Kubernetes
<table>
<tr>
  <td colspan="2"><a href="https://learnk8s.io/cloud-resources-kubernetes">Provisioning cloud resources (AWS, GCP, Azure) in Kubernetes</a></td>
</tr>
<tr>
  <td><img src="https://learnk8s.io/a/fb1c37d39aca9eb5a920edec84514a9e.png"></td>
  <td>You can create and connect to managed cloud resources using the Service Catalog, a tool such as Kubeform or cloud-specific operators such as Config Connector and AWS Operator Service.</td>
</tr>
</table>

Kubernetesから、AWS, GCP, Azureも各種マネージドサービスをデプロイする方法の紹介。
Service Catalogを使う方法と Kubeformを使う方法などを紹介している。

# The Editorial

## Edge Computing Requires Cloud Native Thinking Today  | TFiR
<table>
<tr>
  <td colspan="2"><a href="https://www.tfir.io/edge-computing-requires-cloud-native-thinking-today/">Edge Computing Requires Cloud Native Thinking Today  | TFiR</a></td>
</tr>
<tr>
  <td><img src="https://i1.wp.com/www.tfir.io/wp-content/uploads/2018/08/living-on-the-edge-844873_1920.jpg?fit=1920%2C1280&ssl=1"></td>
  <td>Using Kubernetes and other cloud native technologies to run edge computing is required to make the operational and business models work, but it is still in its infancy. Getting involved today puts you on the ground floor to shape this exciting future</td>
</tr>
</table>

エッジコンピューティングがくるぞ、という話と、そこでKubernetesを活用する話、特に5G周りについて紹介されている。

## Optimising UE4 Project Builds With Cloud Native Infrastructure And Containers
<table>
<tr>
  <td colspan="2"><a href="https://www.gamasutra.com/blogs/JoseMoreira/20200327/360277/Optimising_UE4_Project_Builds_With_Cloud_Native_Infrastructure_And_Containers.php">Optimising UE4 Project Builds With Cloud Native Infrastructure And Containers</a></td>
</tr>
<tr>
  <td><img src="https://twimgs.com/gamasutra/images/gamasutra_logo.png"></td>
  <td>A holistic view on the application of general computing cost-effective platforms like Kubernetes for Any-A and any kind of studio workloads.
</td>
</tr>
</table>

有名なゲームエンジンである　Unreal Engineをコンテナ上でビルドできるようにするパイプラインを作るのはどうか？というような話。
特に昨今のテレワーク推奨の流れの中で、クラウドでUnreal Engineをビルドできるようにすることは有用であるとのこと。


## Migrating to Kubernetes
<table>
<tr>
  <td colspan="2"><a href="https://blog.sensu.io/migrating-to-kubernetes">Migrating to Kubernetes</a></td>
</tr>
<tr>
  <td><img src="https://blog.sensu.io/hubfs/Picture1-2.png#keepProtocol"></td>
  <td>Learn how to approach making Kubernetes the platform on which your workloads thrive!</td>
</tr>
</table>

Kubernetesへ移行する際に考えるべきこと。
まずはコンテナ化、デプロイ戦略、ヘルスチェック、ネットワーク周り、モニタリング、永続ストレージ、、、考えることがたくさんありますね・・

## 14 Kubernetes interview questions: For hiring managers and job seekers
<table>
<tr>
  <td colspan="2"><a href="https://enterprisersproject.com/article/2020/3/14-kubernetes-interview-questions">14 Kubernetes interview questions: For hiring managers and job seekers</a></td>
</tr>
<tr>
  <td><img src="https://enterprisersproject.com/sites/default/files/images/cio_talent.png"></td>
  <td>Filling Kubernetes jobs can be tricky because the technology is relatively young. Experts share interview questions to help hiring managers sort candidates – and help job seekers prepare.</td>
</tr>
</table>

Kubernetesを扱うロールの人の採用面接をする際に有効な質問例

## Service Mesh Adds Security, Observability and Traffic Control to Kubernetes - The New Stack
<table>
<tr>
  <td colspan="2"><a href="https://thenewstack.io/service-mesh-adds-security-observability-and-traffic-control-to-kubernetes/">Service Mesh Adds Security, Observability and Traffic Control to Kubernetes - The New Stack</a></td>
</tr>
</table>

サービスメッシュについて、Security, Observability, Routingのそれぞれの機能についての紹介。

## BotKube :: BotKube
<table>
<tr>
  <td colspan="2"><a href="https://www.botkube.io/">BotKube :: BotKube</a></td>
</tr>
<tr>
  <td><img src="https://www.botkube.io//images/botkube.ico"></td>
</tr>
</table>

Kubernetesを操作したり通知を受け取るためのチャットボットを作るフレームワーク

## MKIT - Managed Kubernetes Inspection Tool
<table>
<tr>
  <td colspan="2"><a href="https://darkbit.io/blog/mkit-managed-kubernetes-inspection-tool">MKIT - Managed Kubernetes Inspection Tool</a></td>
</tr>
<tr>
  <td><img src="https://darkbit.io/img/previews/mkit.jpeg"></td>
  <td>MKIT - Managed Kubernetes Inspection Tool - Darkbit</td>
</tr>
</table>

[MKIT](https://github.com/darkbitio/mkit)というAKS,EKS,GKEのKubernetesの設定が正しいかを検査するツールの紹介。

## HashiCorp Joins the CNCF
<table>
<tr>
  <td colspan="2"><a href="https://www.hashicorp.com/blog/hashicorp-joins-the-cncf/">HashiCorp Joins the CNCF</a></td>
</tr>
<tr>
  <td><img src="https://www.datocms-assets.com/2885/1552511797-hashicorp-stack-2019.jpg?fit=max&fm=jpg&w=1000"></td>
  <td>To further HashiCorp product integrations with CNCF projects and to work more closely with the broad community of cloud engineers, today HashiCorp is joining the CNCF. </td>
</tr>
</table>

HashiCorpがCNCFにJoinしました。今後HashiCorpのプロダクトもますますKubernetes対応が進んでいくとのこと。

## My DevOps books are free in April, thanks to Device42! | Jeff Geerling
<table>
<tr>
  <td colspan="2"><a href="https://www.jeffgeerling.com/blog/2020/my-devops-books-are-free-april-thanks-device42">My DevOps books are free in April, thanks to Device42! | Jeff Geerling</a></td>
</tr>
</table>

 [Ansible for DevOps](https://www.ansiblefordevops.com/)と [Ansible for Kubernetes](https://www.ansibleforkubernetes.com/)がこの4月の間は無料で読めるようです。自粛中に自動化スキルを身につけようということのようです。