このトピックでは、フラット構成ファイルまたは Kubernetes スタイルのオブジェクト仕様を使用して、Tanzu Kubernetes Grid (TKG) ワークロード クラスタを構成する方法について説明します。IaaS 固有の手順については、次を参照してください。
ワークロード クラスタの構成方法は、以下のセクションで説明するように、クラスタのタイプによって異なります。
(デフォルトのタイプ)クラスベースのクラスタは、Cluster
オブジェクトに対して Kubernetes スタイルのオブジェクト仕様を使用します。クラスベースのクラスタを作成するには、このオブジェクト仕様または CLUSTER_NAME
のような大文字とアンダースコアの変数を設定するフラット構造のクラスタ構成ファイルを tanzu cluster create
に渡します。
ClusterBootstrap
とそれが参照するオブジェクトの仕様も必要になる場合があります。(レガシー タイプ)プランベースのクラスタおよび TKC クラスタは、CLUSTER_NAME
のような大文字とアンダースコアの変数を設定するフラット構造のクラスタ構成ファイルを使用します。レガシー クラスタを作成するには、この構成ファイルを tanzu cluster create
に渡します。
ytt
のダウンロードおよびインストール方法については、「Carvel ツールのインストール」を参照してください。前述のクラスタ タイプおよびそれらで使用するクラスタ API プロバイダの詳細については、次の説明を参照してください。
kubectl
を含む)ワークロード クラスタ用に選択する構成ファイルの詳細については、次の表を参照してください。
Tanzu CLI で使用可能… | 作成するワークロード クラスタのタイプ… | インフラストラクチャ… |
---|---|---|
フラットなクラスタ構成ファイル |
|
|
Kubernetes スタイルのオブジェクト仕様 | クラスベースのクラスタ | スーパーバイザーを使用する vSphere 8、スタンドアローン管理クラスタを使用する vSphere 7/8、AWS、および Azure |
クラスタ構成ファイルを使用して、次のタイプのクラスタを構成できます。
クラスベースのクラスタ:これには、次の展開が含まれます。
スーパーバイザーを使用する vSphere 8 にクラスベースのワークロードを展開する場合は、「スーパーバイザーで展開されたクラスベースのクラスタの構成(vSphere 8 のみ)」の説明に従って、オブジェクト仕様から展開する必要があります。
(レガシー)プランベースのクラスタおよび TKC クラスタ:これには、次の展開が含まれます。
ワークロード クラスタを vSphere、AWS、または Azure に展開する前に、クラスタの構成ファイルを作成します。このファイルを tanzu cluster create
の --file
オプションに渡すと、Tanzu CLI はファイルで定義されている構成情報を使用してターゲット プラットフォームに接続し、クラスタが使用するリソースを作成します。
クラスタ構成ファイルを作成するには、以前の展開の既存の構成ファイルをコピーして更新します。また、空のテンプレートを使用してファイルを最初から作成することもできます。
現在のインフラストラクチャに関連する構成情報を設定するには、次を参照してください。
クラスタ構成ファイルで指定できるオプションの完全なリストについては、「構成ファイル変数リファレンス」を参照してください。
ワークロード クラスタを展開する場合、クラスタのほとんどの構成は、展開に使用するスタンドアローン管理クラスタの構成と同じです。このため、ワークロード クラスタの構成ファイルを作成する最も簡単な方法は、スタンドアローン管理クラスタ構成ファイルのコピーから開始することです。
管理クラスタの YAML 構成ファイルを見つけます。
tanzu mc create --ui
を実行したときに --file
オプションを指定しなかった場合、構成ファイルは ~/.config/tanzu/tkg/clusterconfigs/
に保存されます。ファイルの名前はランダムに生成され、たとえば bm8xk9bv1v.yaml
のようになります。--file
オプションを指定した場合、管理クラスタの構成は指定したファイルから取得されます。--file
オプションで指定したファイル、またはデフォルトの場所である ~/.config/tanzu/tkg/cluster-config.yaml
から取得されます。管理クラスタ構成ファイルのコピーを作成し、新しい名前で保存します。たとえば、ファイルを my-aws-cluster.yaml
、my-azure-cluster.yaml
、または my-vsphere-cluster.yaml
として保存します。
クラスタ構成ファイルの設定を更新します。デフォルトの Ubuntu 20.04 以外の OS を使用するようにワークロード クラスタを構成する場合は、OS_NAME
と OS_VERSION
の値を設定する必要があります。インストーラ インターフェイスでは、~/.config/tanzu/tkg/clusterconfigs
に保存される管理クラスタ構成ファイルにノード仮想マシンの OS 値を含めません。
ファイルを保存します。
スーパーバイザーを使用する vSphere 8 上の TKC クラスタのクラスタ構成ファイルを準備するには、「スーパーバイザーが展開された TKC クラスタの構成(レガシー)」を参照してください。
Kubernetes スタイルのオブジェクト仕様ファイルを使用して、クラスベースのワークロード クラスタを次の環境に展開できます。
オブジェクト仕様ファイルは、クラスタ構成ファイルと同じ目的で機能します。オブジェクト仕様を tanzu cluster create
の --file
オプションに渡すと、Tanzu CLI はオブジェクト仕様で定義されている構成情報を使用してクラスタを作成します。
他の Kubernetes オブジェクトと同様に、オブジェクト仕様を作成および編集して、クラスベースのワークロード クラスタを構成できます。クラスタ オブジェクトの場合は、次のようになります。
Cluster
オブジェクト:クラスタ トポロジなど、ほとんどのクラスタ オプションを構成します。このオブジェクト仕様を変更および再適用して、実行中のクラスタの構成を変更できます。ClusterBootstrap
オブジェクト:コンテナ ネットワーク インターフェイス (CNI) やコンテナ ストレージ インターフェイス (CSI) など、クラスタの最初の作成時にのみ適用されるデフォルト以外のオプションを構成します。これらのオプションは、実行中のクラスタで再構成できません。詳細については、「インフラストラクチャのワンタイム設定の構成」を参照してください。最初のオブジェクト仕様ファイルを作成するには、次の手順を実行します。
スーパーバイザーを使用しない vSphere、AWS、または Azure にクラスベースのワークロード クラスタを展開する場合、Tanzu CLI を使用すると、クラスタを展開せずにクラスタ構成ファイルをオブジェクト仕様ファイルに変換できます。
(グローバル構成)Tanzu CLI の auto-apply-generated-clusterclass-based-configuration
機能を使用します。この機能は、デフォルトで false
に設定されています。auto-apply-generated-clusterclass-based-configuration
が false
に設定されている場合に、--file
フラグを指定して tanzu cluster create
を実行すると、クラスタ構成ファイルがオブジェクト仕様ファイルに変換され、クラスタを作成することなくコマンドが終了します。構成を確認したら、「オブジェクト仕様からのクラスベースのクラスタの作成」の説明に従って、Tanzu CLI によって生成されたオブジェクト仕様ファイルを使用して tanzu cluster create
を再実行します。デフォルトの構成を更新した場合、false
に設定を戻すには、次のコマンドを実行します。
tanzu config set features.cluster.auto-apply-generated-clusterclass-based-configuration false
(単一クラスタ)--dry-run
オプションを tanzu cluster create
に渡して、出力をファイルに保存します。クラスタを作成する場合に使用するのと同じオプションと構成 --file
を使用します。例:
tanzu cluster create my-cluster --file my-cluster-config.yaml --dry-run > my-cluster-spec.yaml
このオブジェクト仕様を使用して、「オブジェクト仕様からのクラスベースのクラスタの作成」の説明に従ってクラスタを展開できます。
スーパーバイザーを使用する vSphere 8 にクラスベースのワークロード クラスタを展開する場合は、「スーパーバイザーで展開されたクラスベースのクラスタの構成(vSphere 8 のみ)」の説明に従って、Cluster
オブジェクト仕様を作成または適用します。vSphere 8 のドキュメントには、作業用のサンプルとして使用できる Cluster
オブジェクト仕様があります。例:v1beta1 サンプル:デフォルトのクラスタ。
Cluster
オブジェクト仕様では最も一般的なクラスタ設定を構成できますが、一部のクラスタ コンポーネントは、クラスタのノードの基盤となる Tanzu Kubernetes リリース (TKr) から取得されます。たとえば、TKr は、クラスタが使用する CNI、CSI、および Pinniped バージョンを指定します。
これらのインフラストラクチャ レベルのオプションは、ClusterBootstrap
オブジェクトによってクラスタ作成時に適用され、実行中のクラスタでは変更できません。クラスタを作成する前にこれらのオプションを構成する一般的な手順は次のとおりです。
ClusterBootstrap
オブジェクトとそのオブジェクトが参照するカスタム オブジェクト(CalicoConfig
オブジェクトなど)のオブジェクト仕様を作成します。
Cluster
オブジェクト自体のオブジェクト仕様を作成します。
次のように、すべてのオブジェクト仕様の metadata
に、作成するクラスタの名前と名前空間を含めます。
apiVersion: run.tanzu.vmware.com/v1alpha3
kind: ClusterBootstrap
metadata:
name: MY-CLUSTER
namespace: MY-NAMESPACE
カスタマイズには、注釈などの追加のメタデータが必要になる場合があります。
Cluster
定義を含むすべてのオブジェクト仕様を 1 つのファイルに連結します。仕様は、3 つのダッシュ (---
) で構成される行で区切ります。
次のように、オブジェクト仕様を kubectl apply
の --file
オプションに渡します。
kubectl config use-context CONTEXT-NAME
kubectl apply -f my-custom-cluster-objects.yaml
代替方法:最後の 2 つの手順の代わりに、Cluster
オブジェクトを除くすべてのオブジェクト仕様に対して kubectl apply -f
を実行し、Cluster
オブジェクト仕様に対して tanzu cluster create --file
を実行することができます。
この手順の具体的な例については、「デフォルト以外の CNI を使用したクラスタの作成」を参照してください。これにより、クラスタの CNI が Calico に設定されます。
kubectl
および kubeconfig
ワークロード クラスタの作成時に、Tanzu Kubernetes Grid は kubectl
コンテキストを自動的に設定しません。kubectl config use-context
コマンドを使用して、ワークロード クラスタに kubectl
コンテキストを手動で設定する必要があります。
デフォルトでは、KUBECONFIG
オプションを指定してクラスタの kubeconfig
を特定のファイルに保存しない限り、展開するすべてのワークロード クラスタは共有の .kube/config
ファイルに追加されます。共有の .kube/config
ファイルを削除しても、管理クラスタ用の .kube-tkg/config
ファイルが残っている場合は、tanzu cluster kubeconfig get CLUSTER-NAME
コマンドを使用して、ワークロード クラスタの .kube/config
を回復できます。
Tanzu Kubernetes Grid 操作の実行中は、コンテキストを変更したり、.kube-tkg/config
または .kube/config
ファイルを編集したりしないでください。
インフラストラクチャのクラスタ構成トピックに進みます。