@MayoToya こちらこそありがとうございました!
API で編集しやすくするぞって言って ConoHa の DNS に移行したけれど、さてぶっ壊れないか不安ですね
Kubernetes ならこういうことできるのかな~?って思ってググると大抵何も理解できずに終わる件
k3s を見たときの印象、「Only 512 MB of RAM required to run?まだ多いわボケ」でした
k3s server 起動して、一切なにもしないでメモリ使用量が 180MB か。 Docker 単体より +100MB ってところ
k3s server に --node-name を指定すると権限エラー食らって起動できない謎が残った
スクロールしてからアニメーションするやつ、こっちはざーっとスクロールしてどんな情報が載っているのか流し見したいのに、アニメーションが終わるまでコンテンツが全部見れないのゴミゴミのゴミ
k3s の HA 非対応(やる気はある)ってつまりマスターノードを複数にできないって意味か。 etcd ではなく SQLite を使うっていうのも合意形成する必要なく最低限マスターの機能を実現できる軽量なメソッドなのかな
Metrics API はまだ非対応とあるけれど、これが kubectl top すると
Error from server (NotFound): the server could not find the requested resource (get services http:heapster:)
と返ってくる理由かな? kubectl 自体なんもわかってないのでなんもわからんけど
全部 HTTP だから適当な L7 ロードバランサー使えるのよくできてるな……(k8s 初心者並みの感想)
Flannel の仕組み見ながら、なんで L3 の仮想ネットワークにわざわざ L2 パケットを仮想化する VXLAN 使ってるんだ???状態になってる
k3s、 1 binary っていうから Busybox 的なあれかと思ったんだけど、微妙に違って
- containerd (Busybox-style の k3s-agent, k3s-server, kubectl, crictl)
- cni (Busybox-style のネットワークプラグイン)
- runc
- containerd-shim
が tar.gz にパッケージされて、それがバイナリに埋め込まれていて、実行時に /var/lib/rancher/k3s/data/ に展開して使ってるっぽい
他にも、 OS 非依存にするために、各種コマンドをビルドしたものも含まれてるね https://github.com/ibuildthecloud/k3s-root/blob/master/Dockerfile
ダッシュボードを kube-system ではなく別の namespace に放り込もうと思ってやっていて、 03-account.yaml で作った ServiceAccount のトークンでログインしたんだけども、権限ねーよ馬鹿と言われて何も見れない…… https://gist.github.com/azyobuzin/cefd6f738d329ea6468c9a277174b398
ClusterRoleBinding の metadata に namespace 設定してもエラーにならないんだけどいいのかこれ
あらゆる需要に応えてくれる k8s 先生、 default 名前空間に定義した Secret を別の名前空間の別の名前でアクセスする的なことできますか?
k3s、こういうことです https://mstdn.maud.io/@azyobuzin/101685861175261994 https://mstdn.maud.io/@azyobuzin/101685925808896458
完全に 1 バイナリにコンパイルされていたら最強だったけれど、さすがにそうはいかなかったっぽい。でも実際かなり良くて、 k3s server と打つだけで遊べるし、似たようなコンセプトの microk8s よりも圧縮(microk8s は全部ばらばらのバイナリのディストリビューション)効いてるし、クラスタも組める(試してない)
> Secret API objects reside in a namespace . They can only be referenced by pods in that same namespace.
https://kubernetes.io/docs/concepts/configuration/secret/
残念
k3s についてトゥートしてるだけだと流れちゃうのでブログに書くかと思って microk8s と比較するために実験してたらつらくなった
コメントが大量に書いてある部分は正気のときに書いたコードで、コメントが全然ないのに複雑な処理をしている部分は死にかけながら書いたコード
書き終わった: k3s の中身とメモリ使用量の調査 - アジョブジ星通信 https://azyobuzin.hatenablog.com/entry/2019/03/04/144245
Functions で HttpTrigger をさっさと終わらせて別の Function に投げつけたい場合、たとえ実行したい Function が 1 つだとしても DurableOrchestration に投げつけないといけないの?
DevOps エンジニア、 3 年前のフルスタックエンジニアが名前変えてバズワードになっただけやんけ
ConoHa の DNS 使って Dynamic DNS するやつできた https://github.com/azyobuzin/DdnsFunctions
TaskCompletionSource が完了されず放置された場合、継続タスクってメモリリークしないものなのかな?
Traefik の Let's Encrypt 管理に ConoHa があって爆笑してる。国内ローカルの気持ちだったのでビビった
Istio の設定ファイル見ていたら大量に CustomResourceDefinition があり、 k8s の拡張性頭おかしすぎるでしょになった
春休みだし時間は無限にあるから今しかできないことをやろう!みたいなやる気があればよかったんだけど、残念ながら、卒研に手を付けていないという後ろめたさが勝って何もできないでいる
3月に入ったらとりあえずオタクコンテンツ消化するって言ってたのに何か結構真面目な進捗を出してしまった感じがする。ただし卒研は進んでいない
Ubuntu 18.04 の hostname の永続化どこでやってるんだ、 cloud-init っぽいことまでは掴んだんだけど、それっぽいファイルを書き換えて回っているが再起動するとインストール時の値に書き換えられてしまう
「それっぽいファイル」の一番それっぽい代表格である /var/lib/cloud/instance/cloud-config.txt を見逃していた!こいつだ!
ムキになって探したけれど、本当の正解は cloud-init に hostname を設定させないように /etc/cloud/cloud.cfg の preserve_hostname を true にすることです
例の補導、何に該当するの?
「不良行為少年 非行少年には該当しないが、飲酒、喫煙、深夜はいかいその他自己又は他人の徳性を害する行為(以下「不良行為」という。)をしている少年をいう。」
これ? https://elaws.e-gov.go.jp/search/elawsSearch/elaws_search/lsg0500/detail?lawId=414M60400000020&openerCode=1
Kubernetes API Reference、タブ切り替えるとレンダリング待ちがすごいんだけど、これ 1 ページに全部詰め込んでるからか……
せっかく 2 ノードでクラスタ組んでるけれど、メモリの割り当てがマスター側に 2GB、エージェント側に 1GB なのでマスター側にしかコンテナが作られない
k3s がメトリクス取れないので、 Pod が使っているリソース情報しか取れず、他のプロセスがどのくらいメモリを使っているのかがまったく加味されない
地味に Helm のインストールを定義だけで書けるの強い。 Rancher オリジナル機能だった https://github.com/rancher/k3s/blob/10be950df565e635d4dcfac9402b6ebda3c605c5/manifests/traefik.yaml
k8s、各種 Controller のみなさんが状態を pull して変化を起こすみたいなアーキテクチャしてるけど、これノード増えたとき死にそうな気しかしないんだけど、なんでこれでスケールできるの?
スワップがあると性能低下!じゃねえ、こっちはアクセス頻度の低いデータを追いやらないとメモリ足りないんじゃ
CentOS に PostgreSQL 入れたときは、初期設定ではパスワード認証無効化されていて、 Linux ユーザーで認証されるから sudo -u postgres psql で入った記憶がある
Windows 電卓、 RatPack とかいうのが代々受け継がれてきていて、 UI だけ差し替えられて生きてきたのか?
DNS を VALUE DOMAIN から ConoHa に変えたら Let's Encrypt 用の TXT レコードが一瞬で反映されて良い。内部での反映に何分かかるんだって感じのやつより5000兆倍マシだ。。
Let's Encrypt、認証は通ったけど、証明書が保存されていない感……。適当に前のサーバーからコピーしてきたデータに妨害されてそうだな……
いろんなディストロ試して楽しむ元気がなくなっているので、何も考えずに Debian 系突っ込んじゃうんだよなぁ
natural 575 原理主義なので、改変によって 575 に変形させられることへの反発感が強い
このアカウントは、notestockで公開設定になっていません。
ランダムに並べかえる人、悪いオタクハブとして便利だったけれど、本人が面白いかどうかはよくわからんって感じだったな
Ubuntu でネットワーク設定を変えたかったら、 cloud-init によって /etc/netplan/50-cloud-init.yaml が作成されているので、これより後に適用されるファイル(99_config.yaml みたいな)を作ればいいってことか
dashboard.k8s.local.azyobuzi.net が誕生し、やっと自宅 DNS が役に立った
https://github.com/rancher/klipper-helm/blob/8d2f3329d5947c80d6c84081a7644524f8f74d04/entry#L38 これにより、 k3s.cattle.io HelmChart をオプションだけ書き換えて apply しても何も変化が起こらないという問題が発生している
delete して delete job の pod が終了したことを確認して、再度 apply するといった無駄なオペレーションをしているけれど、無駄だからやめたい
やっと https://github.com/kubernetes-sigs/sig-storage-local-static-provisioner の意味が分かった。ホストのあるディレクトリ下のディレクトリ or マウントを検出して PersistentVolume として公開するのか
provisioner っていうのが各ノードにストレージをマウントして、ここにあるでw というのを PersistentVolume として通知すると、 Pod がストレージを要求したときに、マウントへのなんらかのリンクを張ってくれるから、動的にストレージが割り当てられたように見える、それが k8s の PersistentVolume の仕組みか
Kubernetes API Reference、オブジェクトが namespace に属するのかそうでないのかの情報が書いていないのですが
kubectl api-resources がなくてわけわからんと思っていたけれど、どうやら scoop でインストールした kubectl ではなく、 Docker Desktop に含まれているやつが使われていたらしく、そりゃあいくらアップデートしてもダメですねって感じだった
顧客が本当に必要だったもの、これじゃん https://github.com/rancher/local-path-provisioner
k8s と戦うの非常に燃えており、 1 ヶ月間の燃え尽きから復活してきた感じはするが、問題は最優先でやるべきことにまったく手を付けていない
どうやって DB をローカルのファイルシステムに乗せるかと思って探していたけれど、そもそも MySQL も PostgreSQL も NFS で動くという情報が入ってきた。ほーん
昨日嘆いてたの、ちょうど修正されて神 https://mstdn.maud.io/@azyobuzin/101709474399525499 https://github.com/rancher/k3s/pull/183
ネットワークのプロビジョニングに追加でいろいろ入れなきゃいけないことが判明して段々面倒になってきている
DaemonSet で hostPath に触るの、もはや各ノード自体のプロビジョニングツールなんだよなぁ
NetworkPolicy、 podSelector しかないけど、 Service をセレクトできないと意味なくないか???
NetworkPolicy をガチガチに固めてから、これ外からデバッグできないじゃんと気づき元に戻してる
inactive により終了していた…… https://github.com/kubernetes/kubernetes/issues/62579
面倒な方法では、 Pod が起動して、最初に kube-dns に教えてもらって、 /etc/resolv.conf を書き換えてから、実際の処理をスタートさせるという手ではいけそう
k8s-app: kube-dns な CoreDNS のコンフィグファイルをいじって解決したので、移植性がゼロになった(一番最初に思いつく手だけどやりたくなかった)
各 Pod 必要なリソースはマニフェストに書いておこうな(何も書いていない上、 k3s が Metrics API に対応していないため、非常に雑なスケジューリングが行われている)
メモ: nfs-provisioner を local-path-provisioner に乗せられるのでは