Kube Weekly #147


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

# KubeWeeklyは停止してしまったのか？

8月までは私はRSSでKubeWeeklyを読んでいました。しかし最近RSSが更新されていないようです、同時にWebページにもアクセスできなくなっているようです。

https://kubeweekly.com/

しかし、メーリングリストは生きているようで、いつものようにほぼ毎週記事が送られてきます。
Webサイトがない今、どうやって新たにメーリングリストを購読するのが良いかわからないのですが、とりあえずいつものように読書メモを公開します。

KubeWeeklyは海外のKubernetes関係のニュースを良い感じにつまみ食いできるメディアで重宝しているのですが、今のような状態では新規に購読することが難しいです。何か運営側の意図でこのような状態になっている？（とは考えにくいですが）のかもしれませんが、個人的には、前のようにWebページも復活させて欲しいです。

この記事を読んでいる方で、KubeWeeklyの編集に関わっている人をご存知の方は、ちらっと聞いてみてもらえると助かります！

# The Headline

## [The Machines Can Do the Work, a Story of Kubernetes Testing, CI, and Automating the Contributor Experience - Kubernetes](https://kubernetes.io/blog/2018/08/29/the-machines-can-do-the-work-a-story-of-kubernetes-testing-ci-and-automating-the-contributor-experience/)

Kubernetesの開発で利用している自動化ツールProwとその周辺ツールの紹介

## [CNCF Survey: Use of Cloud Native Technologies in Production Has Grown Over 200% - Cloud Native Computing Foundation](https://www.cncf.io/blog/2018/08/29/cncf-survey-use-of-cloud-native-technologies-in-production-has-grown-over-200-percent/)

CNCFのサーベイについて。
色々な数字が見られる。

CludNativeプロジェクトの利点は？という質問で回答の多かったもの

- Faster deployment time
- Improved scalability
- Cloud portability

はこれからCloudNativeプロジェクト導入していく場合に参考になりそう。

## [Distributed Tracing Infrastructure with Jaeger on Kubernetes](https://medium.com/@masroor.hasan/tracing-infrastructure-with-jaeger-on-kubernetes-6800132a677)

分散トレーシングについて。
Kubernetes場でJaegerを使った分散トレーシングを行う方法を紹介している。
Kubernetes向けのJaegerのテンプレートが [GitHub - jaegertracing/jaeger-kubernetes: Support for deploying Jaeger into Kubernetes](https://github.com/jaegertracing/jaeger-kubernetes) にある。

goのアプリケーションにJaeger用のログを送る設定を入れる方法と、それを収集する方法の紹介

# The Technical

## [Floating Point | Authorization of developers working on a Kubernetes cluster](https://kubeweekly.us10.list-manage.com/track/click?u=3885586f8f1175194017967d6&id=29225b6d91&e=c24d137d74)

証明書を使ったKubernetesの認証方法について。
ディベロッパーが個々に証明書ペアを作り、それをKubernetesのCAでサインする。
証明書のOrganizationでGroupを、CNでユーザ名を指定できる。

CertificateSigningRequestを使うこともできるようだが、それは次回書く とのこと

## [Hyperledger Fabric Deployment Using Helm Chart | Thinking in Cloud](http://www.think-foundry.com/hyperledger-fabric-deployment-using-helm-chart/)

FabricというブロックチェーンのプラットフォームをHelmでKubernetesにデプロイする方法の紹介。

## [Virtualization Blog: Kubernetes Log forwarding to VMware Log Intelligence using Fluentd](http://vcommunique.blogspot.com/2018/09/kubernetes-log-forwarding-to-vmware-log.html)

fluentdを使ってログをログ収集ツール Log Intelligence に送る方法について。
HostPathでコンテナのログをマウントしsyslogプロトコルで中継サーバ（Data Collector）に送る方法と直接httpsで送る方法の2つが紹介されている。 

## [Git Push to Deploy Your App on EKS | AWS Open Source Blog](https://aws.amazon.com/jp/blogs/opensource/git-push-deploy-app-eks-gitkube/)

EKS上でGitkubeを利用する方法を紹介。
gitkubeはherokuのようにgit pushするとアプリケーションがデプロイするような仕組みをKubernetesでもできるようにする仕組み。

gitkubeというコマンドで、初期化するとgit remoteにKubernetesクラスタが追加される。そのリポジトリにpushすることでアプリケーションをデプロイできる。

## [Dynamic database credentials with Vault in Kubernetes](https://kubeweekly.us10.list-manage.com/track/click?u=3885586f8f1175194017967d6&id=d7d152771d&e=c24d137d74)

vaultに短命なクレデンシャルを登録し、ファイルとしてマウントするサイドカーの紹介と、そのサイドカーを自動的に注入するMutatingAdmissionWebhookの紹介。

これを使うことで、データベースのパスワードなどを毎回異なるものにすることができる。

## [gRPC On HTTP/2: Engineering A Robust, High Performance Protocol - Cloud Native Computing Foundation](https://www.cncf.io/blog/2018/08/31/grpc-on-http-2-engineering-a-robust-high-performance-protocol/)

gRPCの紹介

## [Extending Kubernetes APIs with Custom Resource Definitions (CRDs) — Velotio Technologies](https://velotio.com/blog/2018/9/1/extending-kubernetes-api-with-crd)

CRDの作り方とclient-goでの扱い方。
最近はkube-builderなどもあるがこの記事はそういうものを使わず1からCRDのコードを書いている。

## [Comparison of Two Different Approaches Towards Container Management](https://medium.com/next-level-german-engineering/comparison-of-two-different-approaches-towards-container-management-4e5298736d42)

起動が非常に遅いコンテナをリクエストごとに作る必要があるようなワークロードをどのように実現するかという方法。

初めはKubernetesを使わずに実現する方法と、Kubernetesを利用する方法の2パターンが紹介されている。
Kubernetesを利用する方法では、意図的にDeploymentと紐づいているラベルを削除することで、待機Podを作り出している。

## [Getting Started with Kubernetes Ingress-Nginx on Minikube](https://medium.com/@awkwardferny/getting-started-with-kubernetes-ingress-nginx-on-minikube-d75e58f52b6c)

Ingressを「ドア」に例えて説明。minikubeで実際にIngressリソースをデプロイする方法の紹介。

## [Understanding Istio Ingress – FireHydrant – Medium](https://medium.com/firehydrant-io/understanding-istio-ingress-7b7b23e288d9)

IstioのリソースGatewayVertualServiceの使い方の例。

# The Editorial

## [How SoulCycle is speeding up code deployment, leveraging Kubernetes | ZDNet](https://www.zdnet.com/article/how-soulcycle-is-speeding-up-code-deployment-leveraging-kubernetes/)

システムをKubernetesに乗り換えた話。
CDツールとして [Harness | Continuous Delivery Simplified — CI/CD for Devops](https://harness.io/) を使っているようだ。

## [What is Kubernetes? Optimise your hosting costs and efficiency ♦︎ learnk8s](https://learnk8s.io/blog/what-is-kubernetes)

Kubernetesを使うと効率・コストが最適化するということを紹介している記事。
従来のVMの場合になぜ、効率が悪く、コストがかかるかということを説明し、コンテナ化とKubernetesの利用によりどのように最適化されるかを説明している。

## [A Comparison of Serverless Frameworks for Kubernetes: OpenFaas, OpenWhisk, Fission, Kubeless and more](https://winderresearch.com/a-comparison-of-serverless-frameworks-for-kubernetes-openfaas-openwhisk-fission-kubeless-and-more/)

OpenFaaS, OpenWrisk, Fission, Kubelessなどの比較。それぞれの特徴が表にまとまっている。

## [Microservices in a Post-Kubernetes Era](https://www.infoq.com/articles/microservices-post-kubernetes)

Kubernetesがデファクトスタンダードになった今、どういうアプリケーションを作るべきかという話。
SOA MSA CNAと時代とともに変化するアーキテクチャの図が興味深い


## [Kubernetes is the new application operating environment (Part 1) - RHD Blog](https://developers.redhat.com/blog/2018/09/05/kubernetes-new-operating-environment/)

Kubernetsの紹介

## [Oracle Cloud Native Labs](https://www.oracle.com/webfolder/s/assets/microsite/cloud-native/blog-single.html?id=Captain%27s+Log:+Container+Native+Logging+with+the+EFK+Stack)

EFK stackの紹介
Oracle Kubernetes Engineでは専用のHelmチャートを用意しているようだ。

## [A Tale of Cloud, Containers and Kubernetes - SocialCops](https://blog.socialcops.com/technology/engineering/tale-cloud-containers-kubernetes/?utm_content=76647474&utm_medium=social&utm_source=twitter)

コンテナ、そしてKubernetes登場の歴史

## [Developers’ corner: Top 9 open source projects spawned by Kubernetes](http://techgenix.com/open-source-kubernetes/)

Kubernetesから生み出された9つのOSSの簡単な紹介。
Helm, Operator Framework, gVisor, Istio, Prometheus, OpenTracing, Kops, Project Calico, gRPC

## ["Kubernetes: Not only microservices, but also high performance workloads" - JAXenter](https://jaxenter.com/kubernetes-interview-ma-148956.html)

SIG-Schedulingのリーダへのインタビュー記事

あまり知られていないお気に入りの機能は？と聞かれ
[GitHub - kubernetes-incubator/kube-arbitrator: A batch scheduler of Kubernetes for ML/BigData/HPC Workload](https://github.com/kubernetes-incubator/kube-arbitrator)
を紹介していた。
バッチ用のスケジューラらしい。

## [Three Patterns for an Effective Cloud Native Development Workflow](https://hackernoon.com/three-patterns-for-an-effective-cloud-native-development-workflow-6f59525f5bf1)

クラウドネイティブ開発のワークフローのパターンを3種類紹介

- The simulated local development infrastructure pattern
  - リモートの環境をシミュレートするような仕組みを使って開発を行う
    - AWS SAM Local, LocalStack
- The re-usable remote infrastructure pattern
  - （複数の）テスト環境を使い回す
    - kubernaut [GitHub - datawire/kubernaut: Instant ephemeral Kubernetes clusters for development and testing](https://github.com/datawire/kubernaut)
- The local-to-production development pattern
  - プロダクション環境（やそれに近い環境）を使って開発する
    - dev spaces, Telepresence

また各マイクロサービスのテストのためには、モックの仕組みを使うのが良いことを紹介している。
最後に、マイクロサービスのリリースを完璧に検証することは難しいのでCanaryリリースなどを活用することを勧めている。

# バックナンバー

- KubeWeekly #143 https://qiita.com/inajob/items/b93257781552c61da173
- KubeWeekly #142 https://qiita.com/inajob/items/6eac1a856e95f18cd2ca
- KubeWeekly #141 https://qiita.com/inajob/items/7771e5a5a4409f433042