📰

[2021/07/02] 今週のKubernetes + Cloud Native + その他ニュース

17 min read

この記事は#kubenewsの2021年7月2日の回で話す、@bells17が今週気になったニュース記事をまとめたものです。
自分が気になった今週のKubernetes + Cloud Native + その他なニュースをまるっとまとめておいて、その中から時間内に話せるものを話そうと思ってます。

あと記事はざっと読んで書いてるものが多いので、詳細はリンクとかで貼ってる記事の中を読んでもらった方が正確です。

配信URL:

https://youtu.be/-_5Xlf00h-Q

今週のピックアップ+感想

個人的な今週のピックアップや感想をまとめているので、時間ない人はここに書いた記事を軽く見て頂けると時短になります!

告知とか

Kubernetesのアンケート

https://twitter.com/johnbelamaric/status/1410668609911681024

Kubernetes Slackのいんだくたさん曰く

Kubernetes production readinessに関するアンケートを受け付けているみたいです。
本番で動かしてる皆さんのフィードバックを是非お願いします!

とのことです!

Cloud Native Database Meetupスポンサーセッション決まったらしいですよ

https://twitter.com/tzkb/status/1410926852584054785?s=20

Open Policy Agent Rego Knowledge Sharing Meetup

https://mercari.connpass.com/event/211073/

OPAに関する勉強会が、来週の2021/07/07(水)19:00 〜 20:10に開催予定とのことです。
OPAなどの(セキュリティを含む)ポリシーをどうしているのか?といった内容は今まであまりなかったので気になります。

Cloud Native Lounge #2「クラウドネイティブなシステムの継続的改善と企業文化」

https://forkwell.connpass.com/event/215798/

今週水曜日にCloud Native Lounge #2が行われました。
スポンサーのNewsPick社の事例話に加えて、Tori Haraさんが基調講演をしていて、相変わらず勉強になるなと思いました。

https://youtu.be/edWYe9q5aCg?t=1024

今のところスライドなどは公開されていないようなので、動画の方から見るしかなさそうでした。
Toriさんのお話しとしては個人的には継続的開発が必要な理由の言語化をすごいうまくされてるところが良いなと思ったのですが、ちゃんと消化できてない気がしてるのであと何度か見返したいなという感じです。

ちなみにToriさんがセッション中で言及されていた記事が以下とのことです。

https://deloitte.wsj.com/cio/2020/09/16/at-aws-engineers-drive-architecture-shape-products/

https://twitter.com/toricls/status/1410223271560110083?s=20

3-shake SRE Tech Talk #2

https://3-shake.connpass.com/event/214041/

3-shake SRE Tech Talk #2が開催されたようです。
先程動画も公開されたようなので、僕も後で見たいと思います。

https://youtu.be/g-WMeetjoRM

ただスライドは全部アップロードされているようなので貼っておきます。

メインセッション

Docker と containerd の違い - コンテナログ編

https://speakerdeck.com/yteraoka/what-is-the-difference-between-docker-and-containerd-about-logging

Google Cloud で実践する SRE

https://www.slideshare.net/GoogleCloudPlatformJP/google-cloud-sre-249557085

LT

再送処理再入門

https://speakerdeck.com/nwiizo/zai-song-chu-li-zai-ru-men

SRE本第三弾の(簡単な)ご紹介

https://speakerdeck.com/a2ito/sreben-di-san-dan-false-jian-dan-na-goshao-jie

READYFOR:SREの取り組み事例のご紹介

https://speakerdeck.com/kuman/readyfor-srefalsequ-rizu-mishi-li-falsegoshao-jie

Kubernetes + Cloud Native

VPA Recommenderコードリーディングメモ

https://qiita.com/Ladicle/items/62638ed7aba544be2462

@Ladicle さんによるKubernetesのVPA Recommender機能を個人的にコードリーディングされた際のメモとのこと。
その機能をコードリーディングするモチベーションといった情報を構造化しメモするの良さそうだな。

ちなみにコードリーディング方法について紹介した記事

https://ladicle.com/post/20200625_123915/

も紹介されているが、org-capture楽そうなのでvscodeでも似たようなプラグインが欲しい
(こうgitのリモートリポジトリがGithubだったらGithubのURLに変換してその行のリンクを取得できる的なやつ)
もし知ってる人いたら教えて下さい。

ちなみに僕が今技術書典向けに調べてるAPI Serverのメモは以下のような感じで、特にKEPベースで調べてるわけでも無いのでほんとスクラップという感じになってる。

https://zenn.dev/bells17/scraps/81b6ade4cbd40d

@TenForwardさんによるInfra Study 2ndの解説記事

https://blog.idcf.jp/entry/InfraStudy2nd

Infra Study 2ndで登壇された@TenForwardさんによるイベントの解説記事。
登壇者によるセッションまとめはありがたいですね。

kubectlの補完が爆速になるらしいです

https://twitter.com/superbrothers/status/1410368655502708738?s=21

個人的にcompletionsをコードで実装してる例を知らないので、こんな感じでやってるんだーというのが気になりました。

Kubernetes Namespaces vs. Virtual Clusters

https://loft-sh.medium.com/kubernetes-namespaces-vs-virtual-clusters-cc8731752972

これまでに何度か kubenews でも紹介してきた Virtual Cluster について記事。
(確か記事の執筆が開発元だった気がします)

Namespace と比べたときの Virtual Cluster メリット/デメリットについて書いてあります。
雑に紹介してしまうと Namespace よりも色んなレベルの分離が可能で、別のKubernetesクラスターを構築するより簡単という感じです。

また、Virtual Clusterの制限として

現時点では、仮想クラスターはすべてのKubernetes機能をサポートしているわけではありません。たとえば、仮想ストレージクラス、コンテナランタイム、ネットワークプラグインはvclusterで使用できないため、アプリケーション内でこれらの機能へのアクセスを制限するか、ホストクラスターにフォールバックする必要があります。

という感じで書かれてたので、機能制限がどうなってるのかを知れたのが良かったかなと。

WebLogic Kubernetes Operator

https://twitter.com/itakash/status/1409416057832361985

このツイートでWebLogic Kubernetes Operatorというのがあることを知りました。

https://www.oracle.com/jp/java/weblogic/

WebLogicというのはJavaの実行環境的なものなんですかね..?

Google製のOracle Database Operator

https://twitter.com/omichiki1/status/1409316936278630403?s=21

似たような感じですが、GoogleがOracle Database Operatorをリリースしたそうです
まさかのOracle製じゃなくてGoogle製だそうです

https://github.com/googlecloudplatform/elcarro-oracle-operator

Dockerfile内でapt-get upgradeしないというのがDocker Best Practiceなどから削除

https://twitter.com/knqyf263/status/1409066382193528834

Dockerfile内でapt-get upgradeしないというのがDocker Best Practiceなどから削除されたそうです

これに対して僕の方で「apt-get upgradeが必要なイメージを使ってた場合、開発で使う各イメージ全部でapt-get upgradeを毎回するの辛くない?」と思い、共通のベースイメージを作るのはありかなと伺ったのですが、それもありとのことでした。

https://twitter.com/bells17_/status/1409072453997924353?s=20

Controller RuntimeのWebhookがmanager無しで利用可能に

https://twitter.com/hhiroshell/status/1408580992571351041?s=21

前回の kubenews でアルパカさんが話してくれていたController RuntimeのWebhookがmanager無しで利用可能になったPRがこちらとのこと。

NGINX Ingress ControllerのサポートはKubernetes 1.18まで

https://twitter.com/toricls/status/1408375474590416907?s=21

networking.k8s.io/v1beta1 Ingress オブジェクトのサポートを切るためでサポートが制限されるとのこと。
別のところでもToriさんツイートされてたと思うけど、特にマネージドサービスなKubernetesとかKubernetesのバージョンアップが順調でないケースは影響を受けることがありそう。
似たような話はこれからも定期的に出てきそうな気はしてるので、Kubernetesのサポートバージョンへの追随は大事なんだろうなと思いました。

ECS Firelensの解説記事

https://aws.amazon.com/jp/blogs/news/under-the-hood-firelens-for-amazon-ecs-tasks/

https://twitter.com/toricls/status/1409315547221618688?s=21

ECS Firelensについての解説記事。
Firelensが

  • Fluentd Docker ログドライバー
  • TCPソケット経由のFluentd Forward Protocol メッセージ
    を介してFirelensのコンテナに送られていて、FireLensはFluentd または FluentBitのシンタックスシュガーになってるらしいことがなんとなくわかった。

kubeweekly

https://email.linuxfoundation.org/kubeweekly-266

CNCF End User Community Provides Insights into Kubernetes Cluster Management with Technology Radar

Kubernetesクラスター管理にどんなものを利用しているのかのアンケートを取ったという話し

https://www.cncf.io/announcements/2021/06/23/cncf-end-user-community-provides-insights-into-kubernetes-cluster-management-with-technology-radar/

以下にアンケート結果のページがある

https://radar.cncf.io/

CNCFエンドユーザーコミュニティの140以上の企業のうち24社から得られた解答を元にしたアンケートっぽい

  • Operator
  • Helm

などのツールが人気があるようだった

Monitoring Kyverno with Prometheus

https://nirmata.com/2021/06/18/monitoring-kyverno-with-prometheus/

Prometheusを使ってKyvernoのモニタリングする記事。

Go言語のeBook

https://blog.alexellis.io/i-wrote-a-book-about-golang/

$35から買えるGo言語のeBook

What is eBPF and why does it matter for observability?

https://www.cncf.io/blog/2021/06/07/what-is-ebpf-and-why-does-it-matter-for-observability

NewRelicによるeBPFの記事

数分で作るhelmプラグイン

https://dev.to/datreeio/how-to-build-a-helm-plugin-in-minutes-47i0

まずhelmのプラグインという存在を初めて知った

cAdvisorによるKubernetesモニタリングガイド

https://www.cloudforecast.io/blog/cadvisor-and-kubernetes-monitoring-guide

cAdvisor自体の知識が乏しいので参考にしたい

Ingress ControllerとかをKubernetesの外部で実行する方法

https://www.haproxy.com/blog/run-the-haproxy-kubernetes-ingress-controller-outside-of-your-kubernetes-cluster

できることは知ってるけどやったことないやつなので興味ある

kuberhealthy/kuberhealthy

https://github.com/kuberhealthy/kuberhealthy

特に真新しいツールでは無いけど初めて知った。
Kubernetesで合成モニタリングができるツールとのこと。

合成モニタリングは以下のような記事があった

https://developer.mozilla.org/ja/docs/Glossary/Synthetic_monitoring

エンドユーザがウェブアプリケーションを介して進む経路をシミュレートするためのスクリプトを展開し、シミュレーターが体験した性能をレポートします。

ということで単体の情報ではわからないものをスクリプトなどを用いて生成して、その結果をモニタリングする、的なものかな?

んでkuberhealthyはどのように合成モニタリングを実現してるかというとkhcheckといったCRDを利用することで定義済の合成モニタリングを実行可能にする仕組みのよう。

https://github.com/kuberhealthy/kuberhealthy/blob/master/docs/EXTERNAL_CHECKS.md

更に以下のドキュメントを参考に独自の合成モニタリングを作り、それをCRDから利用することも可能らしい。

https://github.com/kuberhealthy/kuberhealthy/blob/master/docs/EXTERNAL_CHECK_CREATION.md

例えばPodのステータス以上をチェックする組み込みのスクリプトは以下のような感じで結構シンプルな感じ。

https://github.com/kuberhealthy/kuberhealthy/blob/master/cmd/pod-status-check/main.go#L36-L71

lwkd

https://lwkd.info/2021/20210630

PodSecurity admission

https://github.com/kubernetes/kubernetes/pull/103099

もうマージされてる

KEPはこれ

https://github.com/kubernetes/enhancements/tree/master/keps/sig-auth/2579-psp-replacement

KEPの中にもあるように以下のような設定を書くことでPodSecurity admissionの設定を設定することができるっぽい

apiVersion: apiserver.config.k8s.io/v1
kind: AdmissionConfiguration
plugins:
- name: PodSecurity
  configuration:
    defaults:  # Defaults applied when a mode label is not set.
      enforce:         <default enforce policy level>
      enforce-version: <default enforce policy version>
      audit:         <default audit policy level>
      audit-version: <default audit policy version>
      warn:          <default warn policy level>
      warn-version:  <default warn policy version>
    exemptions:
      usernames:         [ <array of authenticated usernames to exempt> ]
      runtimeClassNames: [ <array of runtime class names to exempt> ]
      namespaces:        [ <array of namespaces to exempt> ]
...

kubectl command completion is now fully migrated from Bash to Go

https://github.com/kubernetes/kubernetes/pull/96087

これはすぱぶらさんのツイートで紹介済

API ServerがOpenTelemetry形式でのトレーシングをサポート

https://github.com/kubernetes/kubernetes/pull/94942

KEPはこれ

https://github.com/kubernetes/enhancements/blob/master/keps/sig-instrumentation/647-apiserver-tracing/README.md

Add kubelet SeccompDefault alpha feature

https://github.com/kubernetes/kubernetes/pull/101943

KubeletでSeccompDefaultというfeature gateが追加され、有効にするとRuntimeDefaultというSeccompがデフォルトで利用されるようになるらしい

KEPはこれ

https://github.com/saschagrunert/kubernetes-enhancements/blob/master/keps/sig-node/2413-seccomp-by-default/README.md

Feature: add unified on CRI to support cgroup v2

https://github.com/kubernetes/kubernetes/pull/102578

cgroup v2のメモリコントローラーを使ったメモリ分離を行うメモリQOSがCRIでサポートされたとのこと

KEP

https://github.com/kubernetes/enhancements/pull/2571

Relax csiNodeIDMaxLength length limit to 256

https://github.com/kubernetes/kubernetes/pull/101256

CSIの仕様変更に伴い、CSI NodeリソースのIDが256まで延びたとのこと

Add doc.go explaining client-go apply support

https://github.com/kubernetes/kubernetes/pull/102540

client-goパッケージのapplyのドキュメントがdoc.goに追加されたとのこと

CSIServiceAccountToken ga

https://github.com/kubernetes/kubernetes/pull/103001

CSIドライバーのボリュームをマウントしてるPodのサービスアカウントトークンをマウントする機能がGAになったとのこと

以下のKEPのユーザーストーリーにあるような

といった際に利用されるらしい

KEP

https://github.com/kubernetes/enhancements/blob/master/keps/sig-storage/1855-csi-driver-service-account-token/README.md

kubectl command headers as default in beta

https://github.com/kubernetes/kubernetes/pull/103238

kubectlコマンドの実行情報(kubectl applyなど)をAPI Serverへのリクエストヘッダーに追加することで問題があったときの解析やモニタリングに役立てる機能のようだが、それがbetaになったとのこと

KEP

https://github.com/kubernetes/enhancements/tree/master/keps/sig-cli/859-kubectl-headers

Promote loadbalancerclass feature to beta

https://github.com/kubernetes/kubernetes/pull/103129

Ingress classのtype: LoadBalancer版がbetaに

KEP

https://github.com/kubernetes/enhancements/tree/master/keps/sig-cloud-provider/1959-service-lb-class-field

graduate SuspendJob to beta

https://github.com/kubernetes/kubernetes/pull/102022

SuspendJobというJobリソースでJobを一時的にPodを殺して一時停止する機能がbetaに

KEP

https://github.com/kubernetes/enhancements/blob/master/keps/sig-apps/2232-suspend-jobs/README.md

その他

日本人の開発者の方がMariaDB Server および storage engine の開発に関わられるらしいです

https://twitter.com/nayutayanagisaw/status/1410131184583995405?s=21

あたり前といえばあたり前ですが、MariaDBも独自に開発してるんだなというのをこのツイートを見て初めて認識しました。
そして日本人でも開発者の方いるんだなーと思い「おーすげぇ」と思いました(感想雑ですみません)。

Github Copilotと著作権のお話し

https://blog.tomoya.dev/posts/ai-code-generation-and-copyright/

GitHub Copilotという関数名やコメントからコードをサジェストしてくれる機能?がテクニカルプレビューでリリースされたましたが、そのサジェストされたコードの著作権とかどうなってるん?というお話しです。

https://twitter.com/yukimihashi/status/1410434245084942342?s=21

今年からKyashのCTOになられた @ymzkmct さんの記事

https://ymzkmct.hatenablog.com/entry/2021/06/30/125258

CTOになってどんなことやってる話しは、例えば今LayerXにいる松本さんとかは結構発信してるイメージだけど、全体としては情報が少なかったりまとまっていない気がしているので、CTO活動の一連として参考になりました。

ちなみにTwitterはこちらのようでした。

https://twitter.com/ymzkmct

登 大遊さんのインタビュー記事

https://www.sbbit.jp/article/bitsp/62690

「問題に直面して、複雑な新しいやり方を発案する、すごく苦痛を伴う“頭脳を使うという方法”があります。これが先ほど説明した頭脳の強化によって、できるようになるのです。アヘンに対応する言葉で、私は“かぶれ”と呼んでいます。日本のICTは結局、本質的につらいことをやっていないのです。OS、ネットワーク、セキュリティ、クラウド技術といった現代社会の基礎を作ってこられた世界中の方々は、みんなつらいことをやっているのです。問題に直面して頭脳を使って自分たちで考え、解決してきたのです」

を見て結局は実際に色々やってくと大変なことが多いけど、1つ1つやっていくしかないよねという認識を改めてしました。

git undoコマンド

https://blog.waleedkhan.name/git-undo/

マージやリベースを戻すことができるgit undoコマンドの紹介。

https://github.com/arxanas/git-branchless

このgit-branchlessというツールの1つらしいです。

gitの操作で元に戻したいときとか毎回調べてgit reset --hardしたりとかしてるけど、このプラグインでいい感じにできると良いなというのと、git周りの深い仕組みをあまり理解できてないので、こういうツールきっかけで理解深めたいなと。

IIJエンジニアの方によるQUICプロトコル解説

https://eng-blog.iij.ad.jp/archives/10039

QUICプロトコルについての解説記事第一弾とのことだったので、続きを読んできたい。
記事で紹介されているQUIC Indicator入れてみたらたしかにhttps://www.google.comでQUICが利用されてるらしいことが確認できました。

DMMブックスのキャンペーン、60億円の損害出てたんですね

https://inside.dmm.com/entry/2021/07/01/dmm-books

キャンペーン施策とか考えるのも大変だなと思いました。

Slackにdiscordみたいなボイス/ビデオミーティング機能が追加されるとのこと

https://internet.watch.impress.co.jp/docs/news/1335210.html

追加されるそうです。
オンラインでちょっと相談とかがやりやすくなると良いですね。

LinkedInで92%ほどのユーザーデータが流出とのこと

https://twitter.com/cyberflamingo/status/1410024758981259270?s=21

とのことなので、LinkedInに色んな情報入れてた人は気をつけたほうが良いかも
(何をどう気をつければええんや..)

Goへのコントリビュートネタの紹介

https://twitter.com/tenntenn/status/1409846936568426498?s=20

今忙しいけど興味ある

サイボウズsatさんによるソフトウェアのサポート業務について

https://zenn.dev/satoru_takeuchi/articles/78a3e1d067706d986c6b

サイボウズsatさんによるソフトウェアのサポート業務についての記事です。
サポートエンジニアが実際にどんなふうに仕事をしているのかがイメージしやすかったので良かったです。

IPAによるゼロトラストについての資料

https://www.ipa.go.jp/icscoe/program/core_human_resource/final_project/zero-trust.html

別にゼロトラスト詳しくないけど(どっちかというとService Meshとかの文脈のほうが馴染み深い)IPAがゼロトラストの記事を出すのってなんか浸透してきたな〜という印象です。

SRE と Developer のコラボレーションを支える仕組み

https://quipper.hatenablog.com/entry/2021/06/28/080000

Quipper社のSRE と Developer のコラボレーションを支える仕組みについての記事。
今の僕の所属組織だとまたチーム構造が異なっているので、直接利用できる仕組みではないんだけど、エンジニアがコラボレーションできるコミュニケーションなどの仕組みづくりは大事だな〜と思ってるので参考にしたい。

GithubのWebhook Deliveries API機能がリリースされたらしい

https://twitter.com/mumoshu/status/1410776946724671494?s=20

@mumoshu さんのツイート見てると色々便利に使えそう〜