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
Kubernetes PodCastの書き起こし。
1.11のリリースマネージャへのインタビュー
Add CI/CD to Your Spring Boot App with Jenkins X and Kubernetes | Okta Developer
JenkinsXの紹介
jxコマンドでGKEクラスタを作るに始まり、Sprint Bootのアプリの雛形を作ることもやってくれる。
oktaという認証認可as a serviceの会社のブログ記事で、Sprint Bootのアプリケーションんいoktaでのログイン機能を導入するチュートリアル
Spawning Kubernetes Clusters in CI for Integration and E2E tests · Marko Mudrinić
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
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
キューを間に持つようなマイクロサービスの作り方。
Spring Bootを使って作る。メッセージングはJMS経由で扱うことができる。
メッセージブローカはActiveMQを使う。
キューの長さをもとにCustumMetricsでスケールするように設定している。
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)
Runtime Container Security。静的なコンテナのスキャンではなく、実際に動作しているコンテナのセキュリティ調査。
SELinuxやSeccompとの比較としてFalcoが紹介されている。
ルールを書くのが大変そうという印象だが、いくつかのプロダクト向けのルールは提供されている。GitHub - draios/falco-extras: Sysdig Falco container runtime security extras (default ruleset and more)
Falcoで検知したアラートに対して何らかの自動対応をすることもでき、その部分はNATSとKubelessで実装されている。
Deploying Rust with Docker and Kubernetes
RustアプリケーションをKubernetesにデプロイするチュートリアル。
といっても他の言語と大きくやり方が変わることはない。FROM scratchにする部分はRust特有のtipsがあるようだ。
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
OpenFaaSがKubernetesのoperatorとなったのでそれをEKSにデプロイしてみる記事。
eksctlというCLIツールがあるらしい。eksctl - a CLI for Amazon EKS | a CLI for Amazon EKS
WeaveCloudへの連携など宣伝的な内容も書かれている。
Managing Memory and CPU Resources for Kubernetes Namespaces
LimitRangeを使ったデフォルトのリソース制限の定義方法紹介。
ResourceQuotaを使ったNamespace全体でのリソースの使用量の制限。
Deploy WSO2 API Microgateway in Kubernetes – Pubudu Gunatilaka – Medium
WSO2というAPIマイクロゲートウェイをKubernetesにデプロイする話。
WSO2がどういうものなのかいまいちわからなかった。
Advanced Networking with Istio on Kubernetes – vamp.io – Medium
込み入ったIstioの設定方法の紹介。Istioの各リソースの操作はvampというGUIサービスを経由して行なっている。 Product | Vamp
Vamp自体はDC/OSやMethos/Marathon Docker, ACSなど様々な環境で動くように作られているようで、Kubernets向けにはIstioが設定できるようです。Vamp
The Editorial
Resizing Persistent Volumes using Kubernetes - Kubernetes
同じ記事だった
When Does Kubernetes Become Invisible And Ubiquitous?
Supporting Fast Decisioning Applications with Kubernetes - Cloud Native Computing Foundation
KubeCon/CloudNativeCon NorthAmerica2017の発表紹介
(動画はじっくり見ていない)
Kubernetes Without Servers | CloudBees
Kubernetes自体もServerless的に扱えないかという記事。
Fargate、VirtualKubeletを組み合わせるという考え。
Fargateは同性能のEC2と比べると2倍ほど高いが、秒単位の課金なのでスパイクするような負荷に対するオートスケールの場合はむしろやすくなることがあるかも。などと書かれている。
Operation: Stateful. Introducing BlueK8s and Kubernetes Director
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
Stepping up your continuous delivery with Kubernetes and Spinnaker
Kubernetsに向けたデプロイツールとしてSpinnakerを勧める記事
他のツールとの比較などはされていないので、物足りなく感じた。
Getting Started with Cloud Native Infrastructure | The Open Source Show | Channel 9
Microsoftの動画サイトChannel9での動画紹介
(見ていない)
Why Kubernetes Is the New Application Server - DZone Microservices
Kubernetes(OpenShift) + Istio推しの記事
Javaのアプリケーションをマイクロサービスにする際に使えるフレームワーク・ソフトウェアの紹介など
Migrating Netlify’s Continuous Deployment infra to Kubernetes (and everything we learned along the…
netlifyがKubernetes導入するに至る道のりの紹介。
4ヶ月かけて移行したとのこと。Kubernetesはマネージドなものを使っている。
もともと独自の方式でコンテナを管理していたが、split brainやオートスケールなどに悩まされていた。
移行はfeature flagを用いて段階的に行うことで無事故で実施できた。
意図した速度でオートスケールするために行なったTipsなども紹介されている。
Diversity Scholarship Series: My Experiences at KubeCon EU 2018 - Cloud Native Computing Foundation
コペンハーゲンで行われた KubeCon + CloudNativeCon Europe 2018にCNCFのDiversity Scholarship制度で参加した人の感想