動かざることバグの如し

近づきたいよ 君の理想に

kubernetes

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動作確認まとめ

環境 Kubernetes 1.24 istio-injection # ON kubectl label namespace default istio-injection=enabled # OFF kubectl label namespace default istio-injection- # 確認 kubectl get namespace -L istio-injection bookinfo kubectl apply -f https://raw.…

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…

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

環境 Ubuntu 20.04 Kubernetes v1.24 事前設定 cat > /etc/modules-load.d/containerd.conf <<EOF overlay br_netfilter EOF modprobe overlay modprobe br_netfilter cat <<EOF > /etc/sysctl.d/k8s.conf net.bridge.bridge-nf-call-ip6tables = 1 net.bridge.bridge-nf-call-iptables = 1 net.ipv4.ip_forward = 1 EOF sysctl -…</eof>