KubeWeekly #141

KubeWeeklyは毎週Kubernetesに関する興味深いニュースを提供しています。この記事は 2018/07/18に公開された https://kubeweekly.com/kubeweekly-141/ を読んで、感じたことをメモ的にまとめたものです。
私の勘違いや説明不足による誤解もあるかと思いますので、この記事読んで「おっ」と思ったらURLを辿って本文を確認してください。

# The Headlines

## [How the sausage is made: the Kubernetes 1.11 release interview, from the Kubernetes Podcast - Kubernetes](https://kubernetes.io/blog/2018/07/16/how-the-sausage-is-made-the-kubernetes-1.11-release-interview-from-the-kubernetes-podcast/)

Kubernetes PodCastの書き起こし。
1.11のリリースマネージャへのインタビュー

## [Add CI/CD to Your Spring Boot App with Jenkins X and Kubernetes | Okta Developer](https://developer.okta.com/blog/2018/07/11/ci-cd-spring-boot-jenkins-x-kubernetes)

JenkinsXの紹介
jxコマンドでGKEクラスタを作るに始まり、Sprint Bootのアプリの雛形を作ることもやってくれる。
oktaという認証認可as a serviceの会社のブログ記事で、Sprint Bootのアプリケーションんいoktaでのログイン機能を導入するチュートリアル

## [Spawning Kubernetes Clusters in CI for Integration and E2E tests · Marko Mudrinić](https://xmudrii.com/posts/spawn-kubernetes-ci/)

Travis-CIでKubernetesクラスタを作る方法の解説。
systemdやsystemd-containersがないTravis-CIで動くソリューションとしてminikubeとkubeadm-dind-clusterを紹介している。

minikubeの場合はdriverをnoneに指定する。そしてkubeadmではなくlocalkubeをつかとのこと。（先行きが不安）
kubeadmの作るクラスタはsystemdに依存しているから使えないとのこと。

kubeadm-dind-clusterは先行き不安なminikube方式の代替案。kubeadmを使うので最新のクラスタを動かすこともできる。
しかしクラスタ構築には時間がかかる。minikubeが30-60sとするとkubeadm-dind-clusterは6-10分ほど。

TravisーCIがsystemd, systemd-containersをサポートしていないのがそもそもの問題で、これはUbuntu16.04が使えるようになれば解決するだろうとのこと。

# The Technical
## [Resizing Persistent Volumes using Kubernetes - Kubernetes](https://kubernetes.io/blog/2018/07/12/resizing-persistent-volumes-using-kubernetes/)

v1.11で使えるようになったPersistentVolumeの容量変更（追加）の紹介。
AWS-EBS, GCE-PD, Azure Disk, Azure File, Glusterfs, Cinder, Portworx, and Ceph RBD で使える。

PVCのサイズを変更するとKubernetesがよしなにボリュームを拡張してくれる。その際Podの再起動が必要なものについては、それも行う。という機能。

## [Scaling Microservices with Message Queues, Spring Boot and Kubernetes • learnk8s](https://learnk8s.io/blog/scaling-spring-boot-microservices)

キューを間に持つようなマイクロサービスの作り方。
Spring Bootを使って作る。メッセージングはJMS経由で扱うことができる。
メッセージブローカはActiveMQを使う。
キューの長さをもとにCustumMetricsでスケールするように設定している。

## [Protect Kubernetes External Endpoints with OAuth2 Proxy](https://akomljen.com/protect-kubernetes-external-endpoints-with-oauth2-proxy/)

Kubernetesでサービスを公開する時に、認証するためにOAuth2 Proxyを使う。nginx ingress controllerの場合の設定例。
nginxだと`nginx.ingress.kubernetes.io/auth-url`などが使えるので簡単。

## [Sysdig | Runtime Container Security - How to Implement Open Source Container Security (Part 1)](https://sysdig.com/blog/oss-container-security-runtime/)

Runtime Container Security。静的なコンテナのスキャンではなく、実際に動作しているコンテナのセキュリティ調査。
SELinuxやSeccompとの比較としてFalcoが紹介されている。
ルールを書くのが大変そうという印象だが、いくつかのプロダクト向けのルールは提供されている。[GitHub - draios/falco-extras: Sysdig Falco container runtime security extras (default ruleset and more)](https://github.com/draios/falco-extras)

Falcoで検知したアラートに対して何らかの自動対応をすることもでき、その部分はNATSとKubelessで実装されている。

## [Deploying Rust with Docker and Kubernetes](https://www.fpcomplete.com/blog/2018/07/deploying-rust-with-docker-and-kubernetes)

RustアプリケーションをKubernetesにデプロイするチュートリアル。
といっても他の言語と大きくやり方が変わることはない。FROM scratchにする部分はRust特有のtipsがあるようだ。

## [Docker and Azure Kubernetes Service for .NET Developers](https://devislandblog.wordpress.com/2018/07/13/docker-and-azure-kubernetes-service-for-net-developers/)

WindowsでVisualStudioを使ってASP.NETのアプリケーションを開発し、AKSにデプロイするまでのチュートリアル。

Docker,Kubernetes,Helmなどを一気に説明している記事で、前提となる知識が大量にあることが実感できる。

## [Getting Started with the OpenFaaS Kubernetes Operator on EKS](https://www.weave.works/blog/getting-started-with-openfaas-kubernetes-operator-on-eks)

OpenFaaSがKubernetesのoperatorとなったのでそれをEKSにデプロイしてみる記事。
eksctlというCLIツールがあるらしい。[eksctl - a CLI for Amazon EKS | a CLI for Amazon EKS](https://eksctl.io/)
WeaveCloudへの連携など宣伝的な内容も書かれている。

## [Managing Memory and CPU Resources for Kubernetes Namespaces](https://supergiant.io/blog/managing-memory-and-cpu-resources-for-kubernetes-namespaces)

LimitRangeを使ったデフォルトのリソース制限の定義方法紹介。
ResourceQuotaを使ったNamespace全体でのリソースの使用量の制限。

## [Deploy WSO2 API Microgateway in Kubernetes – Pubudu Gunatilaka – Medium](https://medium.com/@pubudu538/deploy-wso2-api-microgateway-in-kubernetes-c2f25a35d863)

WSO2というAPIマイクロゲートウェイをKubernetesにデプロイする話。
WSO2がどういうものなのかいまいちわからなかった。

## [Advanced Networking with Istio on Kubernetes – vamp.io – Medium](https://medium.com/vamp-io/advanced-networking-with-istio-on-kubernetes-39f1e6eb0c39)

込み入ったIstioの設定方法の紹介。Istioの各リソースの操作はvampというGUIサービスを経由して行なっている。 [Product | Vamp](https://vamp.io/product/)

Vamp自体はDC/OSやMethos/Marathon Docker, ACSなど様々な環境で動くように作られているようで、Kubernets向けにはIstioが設定できるようです。[Vamp](https://vamp.io/documentation/installation/v0.9.5/overview/)

# The Editorial

## [Resizing Persistent Volumes using Kubernetes - Kubernetes](https://kubernetes.io/blog/2018/07/12/resizing-persistent-volumes-using-kubernetes/)

同じ記事だった

## [When Does Kubernetes Become Invisible And Ubiquitous?](https://www.nextplatform.com/2018/07/17/when-does-kubernetes-become-invisible-and-ubiquitous/)

## [Supporting Fast Decisioning Applications with Kubernetes - Cloud Native Computing Foundation](https://www.cncf.io/blog/2018/07/11/supporting-fast-decisioning-applications-with-kubernetes/)

KubeCon/CloudNativeCon NorthAmerica2017の発表紹介
（動画はじっくり見ていない）

## [Kubernetes Without Servers | CloudBees](https://www.cloudbees.com/blog/kubernetes-without-servers)

Kubernetes自体もServerless的に扱えないかという記事。
Fargate、VirtualKubeletを組み合わせるという考え。

Fargateは同性能のEC2と比べると2倍ほど高いが、秒単位の課金なのでスパイクするような負荷に対するオートスケールの場合はむしろやすくなることがあるかも。などと書かれている。

## [Operation: Stateful. Introducing BlueK8s and Kubernetes Director](https://medium.com/@thomas_phelan/operation-stateful-introducing-bluek8s-and-kubernetes-director-aa204952f619)

statefulのアプリケーションをうまく扱うためのオペレータであるKubeDirectorの紹介。
KubeDirectorを使うとstatefulアプリケーションごとに固有のOperatorを作る必要がない、と言っている。
詳細は記事に書いてないが、オープンソースなので内容を見て見たい。

とおもったらまだ未公開だった。

> The first pre-alpha version of KubeDirector is in development now, and will be available soon
[GitHub - bluek8s/kubedirector: Kubernetes Director (aka KubeDirector) for deploying and managing stateful applications on Kubernetes](https://github.com/bluek8s/kubedirector)

## [Stepping up your continuous delivery with Kubernetes and Spinnaker](http://techgenix.com/kubernetes-and-spinnaker/)

Kubernetsに向けたデプロイツールとしてSpinnakerを勧める記事
他のツールとの比較などはされていないので、物足りなく感じた。

## [Getting Started with Cloud Native Infrastructure | The Open Source Show | Channel 9](https://channel9.msdn.com/Shows/The-Open-Source-Show/Getting-Started-with-Cloud-Native-Infrastructure)

Microsoftの動画サイトChannel9での動画紹介
(見ていない)

## [Why Kubernetes Is the New Application Server - DZone Microservices](https://dzone.com/articles/why-kubernetes-is-the-new-application-server)

Kubernetes(OpenShift) + Istio推しの記事
Javaのアプリケーションをマイクロサービスにする際に使えるフレームワーク・ソフトウェアの紹介など

## [Migrating Netlify’s Continuous Deployment infra to Kubernetes (and everything we learned along the…](https://medium.com/netlify/migrating-netlifys-continuous-deployment-infra-to-kubernetes-and-everything-we-learned-along-the-1e5989254269)

netlifyがKubernetes導入するに至る道のりの紹介。
4ヶ月かけて移行したとのこと。Kubernetesはマネージドなものを使っている。
もともと独自の方式でコンテナを管理していたが、split brainやオートスケールなどに悩まされていた。
移行はfeature flagを用いて段階的に行うことで無事故で実施できた。
意図した速度でオートスケールするために行なったTipsなども紹介されている。

## [Diversity Scholarship Series: My Experiences at KubeCon EU 2018 - Cloud Native Computing Foundation](https://www.cncf.io/blog/2018/07/17/diversity-scholarship-series-my-experiences-at-kubecon-eu-2018/)


コペンハーゲンで行われた KubeCon + CloudNativeCon Europe 2018にCNCFのDiversity Scholarship制度で参加した人の感想