*ribbit*

@kznrluk のメモ帳です。

  • 普段のプログラミングや技術のことについて書いていきます。

kubeadmで構築したクラスタに後からドメインを割り当てたときの証明書エラーを解決する

kubeadm で構築済みの自宅クラスタ、今までVPN or SSH経由でアクセスをしていましたが利用頻度が増えてきたこともあり、きちんとドメインを割り建ててアクセスをしたくなりました。 ドメインの割り当てはそれほど難しいことではないのですが、 kubectl は独自の証明書を .kube/config に埋め込んでおり、それがアクセス元ドメインを検証しているため(certSANs)、割り当てた後に再生成を行う必要がありました。 Unable to connect to the server: x509: certificate is valid for aki0, kubernetes, kubernetes.default, kubernetes.default.svc, kubernetes.default.svc.cluster.local, not aki0.anyfrog.net その手順が若干ややこしかったのでメモとして残しておきます。 tldr 以下の手順で再生成を行う。 kubeadm は部分的に kubeadm init を行った時の作業をもう一度行うことができる。 # すでにある証明書の退避 証明書があると後述のコマン...

2023-11-29

なぜLinuxデスクトップを使うのか

日常的にサーバーやコンテナでLinuxを利用している人間であっても、デスクトップOSとしてもLinuxを利用している人は少ないのが現状です。“Linuxデスクトップ なぜ” で検索すると、上位に出てくる記事はLinuxデスクトップの普及に対して否定的な意見を述べたものばかりが並びます。 しかし、私は過去数年間、Linuxデスクトップを開発時に利用しており、その魅力やメリットを実感しています。そこで、この記事では、私が感じるLinuxデスクトップの利点を具体的に解説して見ようと思います。 手の内に収まるユーザー体験 私が好んで利用しているディストリビューションはArch Linuxで...

2023-09-24

FluxのHelmReleaseでPostInstallがうまく実行されないのはFluxが--waitフラグを付けてるから

メモです。 マイグレーション付きHelm ChartがFlux v2上でうまく動かない 例えばこれ。 https://github.com/minio/minio/blob/master/helm/minio/templates/post-job.yaml apiVersion: batch/v1 kind: Job metadata: name: {{ template "minio.fullname" . }}-post-job labels: app: {{ template "minio.name" . }}-post-job chart: {{ template "minio.chart" . }} release: {{ .Release.Name }} heritage: {{ .Release.Service }} annotations: "helm.sh/hook": post-install,post-upgrade "helm.sh/hook-delete-policy": hook-succeeded,before-hook-creation {{- with .Values.postJob.annotations }} {{- toYaml . | nindent 4 }} {{- end }} マイグレーションのような、メインのDeploymentから依存されている処理をHelmの post-install で行うのはよく見られます。ただ、これらのChartをFluxのHelmChartで管理しようとするとうまく動作しなくなることがあります。 FluxのHelmChartでは、デプロイに helm install --wait 相当の動作をしています。すると "helm.sh/hook": post-install なJobはすべてのDeploymentがRunningになるまで実行が行われません。しかし、上...

2023-08-31

自宅Kubernetesクラスタ始めました - 構築編

自宅クラスタを動かし始めたので、次回構築時に困りそうなところをメモしておきます。 ラズパイで失敗 元々Raspberry Pi4を3台重ねてクラスタを作ろうと思っていましたが、うまくいかなかったので仮想マシンで試してみることにしました。 kubelet に etcdserver に接続できねーぞ!というエラーが出たり、Raspbianではcontainerdではうまく動作しない、等。 etcdserver: request timed out' (will not retry!) 今考えるとこのエラーはディスクIOが遅すぎて起動に時間がかかっていただけかも。それでも重いものは重いし、ちゃんと運用していきたいのでリソースに余裕のある仮想マシンで動かすことにしました。 ブリッジの設定 仮想マシンで動作させるために、まずブリッジの...

2023-08-24

Arch Linux カーネル更新後のDKMSエラーとダウングレード

雑に pacman -Syu した後に、DKMSのインストールで祈る事は、私みたいな適当Arch Linuxユーザーは一度や二度は経験したことがあると思います。今回は祈りが届かずZFSのインストールに失敗したのでリカバリ方法をメモしておきます。 エラー内容 DKMSは、カーネルのアップグレードに応じてカーネルモジュールを再ビルドするための仕組みです。カーネルのアップグレードに伴ってカーネルモジュールを再ビルドする必要があるソフトウェアは、DKMSを利用することでカーネルのアップグレードを気にせずに使えるようになります。 今回はシステムアップデートのため pacman -Syu を実行した後に、ZFSのインストールに失敗しました。エラーメッセージ...

2023-05-11

Japanese-Alpaca-LoRAをGCPのVMインスタンスで試す

(実際にはちょっと違いますが) 日本語で話せる素晴らしい言語モデルがkun1emon氏によって公開されました!これをGCP上で動かす実験をしたので、そのメモ書きをしておきます。 日本語Alpacaデータを用いてJapanese-Alpaca-LoRAを作ったので公開します【期間限定デモページあり】 - note tl;dr 結論、とりあえず動かすなら alpaca-lora をクローンしてきて動かすのが簡単。 https://github.com/tloen/alpaca-lora をクローンする python generate.py --base_model='decapoda-research/llama-7b-hf' --lora_weights=="kunishou/Japanese-Alpaca-LoRA-7b-v0 :7860 ポートで待ち受けてた。クラウド使うときはファイアウォールが空いてるか確認して自前のPCからアクセスできる。 実験 とりあえず動かすところが目標です。 インスタンス NVIDIA T4 + n1-highmem-16 (16 vCPU, 104GBメモリ) + 256GB SSD Debian 10 based Deep Learning VM with M105 Base CUDA...

2023-04-03

LLM周りで頻出する単語メモ

書きかけ。 https://note.com/kun1emon/n/n1533345d5d26 LLM 大規模言語モデル GPT OPT LLaMA FaceBook製LLM。 Alpaca LLaMAをスタンフォード大学がファインチューニングするプロジェクト。 tatsu-lab/stanford_alpaca: Code and documentation to train Stanford’s Alpaca models, and generate the data. LLaMAの7B程度のモデルでもtext-davinci-003(17.5B)と似た出力をする。 AlpacaはLLaMAをtext-davinci-003が生成したデータでSelf-Instructしたモデルであり、LLaMAのLoRAバージョンがAlpacaというわけではない。LLaMAのLoRAバージョンはAlpaca-LoRA。 Alpaca まとめ|npaka|note Alpaca-LoRA AlpacaをLoRAを用いて再現するプロジェクト。AlpacaがFin...

2023-03-27

Mastodon/Misskeyで話せる大阪の物知りおじさん

インフラの学習のため、GKE上でMastodonを動作させようと数日間ガチャガチャと学習をしていましたが、ついに安定して動作するレベルになったのでドメインを取って公開しました。 Building 7 構築周りについてはまた別で記事にするとして、建てたインスタンスがほとんど無人島の状態で辛かったので、最近話題になっていたChatGPTのAPIを利用してBotを作ってみました。 大阪の物知りおじさん (@chatgpt@building7.social) - Building 7 Systemプロンプトを利用することで、関西弁を話すように指示を出しており、陽気な感じで返信してくれているのがわかると思います。関西出身の人には怒られそうななんちゃって関西弁ですが、大目に見てあげてください。 https://github.com/kznrluk/chatgpt-mastodon 初期の...

2023-03-12

v6プラス固定IPサービスで接続ができない件 (Yamaha RTX1300 & Elecomルーター)

未解決です。状況と思考の整理のためにメモとして残しておきます。 環境 フレッツ光 光クロス かもめインターネット固定IPオプション VNE: 日本ネットワークイネイブラー株式会社 (JPNE) 光クロス + ONU直刺しなのでアドレスの配布はDHCPv6-PD 動的IP(MAP-E)は繋がる 固定IP(IPIP)が繋がらない メインルーター RTX1300 検証用ルーター WRC-X6000XS ヤマハもエレコムも繋がらない 民生用ルーターのWRC-X6000XSが繋がり、業務用ルーターであるRTX1300だけ繋がらない場合は私の設定が悪い可能性が高いのだが、今回はどちらも繋がらない。RTX1300はパケットを通さず、WRC-X6000XSは再接続を繰り返すような状態になる。...

2022-12-12

XG-C100C(AQC113)を対応ディストリビューション外のArch Linuxで利用する

家のインターネット回線の10Gbps化に向け、XG-C100Cを購入しました。Linux対応が謳われていましたが、ドライバのインストールで躓いたので解決策を忘備録として残しておきます。また6Gbpsしか出ない場合の原因もあとがきに記しておきます。 対象 Debian系とRedHat系以外のディストロで下記のようなAquantia(Marvell)なチップが乗ったNICを利用したいユーザー XG-C100C XG-C100C V2 (筆者所有) GC-AQC113C TX401 発生するエラー そもそも、ドライバ付属のシェルスクリプトではDebian系とRedHat系以外のディストロでは動作しないような記述になっています。 if [ "${DISTRO}" = "debian" ] ; then PACKET_MNG="${APT_GET}" LINUX_HEADERS="linux-headers-`uname -r`" TOOLS="build-essential" CMD="dpkg-query -l" elif [ "${DISTRO}" = "redhat" ] ; then PACKET_MNG="${YUM}" LINUX_HEADERS="kernel-devel-`uname...

2022-11-16