シンプルってどっちの話してますか?
一言に「シンプル」と言った場合、どっちの話をしているのかを共有出来てないと、あさっての議論になるので、認識合わせが非常に需要。
自分でも見失っていたり、議論する際に認識合わせが出来てなくいて困ることがあるのでメモっておく。
ちょいちょい誰かがまとめてたりするけど、自分用のメモです。
TL;DR
単純化としてのシンプルさ
- 余分な情報を削ぎ落とし、“分かりやすさ”や“使いやすさ”を重視する
- マニュアル、UI、料理などで「簡素化」や「わかりやすさ」を追求する際に使われる
抽象化としてのシンプルさ
- 形や要素を削ぎ落として“本質を浮き彫りにする”
- ロゴデザイン、抽象画、ミニマル建築などで“洗練”や“エッセンスの強調”を目的に使われる
🐿️ Apache Flinkの最新事情とv2.0の話:RKE2で始めるFlink on K8s
この記事は MicroAd Advent Calendar 2024 と Distributed computing (Apache Spark, Hadoop, Kafka, ...) Advent Calendar 2023 の25日目の記事です。
12/25は終わってしまっていますが、、25日目の記事です。25日目といったら25日目なんです。
遅れた理由は色々とあるのですが、本題いきましょう1。
今回は、ずっとSpark Structure Streamingで良いんちゃう?って事で横目で見続けてきた、この子。
Flinkについてやっていきます。
Sparkは処理するデータの範囲が決まっているバッチ領域から発展して、常にデータが流れ込んでくるストリーム領域をマイクロバッチって観点で広げていった経緯があります。一方、Flinkはその逆で、ストリームからバッチへ対応領域を広げていった経緯があります。どこの世界もバッチもストリームもすべて対応する明るい未来(?)に向けて切磋琢磨しています。
今回はFlinkの話に触れてから、実際にKubernetesにはRKE2 2 を使ってクラスタをササッと用意してそこにFlinkの環境をいれてサンプル起動してみる流れでハマりどころを補足しながら紹介していきます。 うちはProxyがあってね、、、って方も大丈夫です。
前提(というか今回の環境)
- Ubuntu v22以降
- RKE2 (Kubernetes v1.31)
- Apache Flink v1.20
- Apache Flink Kubernetes Operator v1.10
- 前提(というか今回の環境)
- Flinkの最新情報とv2.0の話
- 今年のFlinkを振り返り
- Flink v2.0の話
- Breaking Changes
- ストリーミング機能強化:Disaggregated State Management
- Materialized Table
- Adaptive Batch Execution
- Streaming Lakehouse
- RKE2を使ってFlink on Kubernetesを始める
- RKE2でKubernetesクラスタの構築
- Control Plane(RKE2 Server Node)の構築
- Node(RKE2 Agent Node)の構築
- Kuibeconfigの準備
- Flink Kubernetes Operatorのセットアップ
- cert-managerのインストール
- S3に対応するためイメージを変更
- S3クレデンシャルの追加
- Flink Kubernetes Operatorのインストール
- Flinkジョブの実行
- RKE2でKubernetesクラスタの構築
- 最後に
-
言い訳
色々調べていくうちに面白くなって調べすぎて時間を結構そこに取られたのと、当初はZooKage使ってRancher Desktop環境にOzoneやHDFS立ち上げてS3バケットやHDFS用意して、そこにFlinkの環境を入れて、、とかやる予定だったんですが、、、記事書くためのブラウザ多数とDesktopのKubernetes環境だと、うちのマシンが非力すぎてメモリが足りなくなってしまい、Swap用意して逃したりもしたんですが、やってられんってことでやめました。。
Zookageはほんと簡単に手元で環境を簡単にスピンアップ出来るのでとっても便利なので、みんな使って欲しい。 kustomization.yaml で使わないものをコメントアウトして./bin/up
するだけで立ち上がってきます。
ただし、Desktop環境を前提としてるのでPVCはローカルホストのパスを直接使ったりするのでDocker DesktopやRancher DesktopなどのDesktop環境以外ではそのまま使えないので注意です。
ブラウザ開き過ぎマンなのでメモリは32GBか64GBは欲しいですね。ブラウザでメモリごっそり持っていかれるのが辛い。。 zookage.github.io↩ -
Certified Kubernetes DistributionとしてCNCFに取り上げられている公式のKubernetesディストリビューション。流れさえ分かれば簡単にスピンアップ出来る便利なやつです(K3sも導入はだいぶ似てます)。Rancher必須でもないし、SUSEだからSUSEのOSじゃないとダメってこともないので安心して使って欲しい。
こまかい導入な話は2022のアドカレで記事にしてるのでそちらも是非、、
yassan.hatenablog.jp↩
お前はもうプロキシを突破している〜CI向きなK3dとK3sで始めるクラスタ構築〜
この記事は MicroAd Advent Calendar 2024 と Kubernetes Advent Calendar 2024 の4日目の記事です。
今回は、K3dをProxy環境下で利用する際にハマったのでその解消法について、 CloudNative Days Winter 2024 では、Rancherの中の人と勘違いされてたやっさんから紹介します。
(´-`).。oO( export HTTP_PROXY で終わりでは、、 )
って思うやん?違うんです。。。
では始めていきます。
はじめに
K3dは、Dockerコンテナ内でKubernetesの軽量版のK3sのクラスタをシングルノードまたはマルチノードで動かすためのツールです。K3sでKubernetesクラスタを構成することもあって省スペース&リソースで稼働するので、CIでシングルノードだけでなくマルチノードで構成したい際にオススメです(Helmチャートのテストとか)。
また、K3dで構築されるK3sクラスタにはローカルストレージプロバイダーが付属していてK3dコマンドを実行するノード時のローカルストレージをPVとして払い出してくれるPVCがデフォルトで付属するので非常に便利です1。
ネットワーク周りについては、K3d側にサービス公開用の機能として、traefik(とらふぃっく)を使ったIngressやNodePortが利用できるようになっています2。
K3d自体のインストールも簡単で、ローカル端末なら Homebrew 、Chocolatey、Scoop に対応しています。またサーバ用途ならインストールスクリプトも用意しているので以下で一発です3。
curl -s https://raw.githubusercontent.com/k3d-io/k3d/main/install.sh | bash または curl -s https://raw.githubusercontent.com/k3d-io/k3d/main/install.sh | TAG=v5.7.5 bash
インストールが完了すると、k3dコマンドが利用できるようになります。
❯ k3d --help https://k3d.io/ k3d is a wrapper CLI that helps you to easily create k3s clusters inside docker. Nodes of a k3d cluster are docker containers running a k3s image. All Nodes of a k3d cluster are part of the same docker network. Usage: k3d [flags] k3d [command] Available Commands: cluster Manage cluster(s) completion Generate completion scripts for [bash, zsh, fish, powershell | psh] config Work with config file(s) help Help about any command image Handle container images. kubeconfig Manage kubeconfig(s) node Manage node(s) registry Manage registry/registries version Show k3d and default k3s version Flags: -h, --help help for k3d --timestamps Enable Log timestamps --trace Enable super verbose output (trace logging) --verbose Enable verbose output (debug logging) --version Show k3d and default k3s version Use "k3d [command] --help" for more information about a command.
上記のヘルプにもあるように、completionにも対応してるので補完が効くのでとても便利です。
それでは本題のProxy環境下でのハマりポイントの解決の話の前に、、、、
K3sの紹介を軽く触れるので、「K3sの話はいいよ」って方は目次から飛んでください。
- はじめに
- K3s・K3dとは何か?
- 🙃ハマりポイント:クラスタ構築
- 🙃ハマりポイント:コンテキストが行方不明になる問題
- 🙃ハマりポイント:K3sクラスタノードにどうやってはいったらよいの?
- 最後に
- 補足
-
K3dというよりはK3sの機能ですいが詳細はこちらを参照ください
docs.k3s.io↩ -
詳細は以下を参照ください
docs.k3s.io↩ -
詳細なインストール方法については、以下を参照ください
https://k3d.io/v5.7.5/#releases↩
🤔 DuckDB × PyIceberg の使いみちについて考えてみる
2日遅れになってしまいましたが、、、
この記事は MicroAd Advent Calendar 2024 と Distributed computing (Apache Spark, Hadoop, Kafka, ...) Advent Calendar 2023 の1日目の記事です。
注: 執筆現在 2024/12/03 1:14
今年もアドカレの季節がやってきました🎄
今回は、DuckDBがIcebergに対応してたり、PyIcebergにDuckDBを見つけたので、どんなもんか試してみた。
- はじめに
- DuckDBについて
- PyIcebergについて
- DuckDBのIcebergサポートについて
- 概要説明
- 試す際のハマりポイント
- HTTP PROXY対策
- S3互換ストレージ向けの接続設定
- PyIcebergのDuckDBサポートについて
- 使いどころを考える🤔
- 最後に
- 補足
Ubuntu Bdgieメモ: TweeksでCapsとCtrlのSwap
Ubuntu Bdgieを利用中なので自分用にメモ。
環境
Caps Lockキーを左Ctrlキーとして使いたい(&Caps Lockキーはいらない)
デフォルトでは入っていないGNOME Tweeksをインストール。
sudo apt-get install gnome-tweak-tool -y
その後、Tweeksから数のようにして設定。 ポイントは、「Caps Lockを無効」かつ「Caps LockをCtrlとして使う」。「Caps Lockを無効」がないと機能しなかった。。。
困りごと
US配列キーボードで、半角・全角キーを生やすにはどうしたらいいか問題。。。
現状は入力ソースを「英語(US)」と「日本語(Mozc)」の2つにして、ショートカット(Win+Space)で切り替えてるのだけど、Windows利用する場合とショートカット(Alt+~)が異なるので厄介。長年の悩み。
Icebergのデータ層にs3a使わずにOzoneでデータ分析に最適なofs/FSOを使いたい話
この記事は MicroAd Advent Calendar 2023 と Distributed computing (Apache Spark, Hadoop, Kafka, ...) Advent Calendar 2023 の25日目の記事です。
アドカレも今日で最後になりました。会社の方は全部埋まって記事も投稿出来てるので一安心ですが、Distributed computing アドカレの方は寂しい状態です。とは言え、参加してくれた皆さんには感謝しかないし、どの記事も良かった!
ただ、せっかくなので、出来るだけ空いてるところを埋めていきたいところ。
では、今日のお題に入っていきます。
前提
続きを読むRKE2ノードのCiliumを使ったeBPFな帯域制限をする話
この記事は MicroAd Advent Calendar 2023 と Kubernetes Advent Calendar 2023 の5日目の記事です。
オンプレあるあるな悩みとして、データセンターと外の通信にはインターネットを経由する都合、1つのアプリで契約している帯域を専有してしまいインターネット通信が輻輳1 (ふくそう)し、他のシステムの本番環境に影響させてしまう事があったりします。
今回は、RKE22 で構築したKubernetesノードにて、Pod発の通信に対して帯域制限をかける方法について紹介します。
- 環境
- 種明かし
- 利用できるか確認する
- Nodeのセットアップ
- RKE2のみの場合
- Rancherを使ってクラスターをCreateする場合
- CiliumのBandwidth Managerが有効になっているか確認
- Podに帯域制限をかけるには?
- 実際に試してみてる
- 最後に
- おまけ
- 「輻輳」とは、ネットワークトラフィックが集中して、通信速度が低下すること↩
- docs.rke2.io↩