Kubernetes

A collection of 6 posts

7月 28, 2020

kubenetesクラスタに突然接続できなくなった (証明書の期限切れ)

前ふり kubernetes 1.18.x tl;dr; 証明書の期限切れ 流れ 2020/07/28 の昼頃から、kubectlを使ってpodに処理を実行させる系のジョブがすべてコケる 自分のPCからkubectlコマンドを打つと error: You must be logged in to the server (Unauthorized) がでる ググりまくるもののまったく成果なし。 kubectlのバグを踏んだのではないかとおもい、コントロールノードのkubeadm, kubectl, kubelet をアップグレードした(本当は良くない)

4月 16, 2020

kubernetes 1.16 -> 1.18 アップグレードメモ

前提として知っておくべき知識 kubernetes のマイナーバージョンを飛ばしたアップグレードは不可能 マスターとワーカーのノードのマイナーバージョンは 1 違いまで許される なので、1.16 -> 1.17 、1.17 -> 1.18 と2回のバージョンアップが必要 1.16 -> 1.17 準備 以下の問題にひっかかるので、 マスターノードの、 /var/lib/kubelet/config.

12月 24, 2019

FreeNASのNFSをkubernetesストレージとして使う設定

ただのメモ FreeNASのNFSをkubernetesストレージとして使うときに、デフォルト設定だと動きません。(動かない可能性があります) 何をどうすれば良いかメモします。 使用しているFreeNASは 11.2 です 設定 設定は二箇所あります。 設定1 poolの権限設定 左側メニューの Storage→Pools を選択し、一覧の右端の ・・・ をクリックして、 edit permission を選択します。 ポイントは、 Mode を全部チェックすることです。ようするにパーミッション 777 です。 設定2 NFSの設定 左側メニューの Sharing->

12月 20, 2019

Docker上で動いているMastodonをkubernetesクラスタに移動した作業メモ

本稿のスコープ外 Kubernetes(以下 k8s)クラスタの構築方法 Mastodonの初期設定 kustomizeのインストール ※ 多少読み替えて頂ければ、dockerではないMastodonも移行できるはず 前提条件 kubectlが実行可能なこと kustomize が使用可能なこと 以降元dockerコンテナのファイルを持ってこれること 作業手順 実は移行自体はそれほど難しくありません。 移行が必要なのは、PostgreSQLのDBだけです。redisのデータも移行した方がよいですが、 移行しなくてもその時点のSidekiqのジョブが失われる程度で、恐らく誰も気づきません。 ※ 管理者的には、Sidekiq画面のジョブ数がリセットされるのが残念かな?程度 kubernetesクラスタ上にPodを生成 Deployment定義をgithubに公開しています。 https://github.com/yakumo-saki/k8s-mastodon-deployment 私のインスタンスは、Glitch

12月 19, 2019

障害記録:podにはできるだけrequestsに使用するメモリ量を書いた方が良い

tl;dr; podにrequestsを書いた方がいい。特にメモリ量。 さもないと、Out Of Memory(OOM)が発生してエライことになる可能性がある。 事故事例 requestsが書かれていない状態で起きた。 requestsがないのでメモリが逼迫したノードに新しいコンテナが配置された OOMが発生してワーカーノードがマスターノードと疎通できなくなった ワーカーノードがダウンしたと判断され、他のノードにpodが移動を始めた 他のノードもメモリ量がそれほどあるわけではないのでOOM発生 ギリギリだったノードにさらに割り振られてOOM発生 ワーカーノード全滅 requestsに書くメモリ量が分からない とりあえず稼働させてみて、そのpodが動作しているpodにSSHでログインし、 docker stats [containerID] を実行することで使用中のメモリ量がわかる。 記述例 Deployments、ReplicaSet、DaemonSet、StatefulSet等のconteinersの定義に書くことができる。 requests はスケジューリングに使用されるが、

9月 13, 2019

GlusterFS on Kubernetes セットアップメモ

変更履歴 2019/09/13 初稿。 kubernetes 1.15.3 2019/09/26 storageclass.yamlのresturlについてを追記。 requirements 3台以上のノード(1台でも2台でも動くのですが、1台だとありがたみが薄い、2台だとスプリットブレインの可能性) それなりのディスク容量とディスクをGlusterFSのノードに割り当て済みであること。(パーティションでもいけそうに思えるが未検証) 準備 最後のデプロイスクリプトが、deployディレクトリの構造に依存している為、ディレクトリ名の変更等は してはいけません。また、以下のファイル類はkubectlコマンドが使えればどのマシンに置いてあっても問題なさそうですが、 一応、kubernetesのmasterノードで行いました。 各ノードの準備 /etc/modules-load.