LoginSignup
1
0

More than 1 year has passed since last update.

Kubernetesのclass達

Last updated at Posted at 2022-10-15

こいつら何?

StorageClass, ingressClass

CKAの勉強やハンズオンやってると、各種classはとりあえず指定した値を書いといてみたいな扱いになりがち(多分)なんですが、classって名前なんだから重要なんだろうと思って調べました。

一般的なclassとは。

classとはプログラミングにおいては普遍的なパラダイムで、特定の目的に即したデータの構造とそれらを利用する振る舞い(関数、メソッド)を持つオブジェクトの設計書です。
以下wikipediaのクラス(コンピュータ)の前文記載します。

Wikipedia: クラス (コンピュータ)より
オブジェクト指向プログラミングにおけるクラス(英: class)[1]は、オブジェクトを生成するための設計図あるいはひな形に相当するものである。抽象データ型の一つ。クラスから生成したオブジェクトの実体のことをインスタンスという。
クラスには、クラス自身またはクラスのインスタンスが保持するデータと、データに関連したオブジェクトの振る舞いを記述できる。プログラミング言語によっては、それぞれにアクセス修飾子(英語版)を指定できる。統一モデリング言語 (UML) のクラス図では、データのことを「属性」、振る舞いのことを「操作」と呼ぶ。Javaなどでは、データのことを「フィールド」、振る舞いのことを「メソッド」と呼ぶ。C++などでは、データのことを「メンバー変数」、振る舞いのことを「メンバー関数」と呼ぶ。


Kubernetesにおけるclass

Kubernetesにおけるclassはデータ構造体のみの役割となり、振る舞いはSchedulerやcontrollerなどがそれを読み取って実行する。

KubernetesAPIにおけるclass

KubernetesAPIには以下記載

名前 apiVersion 役割
PriorityClass scheduling.k8s.io/v1 プライオリティクラスはPodのスケジューリングする際の重みづけを整数で行うためのクラスです。PriorityClass.metadata.nameを使って、優先度を区分ごとにネーミングをして優先度を設定する可能です。重みはpod.spec.priorityにスケジュールの際に設定されます。
IngressClass networking.k8s.io/v1 IngressClassは特定のIngressControllerをIngressに紐づけるためのclassです。この名前を変えるだけで各ベンダのマネージドサービスのIngressControllerや独自のそれと切り替えることができます。
StorageClass storage.k8s.io/v1 StorageClassは、PersistentVolumesを動的にプロビジョニングできるストレージクラスのパラメータを記述します。StorageClassesは名前空間化されていない。etcdによるストレージクラスの名前はObjectMeta.Nameにあります。
RuntimeClass node.k8s.io/v1 OCIを設定するためのClass。runc以外にもmicroVMを使ったkataやgolangで書かれたシステムコールを行うgVisoryのようにpod以外に加えたリソースを消費するOCI向けにリソース割り当てを定義することができる。

結論

みんな大事、おしまい。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0