[2021/06/18] 今週のKubernetes + Cloud Native + その他ニュース
この記事は#kubenewsの2021年6月18日の回で話す、@bells17が今週気になったニュース記事をまとめたものです。
自分が気になった今週のKubernetes + Cloud Native + その他なニュースをまるっとまとめておいて、その中から時間内に話せるものを話そうと思ってます。
あと記事はざっと読んで書いてるものが多いので、詳細はリンクとかで貼ってる記事の中を読んでもらった方が正確です。
配信URL:
告知とか
Kubernetes Internal #9
@go_vargoさんよりMinikubeの実装やコントリビューター活動についてお話してもらいました。
Minikubeの実装のお話もとても良かったのですが、Minikubeの全体的なアーキテクチャのお話やコントリビューター活動のお話をかなり色々伺うことができて、なかなか聞けないお話が聞ける良い会になったと思うのでまだ観ていない方は是非!
a
Kubernetes Novice Tokyo #11
2021/06/22(火) 19:00 〜 20:30から6月のKubernetes Novice Tokyoが開催予定。
今回はLT4つとメインセッション1つの構成のようです。
Kubernetes Meetup Tokyo #42
2021/06/24(木) 19:00 〜 21:30から6月のKubernetes Meetup Tokyoが開催予定。
今回の内容は
- KubeVirtによるIaaS基盤構築
- KubernetesとGatlingを使って、負荷試験に秒間10kユーザーをシミュレーションする方法
- Istioによるサービスメッシュをどのようにプロダクションレディにするか
となっているようで
- 仮想化
- 負荷試験
- サービスメッシュ
と結構深めのテーマのセッションが3つ並んでいるので聴き応えがありそうです。
Fireside Chat with DHH - The Global Dev Study #3
forkwellさん主催のイベントでDHHをゲストに呼んでのイベントとのこと。
DHH直に見たこと無いので楽しみ。
インフラ勉強会
興味深いテーマを扱うようです。
Kubernetes + Cloud Native
Kubernetes v1.23のリリースは今年の12月を予定しているらしい
こんなん出てたよ
Kubernetes PodcastにサイボウズさんのMocoの話が取り上げられたらしい
日本開発のOSSの話が取り上げられてる事例が増えるのは良き。
RedHatさんのvscodeのYAMLプラグインが良さげのよう
ちなみにJetBrainのシンタックスも優秀らしいです。
Kubernetesにコントリビュートする方法
Digital Oceanのエンジニアの方がKubernetesにコントリビュートする方法やメリットなどを書いてくれている記事。
結構詳しく書いてくれているのでためになった。
vargoさんにもコントリビュート話しを色々聞けたタイミングなので良いタイミングだと思った。
Cloud Native Lounge #1「サービスを支えるクラウドネイティブな基盤」
青山さんのKubernetesの説明や最近開発しているOperatorの話しなど聴けてよかった。
あとさり気なく青山さんが僕の質問ツイートに答えてくれてたので嬉しかった。
他にもユーザーベースさんのGKEやECS話しを聴けたのもありがたい。
Cloud Native LoungeではこれからもCloud Nativeに関する事例話しを聴けるとのことなので楽しみ。
ミクシィ みてねのGKE事例
僕が前所属していたミクシィのみてねという家族アルバムサービスでのGKEの事例のお話。
みてねチームのSREとしての諸々の取り組み~Kubernetes導入の話まで全体的に網羅されていてよかった。
HPAのオートスケーリングのメトリクスにKEDAというのを利用してるとのこと。
- SQSのキューの長さ
- Sidekiqワーカー稼働率
- SageMakerインスタンス数
を利用してオートスケーリングをコントロールしてるとのことで興味深かった。
GKE Autopilot に CUD (確定利用割引)が適用可能に
GKE Autopilotをある程度のボリュームで使い続ける予定のあるユーザーは利用するとそれなりの割引額になると思うので是非検討を。
Trivyの@knqyf263さんによるコンテナのlazy pullingについての調査記事
難しいけど雑な理解としては以下のような感じ
- コンテナのlazy pullingを実現する(e)Stargzについて調べられた内容になっている
- コンテナイメージで利用されるデータはコンテナ全体のデータのうちの一部であることが多いから、はじめは必要なファイルだけpullしておいて、readが発生したタイミングでイメージのpullをすればええやん、というのがlazu pullingのよう
- そのためにStargzという https://github.com/google/crfs で提案されたフォーマット?が利用されている
- そしてStargzをベースにしたeStargzではStargzを更に効率化している
- このlazy pullingをcurlでできないかトライされた
- 将来的にはTrivyにもこのlazy pullingの仕組みを入れていくかもしれないとのこと
とりあえず(難しかったので)雑に読んで理解できたのがここまで...
Minikubeメンテナーの方が作られているKubernetes起動までのベンチマークツール
vargoさんのセッションの中で紹介してくれた、Minikubeのパフォーマンスチューニングのためにメンテナーの方が作られたベンチマークとのこと。
Kubernetes起動~リソースのデプロイが成功するまで?のベンチマークを計測してくれるらしい。
Openshiftの簡易版microshift
microshiftというののリポジトリが作られたらしい
あなたの知らないKubernetesのServiceの仕組み
KubernetesのServiceリソースと実際のiptables/ipvsとの関係を説明してくれていて勉強になる。
普段あまり使わないヘッドレスサービスやExternalName Serviceについても解説しているので助かる。
KubernetesのSecretを1Passwordで管理する
タイトルの通り1PasswordからKubernetesのSecretを生成できるOperatorの話。
なんというか1PasswordとKubernetes Secretという組み合わせが考えたことなくて、なるほどーという感じでした。
One year kured - your Kubernetes Reboot Daemon
weaveworksのkuredというKubernetesのノードを自動でいい感じに再起動とかしてくれるツール?
リポジトリはこれ
READMEとかを見てみたんだけどあまりピンと来ていないので、ユースケースとかわかる方いれば教えてほしいな
kubeweekly
まだ出てなかった〜
lwkd
今週結構面白そうなネタが多い
参考(今回のやつ音が入ってない!)
Create example component for integrating with component-base
https://github.com/kubernetes/component-base というKubernetesの共通コンポーネントを扱うリポジトリがあったけど、それを使うための例が作られたようなので、そろそろKubernetesの各実装もcomponent-baseで置き換えた方が良いものは置き換えが始まる感じ?
(このPRで追加されたのはあくまでログのコンポーネントだけみたいだけど)
Update kubeadm control-plane to run as non-root.
kubeadmのstaticpodを使ったcontrol-plane実行をnon-rootで行えるようなアップデートのよう。
RootlessControlPlane
feature gateを有効にしていると実行可能なように見える。
KEPはこれのよう。
導入のきっかけとしてCVE-2019-5736
が挙げられていた。
- kube-controller-manager
- kube-scheduler
- etcd
- kube-apiserver
をnon-rootで実行できるようにするという感じなのか、多分。
それで実行するコンポーネントごとにユーザー/グループを分けてそれぞれに権限を与えてる感じのよう。
を見てるとcontrol planeがアクセスしているファイルの一覧(全部?)が書かれていてへーという感じになる。
Drop viper-config config for tests and get rid of viper dependency
Kubernetesでもこういうのってあるんやな〜と思った。
Graduating SetHostnameAsFQDN feature to GA
タイトルの通りPodにFQDNを設定できるSetHostnameAsFQDN
がGAに昇格とのこと。
KEPはこれ
Automated cherry pick of #101615: fix removing pods from podTopologyHints mapping
元々は
でTopology Aware Hintsに関する修正がおこなれたらしい。
Topology Aware Hintsはこれ
んで、その機能をv1.20にも反映するためにはじめに挙げたPRでelease-1.20ブランチにcherry-pickすることでバックポートしている。
Kuberetesの下位バージョンへの各種変更のバックポートってこんな感じで対応してるんだーという事例を知れたという意味で勉強になった。
その他
エンタープライズの学びが増えました
ここらへんの話です
ツイート開くとリプで色々教えてもらってます
Lyftのジョブ実行基盤?Clutch
特に最近出たツールではないんだろうけど、僕が最近こんなのあるんだって知ったというやつです。
以下のような機能があるらしい。
- 🔌非常に拡張性があります。
- 拡張ポイントはスタック全体に存在し、書き換えなしでカスタム統合を可能にします。
- クラッチは構成主導型であるため、さまざまな環境に合わせて簡単に展開および再構成できます。
- プライベート拡張機能は、フォークを維持せずにプラグインできます。
- 🔍発見のために建てられました。
- リソースには多くの一般的な名前があります。ClutchのResolverパターンにより、リソースの検索がこれまでになく簡単になります。
- Resolverは、サーバーで生成されたフォームに1行のフロントエンドコードを提供し、APIとフロントエンドが常に同期していることを保証します。
- ⚛️開発、実行、保守が簡単です。
- GoとTypescriptに加えて、生成されたインターフェイス全体のProtobufを使用して開発されました。
- バックエンドの抽象化により、緩い結合が保証され、機能開発がレールに組み込まれます。
- フロントエンドコンポーネントを使用すると、フロントエンドの経験が限られている開発者が機能を簡単に出荷できます。
- バックエンドとフロントエンドの両方のリソースを含む単一のバイナリとしてデプロイ可能。
- 基本的な監査、承認、統計、およびロギングは、すべてのエンドポイントで無料で提供されます。
- 🔒安全で観察可能。
- シングルサインオンのサポート。
- ベンダーのIAMポリシーがサポートする範囲を超えて、きめ細かいアクセス制御を行うための役割ベースのアクセス制御(RBAC)エンジン。
- Slackなどのシンクを備えた組み込みの監査。
- 広範なロギングおよび統計機能。
正直あまり調べられてるわけではないんだけど、今度調べてみたいなという感じがしてます。
JSON Web Message(JWM)なるものがあるらしいですよ
軽く読んだ感じJSON Web Token(JWT)的な立ち位置のやつなんだろうなーとは思ったけど、具体的に何がどう良くなってるとかわかってない。
詳しい人教えて〜
git-tips
いろんなgitのコマンドのtipsをまとめているリポジトリを日本語を含めた多言語に翻訳してくれているリポジトリ。
思ってた以上にめっちゃコマンドの数があるので、今度ちゃんと眺めてみたい。
基礎線形代数講座
セガの数学の研修資料が公開されたらしい。
ちなみに僕には難しくてなんもわからんかった。
Utopia
GUIからビューをいじることでHTML/CSSを生成してくれるツール(のように見える)。
HTML/CSSを生成するのが目的っぽい雰囲気なのでWYSIWYGエディタとかとはまた別の方向性なのかな?
はじめてゲームプログラミング
にじさんじの社さんもやってた。
Unityとかのゲームプログラミングやったことないけど面白そう。
みずほの障害報告
なんていうか、大変そうだなぁという...
printデバッグとかを駆使してGoの難解?なバグを発見した話し
ぶっちゃけ全然理解できてないけどすごい。
この話がきっかけでタイムラインが一時printデバッグの話で埋まってた印象。
Webassemblyコンパイラを自作しよう
タイトルの通りWebassemblyコンパイラを自作していく記事の翻訳記事のようでした。
ちなみに僕には難しくてよくわからなかったです。
RustでLinuxカーネルの機能を拡張しよう!
RustでeBPFコード実装をしていく話しでした。
ただ結論としてはRustで実装するよりC言語で実装したほうが簡単とのことです。
ここらへんの考え方はもちろん人によっても異なるよう。
例えばこんな感じのお話をうづらさんから頂いた。
呪い: 見積もりの3倍だけ常にかかってしまう
結構わかるなーという内容。
僕も不慣れな領域はだいたい1.5-2倍くらいにして見積もるようにしてるけど、だいたい実際にそこらへんで実際の工数が落ち着く感じなので。
Discussion