Kubernetes
前回の続きで、今度はOperator SDKを使ってGoでControllerを書くかたちでOperatorを作ってみる。 下記を参照しながら作っていくが、例ではMemcachedのDeployment(レプリカ数:3)となっているが、これをmackerel-agentのDaemonSetとして作ってみる。 operator-…
KubernetesのOperatorとかCustom Controllerをいくつかの作り方を実際に試してみたいと思う。 まずはoperator-sdkを使ってhelmチャートからOperatorの雛形を生成する方法。 https://github.com/operator-framework/operator-sdk/blob/master/doc/helm/user-g…
Kubernetesとは結局何なのか。一言で表すとしたら。正直よくわかってなかったというか考えたこともなかったが。 「コンテナオーケストレーションツール」などと一般的には言われていると思う。 news.ycombinator.com Kubernetesとは何か、これを読んで個人的…
https://admiralty.io/blog/kubernetes-custom-resource-controller-and-operator-development-tools/ Custom Controllerまわりのフレームワークとしては3種類くらいある Kubebuilder github.com ネット上で情報が一番多い、かつシンプルそう KubebuilderでK…
CKAD(Certified Kubernetes Application Developer)に受かった。 参考まで、試験に受かるための参照したリソースが下記。 CKADをさっさと合格するためのTips - Qiita https://qiita.com/kentakozuka/items/c1a30f1545752264dfe6 CKA/CKADに合格したので比較…
Docker for MacにKubernetesが同梱されるようになったことはなんとなく知っていたが、どのように使うのかは分かっていなかったので試してみた。 現時点でのDocker for MacのバージョンはVersion 18.06.0-ce-mac70 (26399)。 Preferenceをみると、Kubernetes…
開発時のワークフローを改善するという意味ですごいいい。 github.com
kubernetesはserviceの仕組みの中でVIPを使って背後の複数podへのルーティングを管理していて、多くのケースではよしなにやってくれるので便利なのだが、以前Nettyを使ってservice間のコネクションを管理していて、背後にある複数podへの接続が偏る問題に悩…
今回のケースでいうと、Kubernetes内のPodにローカルからJMXにつないでjvisualvmを使ってチューニングすることが多かったのだが、下記の記事でやったように127.0.0.1のホスト指定が使えないケースが出てきてしまった。 road288.hatenablog.com -Djava.rmi.se…
stackoverflow.com 基本的にはここの通り。 Kubernetesの中で動くPodにJMXでつないで様子をみたいときがある。 そういうときは、まずPod名を調べて、kubectlコマンドでポートフォーワードして、jvisualvmなどのコマンドを使えばOK。 例えばJMXが7000番ポート…
podがいくら待っても消えてくれないとき。 stackoverflow.com --force --grace-period=0をつける。 例: ᐅ kubectl get pods NAME READY STATUS RESTARTS AGE foo-deployment-2799137922-7xc7r 2/2 Running 0 27d bar-deployment-2705092949-mmkf1 3/3 Termi…
GCPのCloud SQLへのつなぎ方にはいくつか方法があるが、Kubernetes内にあるpodから接続するにはアプリのコンテナと同一pod内にcloud_sql_proxyのコンテナを立ててつなぐ方法で設定した。 github.com 基本的にはここにあるテンプレートどおりやっていけば問題…
kubernetes.io ここにある通りでできる。 pod名の取得を試してみた。 こんな感じで追加 ᐅ kubectl edit deploy foo-deployment deployment "foo-deployment" edited - name: MY_POD_NAME valueFrom: fieldRef: fieldPath: metadata.name 本来元のyamlを直し…
複数のGKEクラスタを切り替えて使っていると(特に開発・ステージング・本番など)、いま使っているcontextを混同してしまいがちで、ステージング環境で開発向けのコマンドを打ってしまったりとかしたのでzshのプロンプトに環境をわかりやすく出すようにした…
CUIでやろうとしたが方法が見つからず。ウェブコンソールでURLを表示してそれを叩くだけだった。