[kubernetes]クバーネディスターゲット

4791 ワード

クバーネディスターゲット


クバーネディスシステムに永久的なオブジェクトがあります.
このオブジェクトを使用して、クバーネディスの熱状態を示します.
  • どのコンテナ化アプリケーションが実行中(どのノードで実行中)
  • アプリケーションで利用可能なリソース
  • ポリシー
  • クバーネディスオブジェクトは의도를 담은 레코드です.オブジェクトを作成すると、クバーネディスシステムはオブジェクトの作成を確認するために実行されます.

    オブジェクトを作成することで、クラスタのワークロードを効率的にクバーネスシステムに表示できます.これがクラスタの予想される状態です.
    作成、変更、削除などのクバーネスオブジェクトを動作させるには、クバーネスAPIを使用する必要があります.例えば、kubectlコマンドが使用される場合、kubectlは、クバーネディスAPIを呼び出す.さらに、クライアントライブラリの1つを使用して、自分たちのプログラムでクバーネディスAPIを直接使用することもできます.

    オブジェクトの説明(spec)とステータス(status)


    ほとんどのクバーネディスオブジェクトには、オブジェクトの構成を決定する2つの重複するオブジェクトフィールドが含まれています.オブジェクトspecとオブジェクトstatusです.specを有するオブジェクトは、オブジェクトの作成時にリソースに必要なフィーチャー(必要なステータス)の説明を提供することによって設定される.statusは、クバーネスシステムおよび要素によって提供および更新されるオブジェクトの現在の状態を記述する.
    クバーネディス制御プレーンは、すべてのオブジェクトの実際の状態を絶えず、アクティブに管理して、所望の状態と一致させます.
    たとえば、クバーネディフロはクラスタ内で実行されるアプリケーションを表すオブジェクトです.デバイスの作成時に、デバイスspec上で3つのアプリケーションReplicatorを実行するようにデバイスを設定することができる.クバーネディスシステムは、デバイスspecを読み出し、specに一致するようにステータスを更新して、3つの予想されるアプリケーションインスタンスを駆動する.
    いずれかの例が問題によって停止した場合(状態変化が発生した場合)、クバーネディスシステムは、specstatusとの間の相違を補正することによって対応する.
    詳細については、Kubernetes API Conventionsを参照してください.

    クバーネディスターゲット技術


    クバーネディスがオブジェクトを作成するときは、オブジェクトの基本情報と、その予想される状態を記述するオブジェクトspecを提供する必要があります.クバーネディスAPIを使用してオブジェクトを作成する場合、API要求はJSONの形式で要求に情報を含まなければならない.
    ほとんどの場合、情報は.yamlファイルとしてkubectlに提供される.
    API要求が発生すると、kubectlは情報をJSON形式に変換する.

    yamlの例

    # testpod.yaml
    apiVersion: v1
    kind: Pod
    metadata:
      creationTimestamp: null
      labels:
        run: testpod
      name: testpod
    spec:
      containers:
      - image: httpd
        name: testpod
        ports:
        - containerPort: 80
        resources: {}
      dnsPolicy: ClusterFirst
      restartPolicy: Always
    status: {}
    
    yamlファイルを使用してストリームを作成する方法の1つは、kubectlコマンドのパラメータ値を.yamlファイルとして使用し、kubectl applyコマンドを使用することです.
    # Command
    $ kubectl apply -f testpod.yaml --record
    # result
    pod/testpod created

    必要なフィールド


    作成するクバーネディスオブジェクトの.yamlファイルに必要なフィールド値を設定する必要があります.
    Field Description apiVersionオブジェクトを作成するために使用されるクバーネディスAPIのバージョンと、metadata名文字列、UID、オプションのネーミングスペースなど、どのタイプのオブジェクトを作成しますか.オブジェクトを一意に区切るデータ仕様オブジェクトについて、どのような状態にしますか.
    オブジェクトspecの正確なフォーマットは、すべてのクバーネスオブジェクトによって異なり、オブジェクト固有のネストされたフィールドが含まれます.仕様内のすべてのフォーマット