KubernetesのTaintにビビらない #Kubernetesリレー
Kubernetes をやり始めたころ、登場する言葉の多さに絶望したことを覚えています。
特にこの「Taint」はびっくりしました、「汚す」ってどういうこと?
ちょっと解説してみます。
ノードを汚すという行為
kubectl taint
のようなコマンドを使うと、ノードにTaintをつける、つまりノードを汚すことになります。
なんだかネガティブな感じですよね。
ここで大事なことは、「Podはキレイ好き!」ということです。
Taintが設定されたノードでは、普通のPodは「こんな汚い場所で立ち上がりたくない!」となります。
Taintを活用するコマンドで
kubectl drain
というのがありますが、これを使うとTaintの作用等によりPodをノードから安全に追い出すことができ、ノードのメンテナンスが可能な状態になります。
汚れを許容する Toleration
通常のPodは完璧主義というか、あらゆるTaintを拒否します(たぶん)。
でも、いつもすべてを清潔に保てるとは限りませんよね、例えば家の窓の掃除は結構妥協してたり・・・
こういう、一部のTaintは気にしない、といった振る舞いをPodにさせるために Toleration という概念があります。
例えばWindowsコンテナのPodはWindowsのノードでしか起動できないので、ノードにWindows限定にするTaintをつけておき、WindowsのPodでTolerationを設定すれば良いことがありそうですね。
(急にニッチな話題に・・・)
まとめ
詳しいコマンドは解説しませんでしたが、「Taint」という概念については「Podはキレイ好きだから汚れた場所にはいきたくない」という性格を覚えておくと、関連するドキュメントが一気に読みやすくなります。
是非覚えておいてください。







![Microsoft Power BI [実践] 入門 ―― BI初心者でもすぐできる! リアルタイム分析・可視化の手引きとリファレンス](/assets/img/banner-power-bi.c9bd875.png)
![Microsoft Power Apps ローコード開発[実践]入門――ノンプログラマーにやさしいアプリ開発の手引きとリファレンス](/assets/img/banner-powerplatform-2.213ebee.png)
![Microsoft PowerPlatformローコード開発[活用]入門 ――現場で使える業務アプリのレシピ集](/assets/img/banner-powerplatform-1.a01c0c2.png)


