お前はもうプロキシを突破している〜CI向きなK3dとK3sで始めるクラスタ構築〜

https://k3d.io/v5.7.5

この記事は MicroAd Advent Calendar 2024Kubernetes Advent Calendar 2024 の4日目の記事です。

qiita.com

qiita.com

今回は、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自体のインストールも簡単で、ローカル端末なら HomebrewChocolateyScoop に対応しています。またサーバ用途ならインストールスクリプトも用意しているので以下で一発です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クラスタノードにどうやってはいったらよいの?
  • 最後に
  • 補足

  1. K3dというよりはK3sの機能ですいが詳細はこちらを参照ください
    docs.k3s.io
  2. 詳細は以下を参照ください
    docs.k3s.io
  3. 詳細なインストール方法については、以下を参照ください
    https://k3d.io/v5.7.5/#releases
続きを読む

🤔 DuckDB × PyIceberg の使いみちについて考えてみる

2日遅れになってしまいましたが、、、
この記事は MicroAd Advent Calendar 2024Distributed computing (Apache Spark, Hadoop, Kafka, ...) Advent Calendar 2023 の1日目の記事です。
注: 執筆現在 2024/12/03 1:14

qiita.com

qiita.com

今年もアドカレの季節がやってきました🎄

今回は、DuckDBがIcebergに対応してたり、PyIcebergにDuckDBを見つけたので、どんなもんか試してみた。

  • はじめに
    • DuckDBについて
    • PyIcebergについて
  • DuckDBのIcebergサポートについて
    • 概要説明
    • 試す際のハマりポイント
      • HTTP PROXY対策
      • S3互換ストレージ向けの接続設定
  • PyIcebergのDuckDBサポートについて
    • 概要説明
    • PyIcebergのハマりポイント
      • .pyiceberg.yaml の置き場所に注意
      • S3互換ストレージ向けの .pyiceberg.yaml の設定
  • 使いどころを考える🤔
  • 最後に
  • 補足
続きを読む

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 2023Distributed computing (Apache Spark, Hadoop, Kafka, ...) Advent Calendar 2023 の25日目の記事です。

アドカレも今日で最後になりました。会社の方は全部埋まって記事も投稿出来てるので一安心ですが、Distributed computing アドカレの方は寂しい状態です。とは言え、参加してくれた皆さんには感謝しかないし、どの記事も良かった!
ただ、せっかくなので、出来るだけ空いてるところを埋めていきたいところ。

では、今日のお題に入っていきます。

前提

続きを読む

RKE2ノードのCiliumを使ったeBPFな帯域制限をする話

この記事は MicroAd Advent Calendar 2023Kubernetes Advent Calendar 2023 の5日目の記事です。

オンプレあるあるな悩みとして、データセンターと外の通信にはインターネットを経由する都合、1つのアプリで契約している帯域を専有してしまいインターネット通信が輻輳1 (ふくそう)し、他のシステムの本番環境に影響させてしまう事があったりします。

今回は、RKE22 で構築したKubernetesノードにて、Pod発の通信に対して帯域制限をかける方法について紹介します。

  • 環境
  • 種明かし
  • 利用できるか確認する
  • Nodeのセットアップ
    • RKE2のみの場合
    • Rancherを使ってクラスターをCreateする場合
  • CiliumのBandwidth Managerが有効になっているか確認
  • Podに帯域制限をかけるには?
  • 実際に試してみてる
  • 最後に
  • おまけ

  1. 輻輳」とは、ネットワークトラフィックが集中して、通信速度が低下すること
  2. docs.rke2.io
続きを読む

Icebergテーブルの内部構造について

この記事は MicroAd Advent Calendar 2023Distributed computing (Apache Spark, Hadoop, Kafka, ...) Advent Calendar 2023 の1日目の記事です。

qiita.com

qiita.com

今年もアドカレの季節がやってきました🎄

今回は、ここ数年でデータ界隈で盛り上がっているOpen Table FormatのIcebergテーブルについて書いていきます。 Hiveテーブルとの比較とか、Icebergテーブルの特徴(Time Travel や Rollback、Hidden Partitioning、Full Schema Evolution等)については、あっちこっちで大分こすられてます。

そこで、Icebergテーブルの特徴がなぜ実現できているのかについて知るために、内部構造がどうなっているかを掘り下げていきます。 また、内部構造を知ることでIcebergテーブルを利用する際の運用面についてもイメージしやすくなってくると思います。

では、始めていきます。

(´-`).。oO(ソースコードまでは掘り下げできなかったので、ソースコードコードリーディングとかしたいですね。私はほぼ読めませんけど。)

続きを読む