zaki work log

作業ログやら生活ログやらなんやら

Kubernetes

k3sのアップグレードでTraefikのHelmChartデプロイが「This version of the Chart only supports Traefik Proxy v3」エラーになったので復旧させた(作業ログ)

教訓として、k3sのHelmChartを使って標準でインストールされるコンポーネントをHelmChartConfigで設定上書きする場合、特段の事情がない限りはイメージバージョンをカスタムしないのが吉。 k3sをv1.30から(1.31, 1.32を経て)1.33までアップグレードしたとこ…

[kubectl] アノテーションの編集はラベルと全く同じ要領でkubectl annotateで更新する

デプロイ済みリソースのアノテーションを編集する必要があって操作方法を調べてみたけど、ラベルの編集と全く同じだった。 ラベルの編集は5年前に一度エントリ作っていたので、アノテーションについてもとりあえずメモ。 before $ kubectl describe -n loggi…

[kubectl] jsonpathでドットをキー名に含むパスにアクセスするには逆スラッシュでエスケープする

知ってれば何てことないんだけどプチはまりで時間をだいぶ溶かしてしまったので備忘録。 というか.dockerconfigjsonであれば以下の通り。 kubectl get secret ecr-credential -o jsonpath='{.data.\.dockerconfigjson}' | base64 -d ドットを含むキー名に含…

[Docker / Kubernetes] コンテナでOpenSSHサーバーを立てる

検証用などでリモートにSSHサーバーが必要な際に、linuxserver/openssh-server のコンテナを使うと簡単に準備できる。 github.com 認証情報やrootへの昇格設定をすべて環境変数でセットできるためアクセス方法の自由度が高いのが特徴。たぶん。 ベースはAlpi…

[AAP/AWX] コンテナーグループを作成するAnsibleプレイブック

以前まとめた以下の「[AWX / AAP] ジョブの実行をリモートのKubernetesクラスタで行う」内容はwebのUIで手動で設定するものだったが、本記事ではこの設定操作をplaybookで自動化する方法についてのメモ。 zaki-hmkc.hatenablog.com 大きな流れとしては以下の…

[K3s] Helmを使ったKubernetesクラスターへのNetBoxデプロイ (helmリポジトリ込み)

zaki-hmkc.hatenablog.com 昨年末にHelm版の存在に気づいて試したときはリポジトリを追加する手順がなくいきなりhelm installを実行する方式だったけど、改めて公式サイトを見てみるとリポジトリのURLなど一般的なHelmチャートインストールと同じ内容になっ…

[K3s / Prometheus] リモートのPrometheusサーバーを使う構成でkubectl topするためのK3sメトリクスサーバー構築

Prometheus Adapterの設定にPrometheusサーバー本体のアドレスを設定する箇所があったのは覚えてたので、ここにリモートで動作するサーバーを指定すれば、クラスター内にPrometheus本体や溜めたデータのストレージを持つ必要がなくなるはずと見込んで、ラズ…

[K3s] K3s構築後のコンポーネントのon/off

結論としては、構築済みK3sの場合でも他の設定変更と同様に起動オプションに設定してサービス再起動すればOK --disableを追加すれば削除され、削除フラグを除外すれば再デプロイされる。 K3sのインストールオプションで以下のコンポーネントは--disableに指…

[K3s] opensslで用意した自前のサーバー証明書でTraefik Ingress Controllerを運用する設定

K3sインストールで標準でついてくるTraefik Ingress Controllerは、デプロイしたPodへ簡単にHTTPSアクセスを実現できるので大変便利です。 デフォルトではダミーの証明書が使われるので、プライベート環境などであれば証明書エラーを無視して運用するという…

[K3s] 手動のクラスターアップグレード備忘録

ドキュメント通りなので特に問題ないけどメモとして残してなかったので一応。 docs.k3s.io 概要 ポイントは「インストールした時と同一のオプションで」再度インストールスクリプトを実行すればOK たとえば使用するIPアドレスなどを指定してインストールした…

[NetBox on arm64 K3s] NetBox公式のHelmチャートを使ったKubernetesへのデプロイ (リポジトリとOperatorメモ追記)

2025.05.05:チャートのリポジトリが追加された件について&K3sのHelmChart使用について追加記事作成 zaki-hmkc.hatenablog.com 2025.02.06追記:チャートのリポジトリ追加について追記 しばらくキャッチアップしてなかったNetBox、職場のチームの周りでNetB…

[K3s] 設定ファイルを使ったインストール時のパラメタ指定

K3sのインストール時にコマンドラインオプションや環境変数でパラメタをいろいろ設定できるが、数が多くなると見通しが悪くなりメンテ性も落ちる。 そんな時は設定ファイルにパラメタを指定すれば管理しやすい。 設定のコメントも書ける docs.k3s.io ファイ…

オフラインK3sクラスタでworkerノード追加

少し前に実施したシングルノード構成の「オフライン環境へのK3sインストール」に、workerノードを追加する。 環境は引き続きインターネット接続のないオフライン環境。 zaki-hmkc.hatenablog.com 手順はAir-Gap Installの通りで大丈夫。 docs.k3s.io 構成 (…

[Kubernetes] DaemonSetで動いてるPodを停止(スケールを0に)したい

業務で元リソースはそのままでPodを一時的に停止していろいろ確認するなんやかやがあり、DeploymentやStatefulSetはkubectl scaleでレプリカ数を0にすれば良かったんだけど、DaemonSetってそういえばレプリカ0にできないというかそもそもレプリカの概念がな…

(4/11追記) arm64版AWXをデプロイするだけなら自前のビルドは全く不要になってる件の補足とまとめ

2024.04.11追記 forum.ansible.com AWX 24.2.0とAWX Operator 2.15.0がリリースされ、GitHub Container Registryにしかなかったarm64版awxイメージがquay.ioからもpullできるようになりました。 image repository tag awx-operator quay.io/ansible/awx-oper…

[追記あり] 2024年3月現在のAWXのarm64ビルドの状況 (AWX 24.0.0 / Operator 2.13.1)

2年前にKubernetesで動くAWXをarmアーキテクチャのホストで動かそうとした際には、armプラットフォーム用のコンテナイメージが何一つ用意されてなく全部自前でビルドしてた。が、2024年現在、状況が結構変わってかなり簡単になってたので、今時点でどうすれ…

オフライン環境へのK3sインストール

いろんなものを業務でオフライン動作させてきた身としては一度はやっておきたかったインターネット接続の無いオフライン環境へのインストールお試し。 K3sは軽量Kubernetesとして様々な環境で動作するのが特徴の一つで、インターネット接続の無い環境でもAir…

[Kubernetes] Helmを使ってインストールすると生成されるシークレットの内容についてのメモ

Helmチャートをインストールすると、sh.helm.release.v1.<リリース名>.v1というシークレットリソースが作成されるけど、これ何だっけ?と思って調べてみた。 結論から言うと、Helmでインストールしたリリース情報がgzip形式で格納されている。これを手動で消…

[K3s / Helm] K3sのHelmChartカスタムリソースを使ったチャートのインストール (Fluent Bit)

K3sにHelmを使って何かをデプロイする場合、K3s自体にHelmChartカスタムリソースを使ったチャートのインストールがサポートされており、helmCLIコマンドを使わずにマニフェストを作成するだけでチャートのインストールが可能なので試してみた。 docs.k3s.io …

Azure Key Vaultを使ったHA構成HashiCorp Vaultの自動unseal / join / remove

ここのブログでHashicorp Vaultを扱うのはそういえば初めてだったけど、Vault使う上で面倒なunsealなどを自動処理する方法を調べる機会があったのでまとめました。 なお、unseal keyやroot tokenを記事用に全部書き出してますが、機密情報なので実際は厳重に…

[Kubernetes] K3sのバージョン指定インストール

K3sをインストールする際は、特に指定がない場合は「最新安定板」がインストールされますが、これはKubernetesの最新版の1個前だったりします。 このエントリ執筆時点(2024.02.08)のKubernetesのバージョンは1.29.1が最も新しいですが、K3sのインストールで…

[Kubernetes] ヘルスチェックAPIを試す (bearer token認証付き)

KubernetesのヘルスチェックのAPIエンドポイントを試す。 といっても提供されているエンドポイントをcurl叩けばよいだけ。 kubernetes.io 現在は3つのエンドポイントが提供されているが、1つは非推奨とのこと。 healthz (非推奨) livez readyz livezとreadyz…

[Kubernetes] K3sにおける証明書の期限の延長や設定(平たく言うと塩漬け運用したい場合のx年設定)について

オンプレKubernetesにおいて選択肢の一つになりうるK3sで内部で使用する証明書の期限についての調査&検証のまとめ的な作業ログ 確認した環境のホストOSはUbuntu 22.04とFedora39でK3sは1.28.5 2025.10.14追記: 期限が近付くと警告が記録される件を追記。 …

[Ansible / AWX / AAP] ログアグリゲーター設定でジョブの実行ログをLogstash経由でsyslogサーバーへ転送する

ロギング設定にログアグリゲーターを指定して、リモートのsyslogへジョブの実行履歴を転送してみます。 通常AWX・AAPではDBに記録されたジョブの実行履歴などはスケジュールのCleanup Job Scheduleで設定された期限が過ぎたら削除されるので、基本的にはUIで…

[Ansible] kubernetesコネクションプラグインとインベントリプラグインを使ってみる

本エントリは、Ansible Advent Calendar 2023の14日目の記事です。煽られて(?)即席で書き上げました。 昨年共著で出版させていただいたAnsibleクックブックでは紙面の都合 * で掲載しなかった、kubernetesコネクションプラグインについて簡単に使い方の例を…

[Ansible / K3s] 2023年版AWXクイックインストールガイド

本エントリは、Ansible Advent Calendar 2023の6日目の記事になります。 AWXのセットアップがDocker ComposeからKubernetes環境になって手を出しづらくなったとか、インストール方法がわかりづらいなどの声を観測範囲で聞くことがあったので、ローカル環境で…

[Kubernetes] Fluent Bitを使ってリモートのSyslogサーバーへPodのログを集約する

Fluent Bitを使ってKubernetesのPodのログをSyslogサーバー(rsyslog)へ転送してみた。 Fluent Bitとは KubernetesへのFluent Bitインストール Syslog転送設定 kubernetesフィルタ使用時のデータ構造 Syslog outputプラグイン設定 ホスト名やアプリ名などを指…

[K3s / Kubernetes] KUBECONFIGを通常ユーザーでも読めるように起動オプションを指定または変更する

TL;DR K3sのKUBECONFIGファイル 起動オプションと環境変数の指定方法 起動オプションと環境変数一覧 インストール済みのK3sの設定を変更したい場合 サービス起動用のsystemdユニットファイルを修正する K3sの設定ファイルを作成・更新する TL;DR 結論を先に…

[Kubernetes] 軽量ディストリビューションk3sのコンテナ版の紹介

本記事は「エーピーコミュニケーションズ Advent Calendar 2022」の21日目のエントリです。 軽量Kubernetesディストリビューションの一つにk3sというものがあります。 以下のコマンドで簡単にクラスタをデプロイでき、少ないリソースで動作し、プラットフォ…

[Kustomize / secretGenerator] 初期パスワードを指定したAWXのインストールとSecret作成基礎

本記事は「Ansible Advent Calendar 2022」の8日目のエントリとなります。 AAP(旧Ansible Tower)のadminの初期パスワードはインストール時に使用するインベントリファイルで指定できるので簡単ですが、AWXのadminの初期パスワードはデフォルトではランダムな…