動かざることバグの如し

近づきたいよ 君の理想に

kubernetes

kubeadmで構築したおうちKubernetesアップグレードメモ

やったこと v1.26からv.29にアップデート 確認 ubuntu04,05がコントロールプレーンでubuntu01,02がワーカーノード ❯ kubectl get node -o wide NAME STATUS ROLES AGE VERSION INTERNAL-IP EXTERNAL-IP OS-IMAGE KERNEL-VERSION CONTAINER-RUNTIME ubuntu01 …

ArgoCD2.7にアップデート失敗する件

環境 Kubernetes 1.27 ArgoCD 2.7 私はk8sのデプロイにargocdを使用しており、今回2.7がリリースされたのでアップデートしてみました。しかし、アップデートの際にエラーが発生してしまったため、修正方法をメモしておきました。 エラー内容 Argocd 2.7がリ…

GROWIをKubernetesにデプロイする

環境 Kubernetes 1.26 やりたいこと GROWIの最大の特徴は、マークダウン記法でかけることだ。これにより、シンプルで見やすい文書を簡単に作成できる。 さて、今回の本題は、GROWIをKubernetesにデプロイする方法だ。Kubernetesは、複数のコンテナを管理する…

KubernetesのコンテキストをIterm2で常に表示させる方法

やりたいこと Kubernetesを使っていて、stagingやproductionのような環境を切り替えるとき、またはnamespaceを確認するときに、いつも確認するのが本当にダルいと感じていた。 ターミナルで毎回確認するのも面倒だったので、ずっと表示されていてほしかった…

kube-prometheus-stack インストールメモ

環境 kubernetes 1.26 やりたいこと kubeadmで構築した自宅k8s環境にモニタリングを入れたい podリソースとか監視とかしたい 調べた感じkube-prometheus-stackがいいっぽい PrometheusとGrafanaとか一括でインストールしてくれる やり方 まずはnamespace作成…

Service、Gateway、VirtualServiceの違い

k8sリソースの種類多すぎ問題 紛らわしいService、Gateway、VirtualServiceについてそれぞれメモ Service Serviceは、Kubernetesクラスタ内のマイクロサービス間の通信を制御するために使用されるリソースです。Serviceは、1つ以上のPodをグループ化し、グル…

ArgoCDオレオレスタートコマンド

オレオレコマンドセット 「hogehoge」を任意のレポジトリ名に変更すること k create ns hogehoge k create secret generic my-secret --from-env-file=.env argocd app create hogehoge --repo https://github.com/thr3a/kubernetes-manifests.git \ --dest-…

ArgoCDで自動反映(auto-sync)の間隔を変更する方法

環境 Kubernetes 1.24 Argocd v2.4 ArgoCDのsync遅すぎ問題 よく記事に「ArgoCDは自動でgitをsyncしてくれるので自動で反映してくれる」みたいなこと書いてあるけどデフォルトの設定ではやってくれない。 しかもauto-syncを有効にしてもデフォルトでは「3分…

KubernetesでCronjobを手動で即時実行する

環境 Kubernetes 1.24 やりたいこと Kubernetes上に作成したCronjobが正常に動くか手動でテストしたい やり方 例えば元のCronjobがlog_rotateで、即時実行の名前をonetimeとすると kubectl create job onetime --from=cronjob/log_rotate で実行される。 実…

KubernetesでSecretsをファイルから作成する方法

環境 Kubernetes 1.24 シークレットが当たり前過ぎて全然記事がなかったのでまとめ 追加方法 まずは秘匿情報が書かれたキーとバリューの組み合わせが書かれたファイルを用意する NAME=taro PASSWORD=12345 kubectl create secret generic 構文でシークレット…

Kubernetesでコントロールプレーンを増やす方法

環境 Kubernetes 1.24 やりたいこと kubeadmでKubernetesのクラスタを生成すると1台目のノードがマスターノードとなる。つまりcontrol-planeは1台構成 一般的には2台以上が推奨なのでもう1台増やしてみる 手順 まずはkubeadmコマンドでcontrol-plane証明…

マスターノード = コントロールプレーンではない

マスターノード ≠ コントロールプレーン Kubernetesのクラスタにおいてクラスタ管理のみに徹する役割をコントロールプレーンという。てっきり言葉遊びでマスターノードとコントロールプレーンは同じ意味だと思っていたが全く違った。 正確にはマスターノード…

M1 lima環境でminikubeをインストールする方法

環境 M1 Macbook minikube v1.26.1 lima 0.11.3 やりたいこと 使い捨てのKubernetes環境が欲しく、ローカルにKubernetesをインストールしようとした。 本番環境ならkubeadm一択なんだろうけど、サクッと構築するだけなら1台で完結するクラスタがいいなと思…

KubernetesにMariaDBをマスタースレーブ構成でデプロイする

環境 Kubernetes v1.24 やること MySQLサーバーをKubernetesで構築しようと思ったとき、練習用なら自分でYAML書いてデプロイ出来るが、永続化とかレプリケーションまで考えるとちょっと面倒すぎる。 そもそもKubernetesでMySQLのデプロイが向いているのかは…

CalicoのIP範囲設定を変更する

環境 Kubernetes 1.24 Calico v3.21.6 PodのIP範囲変えるの面倒くさい説 PodのIP範囲とはいわゆる --cluster-cidr を指す。PodのIPが足りなくなってきたので急遽既存のクラスタの cluster-cidrを変更することにした。 変更自体はマスターノードの /etc/kuber…

Kubernetesにnfs-subdir-external-provisionerをインストール

環境 Kubernetes 1.24 Kubernetesのデータ永続化にNFSを使ってみる。 github.com NFSサーバーの構築 Kubernetesクラスタ以外のサーバーにインストールすること sudo apt-get install -y nfs-kernel-server /etc/exports に以下追記 *は流石に不味いので 172.…

KubernetesのServiceリソースとは

環境 Kubernetes 1.24 KubernetesのServiceリソースとは 難しい。公式ドキュメントだと Podの集合で実行されているアプリケーションをネットワークサービスとして公開する抽象的な方法 としか書かれていない。自分としては「複数のPodに共通のIPアドレス提供…

KubernetesでCIDRNotAvailableエラーでうまく接続できない問題

問題 なんかMySQL構築して、サービスリソース作ってCulsterIP振ってもアクセスできない問題が発生した 設定何も間違ってないんだが???と思ってふとnodeのイベントログ見てると「CIDRNotAvailable」の文字が沢山。。。 ❯ kubectl get events LAST SEEN TYP…

Kubernetesクラスタを完全に初期化する方法

環境 Ubuntu 20.04 Kubernetes v1.24 Kubernetesの設定にミスった、istioがうまく動かなくなった。。。etc等で泣く泣く初期化するも、そもそも正常に初期化できておらず再インストール後もつまずくケースが多い。 実は 「kubeadm reset」だけだとうまく初期…

Kubernetes Dashboardをインストールする

環境 Kubernetes 1.24 先にmetrics-serverをインストールして kubectl top node コマンドが使えるようにしておく必要がある(Dashboardはただのビューアーなので やりたいこと 自分のクラスタ上でダッシュボードを見てニヤニヤしたい github.com インストー…

10回以上再インストールを余儀なくされた男のKubernetes構築手順Part2

前編 10回以上再インストールを余儀なくされた男のKubernetes構築手順 - 動かざることバグの如し nfs-subdir-external-provisionerkube thr3a.hatenablog.com metrics-server thr3a.hatenablog.com kubernetes-dashboard thr3a.hatenablog.com ArgoCD 一発で…

Kubernetesでmetrics-serverをインストールする方法

環境 Kubernetes 1.24 なぜ必要なのか kubernetes-dashboardをインストールするにあたってメトリクスを取る必要があるため kubectl top nodesコマンドが使えるようになりたい。 # kubectl top nodes error: Metrics API not available インストール方法 公式…

ArgoCDへのアクセスをIstio経由で出来るようにする

環境 Kubernetes 1.24 ArgoCDをistio経由でアクセスできるようにしたい LoadBalancerも悪くないけどIP1つ消費してしまうしせっかくならistioに統合させたかったのでメモ 手順 オレオレ証明書の準備 ArgoCDはhttps通信必須なのでSSL証明書が必要 今回はオレ…

istio動作確認まとめ

https://github.com/thr3a/kubernetes-manifests/blob/master/httpbin1/README.md

Kubernetesでコントロールプレーンとワーカーノードを分けたい

環境 Kubernetes 1.24 やりたいこと たくさんノードがある中でコントロールプレーンとワーカーノードを分けたい 昔はコントロールプレーンのことマスターって言ってたらしい コントロールプレーンにさせたい 結局の所ラベルで管理してるだけなのでkubecrlで…

ArgoCD構築メモ

環境 Kubernetes 1.24 ArgoCDで何ができるとかは他の記事に腐るほど書いてあるので、ここではArgoCDの構築メモ インストール 公式サイトを見ましょう argo-cd.readthedocs.io kubectl create namespace argocd kubectl apply -n argocd -f https://raw.githu…

MySQL公式のKubernetesパッケージ「mysql-operator」をインストール

環境 Kubernetes 1.24 mysql-operatorとは Kubernetes上でデータベースを動かすのは結構難しいらしく、独自のCRD実装したオペレーターでインストールすることが一般的っぽい。 そこでMySQL公式がMySQL Operatorを出しているのだが、2022年5月についにGAにな…

Kubernatesでstorageclass.storage.k8s.io "standard" not foundエラー

PersistentVolumeを作成したらエラーになる 公式チュートリアルでPersistentVolumeを使ったWordPressのデプロイをやっていたところ kubernetes.io いつまで経ってもPVCがPendingのまま。。。 kubectl get pvc NAME STATUS VOLUME CAPACITY ACCESS MODES STOR…

kubectxで楽にネームスペースを切り替えする

Kubernetesのnamespaceうつの面倒くさい問題 kubectl get pods -n hogehoge いちいち打ってられるかよ ってことでアプリで解決 kubectlのcontextとnamespace周りの操作をkubectxとkubensでちょっと楽する | DevelopersIOの記事見てたらkubectxとkubensってコ…

MetalLB v0.13以降はConfigmapでの設定ができない

環境 Ubuntu 20.04 Kubernetes v1.24 MetalLB v0.13.3 インストール kubeadmでKubernetesインストールしてLoadBalancer使いたいからMetalLBもインストールするぞい kubectl apply -f https://raw.githubusercontent.com/metallb/metallb/v0.13.3/config/mani…