KubeWeekly #151

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

# The Hedlines

## [Kubernetes 1.12: Kubelet TLS Bootstrap and Azure Virtual Machine Scale Sets (VMSS) Move to General Availability - Kubernetes](https://kubernetes.io/blog/2018/09/27/kubernetes-1.12-kubelet-tls-bootstrap-and-azure-virtual-machine-scale-sets-vmss-move-to-general-availability/)

Kubernetes 1.12の新機能の紹介。Kubelet TLS BootstrapがGAに。
Azure Virtual Machine Scale Setsのサポート。

他にも

- RuntimeClass(alpha)
- CSIにスナップショット・リストアの機能追加(alpha)
- Topology aware dynamic provisioning(beta)
- Configurable pod process namespace shareing(beta)
- Taint node by condition(beta)
- Arbitary / Custom Metrics(second beta)
- Vertical Scaling of Pods(beta)
- Encryption at rest via KMS(beta)

などなど

## [Kubernetes Podcast from Google](https://kubernetespodcast.com/episode/022-sig-node/index.html)

Kubernetes Podcast #22の紹介。
(内容は聞いていないが、)Webページには話した内容のリンク集がある。

Google製コンテナランタイムの紹介 [GitHub - google/lmctfy: lmctfy is the open source version of Google’s container stack, which provides Linux application containers.](https://github.com/google/lmctfy)

## [Unbabel migrated to Kubernetes and you won’t believe what happened next!](https://kubeweekly.us10.list-manage.com/track/click?u=3885586f8f1175194017967d6&id=711fd9d3cc&e=c24d137d74)
1プロジェクトごとにEC2インスタンスを立てるのをやめて、Kubernetesに乗り換えた話。
スケールや、デプロイの簡略化を目的にKuberntesを導入したが、CI/CDや宣言的なデプロイ、より良いセキュリティや、モニタリング、スケーラビリティも得ることができた。とのこと

一緒に紹介されていた [5 – 15s DNS lookups on Kubernetes? – Quentin](https://blog.quentin-machu.fr/2018/06/24/5-15s-dns-lookups-on-kubernetes/) この問題が気になる・・・

# The Technical

## [Health checking gRPC servers on Kubernetes - Kubernetes](https://kubernetes.io/blog/2018/10/01/health-checking-grpc-servers-on-kubernetes/)

gRPCのサーバに対してどのようにヘルスチェックを実施するかという話。
kubernetesのヘルスチェックはgRPCをサポートしていないので、httpGetの口を用意したり、tcpSocketを使って簡易的に調べたり、execしてなんらかのクライアントを呼び出すなどの方法がある。

この記事ではexecする方法をさらに深掘りして [GitHub - grpc-ecosystem/grpc-health-probe: A command-line health check tool for @gRPC applications](https://github.com/grpc-ecosystem/grpc-health-probe/) を紹介している。
このツールはgrpcのヘルスチェックを呼び出すツールで、対象のコンテナに同梱し、ヘルスチェック時に呼び出すことで、gRPCのアプリケーションのヘルスチェックを行うことができます。

## [KubeDirector: The easy way to run complex stateful applications on Kubernetes - Kubernetes](https://kubernetes.io/blog/2018/10/03/kubedirector-the-easy-way-to-run-complex-stateful-applications-on-kubernetes/)

KubeDirectorというツールの紹介。
特別なケアが必要なアプリケーションをうまく扱うための仕組み。アプリケーションに特化したOperatorとは異なり、KubeDirectorはもっと汎用的なものらしい。
アプリケーションの定義（KubeDirectorApp）をCRDで記載し、利用者はその定義を参照するKubeDirectorClusterをつくる。

中身が気になったので少しみてみた。
実際のアプリケーションごとの処理はエントリポイントとなるシェルスクリプトに任せられていて、Kubernetesのリソースの更新があると、違う引数でそのスクリプトが呼ばれるらしい。 [App Definition Authoring for KubeDirector · bluek8s/kubedirector Wiki · GitHub](https://github.com/bluek8s/kubedirector/wiki/App-Definition-Authoring-for-KubeDirector#setup-package)

GoやKubernetesのことに詳しくなくても、オペレーションのロジックを書くことができるのがミソのようだ。

## [Kubernetes: The Surprisingly Affordable Platform for Personal Projects | doxsey.net](http://www.doxsey.net/blog/kubernetes--the-surprisingly-affordable-platform-for-personal-projects)

Kubernetesは個人用途にも適しているよ！という記事。5ドル/monthの予算でも！
GKEで3nodeのKubernetesなら5ドル/monthくらいで運用できるらしい。
LBを使うと高くなるので、NodeのIPを直接Cloudflareに登録するオペレータを動かしているらしい。（ [GitHub - calebdoxsey/kubernetes-cloudflare-sync](https://github.com/calebdoxsey/kubernetes-cloudflare-sync)　）
StackDriverも高くつくのでOFF

GKEのコントロールプレーンは無料なので3台ともworkerとして使える。

- pre-emptive
- always Free
- Kubernetes control plane: free
- total 30GB disk: free
- LBは高いのでDNSを動的に書き換える。これはcloudflareを使うので無料

これらによって$5/monthくらいで運用できるらしい。

アプリケーションのデモはcrystalで書かれている。ナウい

反論記事もありました！ 賛否両論： http://carlosrdrz.es/kubernetes-for-small-projects/

## [Tutorial: Kubernetes for Orchestrating IoT Edge Deployments - The New Stack](https://thenewstack.io/tutorial-kubernetes-for-orchestrating-iot-edge-deployments/)

Kubernetesを汎用スケジューラとして使うという考え方。
[Virtual Kubelet Introduction](https://azure.microsoft.com/en-us/resources/videos/azure-friday-virtual-kubelet-introduction/) をつかって、IoTEdgeの制御を行うことができる。
IoTEdgeだけではできないblue-greenデプロイなどがKubernetesのやり方で実現できる。というデモ。

## [Kubernetes Networking - DZone Cloud](https://dzone.com/articles/kubernetes-networking)

Kubernetesのネットワークの図示。同一Node内のPod間通信、別NodeでのPod間通信。Serviceなどについて書かれている。Serviceの説明はちょっと？

## [Tools for App Development on Kubernetes - Ksync](https://www.weave.works/blog/tools-for-app-development-on-kubernetes-ksync)

Ksyncというツールの紹介。ローカルでファイルの変更をリモートのKubernetes上に同期してくれる。またその逆もしてくれる。
Telepresenceと似た動きのツールだが、Telepresenceはプロセスをローカルで動かすものである。

## [Container Security Part 3 – Kubernetes Cheat Sheet - The Ethical Hacker Network](https://www.ethicalhacker.net/features/root/container-security-part-3-kubernetes-cheat-sheet/)

Kubectlでのよくあるシナリオのチートシート

## [Deploying JHipster Microservices on Azure Kubernetes Service (AKS)](https://medium.com/@deepu105/deploying-jhipster-microservices-on-azure-kubernetes-service-aks-fb46991746ba)

JHipsterというJavaでWebアプリケーションを作るための支援ツールを使ってアプリケーションを作るデモのKubernetes部分。
Kubernetesのmanifestを自動生成する機能がある。
AKSにデプロイしている。

## [Enable Rolling updates in Kubernetes with Zero downtime](https://medium.com/platformer-blog/enable-rolling-updates-in-kubernetes-with-zero-downtime-31d7ec388c81)

readinessProbeをちゃんと設定しないとローリングアップデートした時にダウンタイムが生じるよ という話。

## [Take the Wheel: Driving Kubernetes with Helm – High Alpha – Medium](https://medium.com/high-alpha/take-the-wheel-driving-kubernetes-with-helm-a0aaab4e2f32)

Helmの紹介。

# The Editorial

## [What is Kubernetes? – ITNEXT](https://itnext.io/what-is-kubernetes-c9c5bedb51f0)
Kubernetesとは何か？なぜ必要か？という内容。アニメーション入りの図がわかりやすい

## [The cloud in 2019: Multicloud, serverless computing, and Kubernetes containers | ITworld](https://www.itworld.com/article/3310220/cloud-computing/the-cloud-in-2019-multicloud-serverless-computing-and-kubernetes-containers.html)

- マルチクラウドが流行るよ
- サーバレスが成長するよ
- KubernetesやDockerが流行っているよ

といった話

## [How, and When, to Deploy Serverless - The New Stack](https://thenewstack.io/how-and-when-to-deploy-serverless/)

Serverless周りのあれこれ。いろんな意見があるよ。
（ちょっと会話が多くてよみにくく文脈が掴みきれない）

## [We're open-sourcing etcdadm! Here's what it means for Kubernetes in production - Platform9](https://platform9.com/blog/were-open-sourcing-etcdadm-heres-what-it-means-for-kubernetes-in-production/)

etcdadmの紹介
kubeadmがKubernetesクラスタを構築するかのようにetcdクラスタをさっと構築できるコマンドラインツール
その後の管理もできるらしい。

## [Why You Should Not Neglect Your Developer's Kubernetes Clusters - Giant Swarm](https://blog.giantswarm.io/why-you-should-not-neglect-your-developer-kubernetes-clusters/)

DEVクラスタはPRODクラスタと同じくらい大事。エンジニアが何もできなくなってしまう。
というような話。なぜこんな話に？Twitterで話題になった話なのかな？

## [Digging into Kubernetes 1.12 | Google Cloud Blog](https://cloud.google.com/blog/products/containers-kubernetes/digging-into-kubernetes-1-12)

1.12新機能の紹介。

## [Kubernetes 1.12 Arrives With TLS and Better Cloud Integrations - The New Stack](https://thenewstack.io/kubernetes-1-12-arrives-with-tls-and-better-cloud-integrations/)

1.12の紹介。

## [What’s new in Kubernetes containers | InfoWorld](https://www.infoworld.com/article/3229359/kubernetes/whats-new-in-kubernetes-containers.html)

1.12の紹介。

## [Kubernetes Add-ons for more Efficient Computing](https://akomljen.com/kubernetes-add-ons-for-more-efficient-computing/)

Kubernetesのアドオンの紹介。

- cluster autoscaler
- HPA Operator
  - Deploymentのアノテーションに記載しておくとHPAを自動で作ってくれる。
- Addon resizer
  - Nodeの台数で垂直スケール
- Vertical Pod Autoscaler
  - 垂直スケール
- Descheduler
  - 不均一に偏ったPodを落とす
- k8s Spot Rescheduler
  - オートスケールでスケールアウトさせたNodeをスケールインする際にPodを退避させるもののようです

## [Kubernetes 1.12 Improves Cloud-Native Security](http://www.eweek.com/cloud/kubernetes-1.12-improves-cloud-native-security-with-tls-bootstrap)

1.12の紹介

# バックナンバー

- KubeWeekly #150 https://qiita.com/inajob/items/bebd4fcca440ec695d34
- KubeWeekly #149 https://qiita.com/inajob/items/d007ba0114dfb5eb77e2
- KubeWeekly #148 https://qiita.com/inajob/items/4f153cb214fd622bdb89
- KubeWeekly #147 https://qiita.com/inajob/items/8148914d7e6b8afc186c
- KubeWeekly #143 https://qiita.com/inajob/items/b93257781552c61da173
- KubeWeekly #142 https://qiita.com/inajob/items/6eac1a856e95f18cd2ca
- KubeWeekly #141 https://qiita.com/inajob/items/7771e5a5a4409f433042