このトピックでは、スタンドアローン管理クラスタを使用して Microsoft Azure にデプロイする前に、フラット構成ファイルまたは Kubernetes スタイルのオブジェクト仕様を使用して、Tanzu Kubernetes Grid (TKG) のワークロード クラスタを構成する方法について説明します。
構成ファイルとオブジェクト仕様を使用してワークロード クラスタを構成する方法の一般的な情報については、「構成ファイルとオブジェクト仕様」を参照してください。
クラスタの構成ファイルまたはオブジェクト仕様に含まれない構成を必要とする Azure 固有のワークロード クラスタ機能を使用するには、「Azure 上のクラスタ」を参照してください。
重要Tanzu Kubernetes Grid v2.4.x は、Azure での TKG ワークロード クラスタの作成をサポートする TKG の最後のバージョンです。Azure で TKG ワークロード クラスタを作成する機能は、Tanzu Kubernetes Grid v2.5 リリースで削除される予定です。
以降、VMware では、Azure で新しい TKG ワークロード クラスタを作成する代わりに、Tanzu Mission Control を使用してネイティブの Azure AKS クラスタを作成することをお勧めします。Tanzu Mission Control を使用してネイティブの Azure AKS クラスタを作成する方法については、Tanzu Mission Control ドキュメントの「Azure AKS クラスタのライフサイクルの管理」を参照してください。
詳細については、『VMware Tanzu Kubernetes Grid v2.4 Release Notes』の「AWS および Azure での TKG 管理クラスタとワークロード クラスタの廃止」を参照してください。
ワークロード クラスタを Azure に展開する前に構成するには、クラスタ構成ファイルまたは Kubernetes スタイルのオブジェクト仕様ファイルを作成します。これらのファイルのいずれかを tanzu cluster create
の -f
オプションに渡すと、Tanzu CLI はファイルで定義されている構成情報を使用して Azure アカウントに接続し、クラスタが使用するリソースを作成します。
ワークロード クラスタを Azure に展開するときに指定する必要があるオプションの完全なリストについては、「構成ファイル変数リファレンス」を参照してください。
クラスタ構成ファイルを作成するには、以下の「ワークロード クラスタ テンプレート」のテンプレートを使用できます。構成ファイルを作成したら、「ワークロード クラスタの作成」に進みます。
次に示すテンプレートには、Azure へのワークロード クラスタの展開に関連するすべてのオプションが含まれています。このテンプレートをコピーして更新し、ワークロード クラスタを Azure に展開できます。
必須オプションはコメント解除されています。オプションの設定はコメントアウトされています。必要に応じて、デフォルト値が含まれています。
Azure に固有のワークロード クラスタの変数を構成する方法は、管理クラスタとワークロード クラスタの両方で同じです。変数の構成方法の詳細については、「構成ファイルからの管理クラスタの展開」と「Azure の管理クラスタ構成」を参照してください。
#! ---------------------------------------------------------------------
#! Cluster creation basic configuration
#! ---------------------------------------------------------------------
# CLUSTER_NAME:
CLUSTER_PLAN: dev
NAMESPACE: default
# CLUSTER_API_SERVER_PORT:
CNI: antrea
#! ---------------------------------------------------------------------
#! Node configuration
#! ---------------------------------------------------------------------
# SIZE:
# CONTROLPLANE_SIZE:
# WORKER_SIZE:
# AZURE_CONTROL_PLANE_MACHINE_TYPE: "Standard_D2s_v3"
# AZURE_NODE_MACHINE_TYPE: "Standard_D2s_v3"
# CONTROL_PLANE_MACHINE_COUNT: 1
# WORKER_MACHINE_COUNT: 1
# WORKER_MACHINE_COUNT_0:
# WORKER_MACHINE_COUNT_1:
# WORKER_MACHINE_COUNT_2:
# AZURE_CONTROL_PLANE_OS_DISK_SIZE_GIB: 128
# AZURE_CONTROL_PLANE_OS_DISK_STORAGE_ACCOUNT_TYPE: Premium_LRS
# AZURE_NODE_OS_DISK_SIZE_GIB: 128
# AZURE_NODE_OS_DISK_STORAGE_ACCOUNT_TYPE: Premium_LRS
# AZURE_CONTROL_PLANE_DATA_DISK_SIZE_GIB: 256
# AZURE_ENABLE_NODE_DATA_DISK: false
# AZURE_NODE_DATA_DISK_SIZE_GIB: 256
#! ---------------------------------------------------------------------
#! Azure Configuration
#! ---------------------------------------------------------------------
AZURE_ENVIRONMENT: "AzurePublicCloud"
AZURE_TENANT_ID:
AZURE_SUBSCRIPTION_ID:
AZURE_CLIENT_ID:
AZURE_CLIENT_SECRET:
AZURE_LOCATION:
AZURE_SSH_PUBLIC_KEY_B64:
# AZURE_ENABLE_ACCELERATED_NETWORKING: true
# AZURE_RESOURCE_GROUP: ""
# AZURE_VNET_RESOURCE_GROUP: ""
# AZURE_VNET_NAME: ""
# AZURE_VNET_CIDR: "10.0.0.0/16"
# AZURE_CONTROL_PLANE_SUBNET_NAME: ""
# AZURE_CONTROL_PLANE_SUBNET_CIDR: "10.0.0.0/24"
# AZURE_CONTROL_PLANE_SUBNET_SECURITY_GROUP: ""
# AZURE_NODE_SUBNET_NAME: ""
# AZURE_NODE_SUBNET_CIDR: "10.0.1.0/24"
# AZURE_NODE_SUBNET_SECURITY_GROUP: ""
# AZURE_NODE_AZ: ""
# AZURE_NODE_AZ_1: ""
# AZURE_NODE_AZ_2: ""
# AZURE_CUSTOM_TAGS:
# AZURE_ENABLE_PRIVATE_CLUSTER: false
# AZURE_FRONTEND_PRIVATE_IP: "10.0.0.100"
# AZURE_ENABLE_CONTROL_PLANE_OUTBOUND_LB: false
# AZURE_ENABLE_NODE_OUTBOUND_LB: false
# AZURE_CONTROL_PLANE_OUTBOUND_LB_FRONTEND_IP_COUNT: 1
# AZURE_NODE_OUTBOUND_LB_FRONTEND_IP_COUNT: 1
# AZURE_NODE_OUTBOUND_LB_IDLE_TIMEOUT_IN_MINUTES: 4
# AZURE_IMAGE_ID:
# AZURE_IMAGE_RESOURCE_GROUP:
# AZURE_IMAGE_NAME:
# AZURE_IMAGE_SUBSCRIPTION_ID:
# AZURE_IMAGE_GALLERY:
# AZURE_IMAGE_PUBLISHER:
# AZURE_IMAGE_OFFER:
# AZURE_IMAGE_SKU:
# AZURE_IMAGE_THIRD_PARTY:
# AZURE_IMAGE_VERSION:
# AZURE_IDENTITY_NAME:
# AZURE_IDENTITY_NAMESPACE:
#! ---------------------------------------------------------------------
#! Common configuration
#! ---------------------------------------------------------------------
# TKG_CUSTOM_IMAGE_REPOSITORY: ""
# TKG_CUSTOM_IMAGE_REPOSITORY_SKIP_TLS_VERIFY: false
# TKG_CUSTOM_IMAGE_REPOSITORY_CA_CERTIFICATE: ""
# TKG_HTTP_PROXY: ""
# TKG_HTTPS_PROXY: ""
# TKG_NO_PROXY: ""
# TKG_PROXY_CA_CERT: ""
ENABLE_AUDIT_LOGGING: false
ENABLE_DEFAULT_STORAGE_CLASS: true
CLUSTER_CIDR: 100.96.0.0/11
SERVICE_CIDR: 100.64.0.0/13
# OS_NAME: ""
# OS_VERSION: ""
# OS_ARCH: ""
#! ---------------------------------------------------------------------
#! Autoscaler configuration
#! ---------------------------------------------------------------------
ENABLE_AUTOSCALER: false
# AUTOSCALER_MAX_NODES_TOTAL: "0"
# AUTOSCALER_SCALE_DOWN_DELAY_AFTER_ADD: "10m"
# AUTOSCALER_SCALE_DOWN_DELAY_AFTER_DELETE: "10s"
# AUTOSCALER_SCALE_DOWN_DELAY_AFTER_FAILURE: "3m"
# AUTOSCALER_SCALE_DOWN_UNNEEDED_TIME: "10m"
# AUTOSCALER_MAX_NODE_PROVISION_TIME: "15m"
# AUTOSCALER_MIN_SIZE_0:
# AUTOSCALER_MAX_SIZE_0:
# AUTOSCALER_MIN_SIZE_1:
# AUTOSCALER_MAX_SIZE_1:
# AUTOSCALER_MIN_SIZE_2:
# AUTOSCALER_MAX_SIZE_2:
#! ---------------------------------------------------------------------
#! Antrea CNI configuration
#! ---------------------------------------------------------------------
# ANTREA_NO_SNAT: false
# ANTREA_DISABLE_UDP_TUNNEL_OFFLOAD: false
# ANTREA_TRAFFIC_ENCAP_MODE: "encap"
# ANTREA_EGRESS_EXCEPT_CIDRS: ""
# ANTREA_NODEPORTLOCAL_ENABLED: true
# ANTREA_NODEPORTLOCAL_PORTRANGE: 61000-62000
# ANTREA_PROXY_ALL: false
# ANTREA_PROXY_NODEPORT_ADDRS: ""
# ANTREA_PROXY_SKIP_SERVICES: ""
# ANTREA_PROXY_LOAD_BALANCER_IPS: false
# ANTREA_FLOWEXPORTER_COLLECTOR_ADDRESS: "flow-aggregator.flow-aggregator.svc:4739:tls"
# ANTREA_FLOWEXPORTER_POLL_INTERVAL: "5s"
# ANTREA_FLOWEXPORTER_ACTIVE_TIMEOUT: "30s"
# ANTREA_FLOWEXPORTER_IDLE_TIMEOUT: "15s"
# ANTREA_KUBE_APISERVER_OVERRIDE:
# ANTREA_TRANSPORT_INTERFACE:
# ANTREA_TRANSPORT_INTERFACE_CIDRS: ""
# ANTREA_MULTICAST_INTERFACES: ""
# ANTREA_MULTICAST_IGMPQUERY_INTERVAL: "125s"
# ANTREA_TUNNEL_TYPE: geneve
# ANTREA_ENABLE_USAGE_REPORTING: false
# ANTREA_ENABLE_BRIDGING_MODE: false
# ANTREA_DISABLE_TXCHECKSUM_OFFLOAD: false
# ANTREA_DNS_SERVER_OVERRIDE: ""
# ANTREA_MULTICLUSTER_ENABLE: false
# ANTREA_MULTICLUSTER_NAMESPACE: ""
Azure 上の Tanzu Kubernetes Grid 管理クラスタとワークロード クラスタでは、クラスタの VNet とその VNet リソース グループに 2 つのネットワーク セキュリティ グループ (NSG) を定義する必要があります。
CLUSTER-NAME-controlplane-nsg
という名前の、クラスタの制御プレーン サブネットに関連付けられている NSGCLUSTER-NAME-node-nsg
という名前の、クラスタのワーカー ノード サブネットに関連付けられている NSG
ここで、CLUSTER-NAME
はクラスタの名前です。
ワークロード クラスタに既存の VNet を指定する場合は、Azure でこれらの NSG を作成する必要があります。ワークロード クラスタの既存の VNet は、構成ファイルに AZURE_VNET_NAME
で指定されます。
クラスタに既存の VNet を指定しない場合、展開プロセスによって新しい VNet と必要な NSG が作成されます。
クラスタの VNet、リソース グループ、およびサブネットを構成する方法については、「構成ファイル変数リファレンス」の Microsoft Azure の表を参照してください。
Tanzu CLI を使用すると、クラスタを展開せずに、クラスタ構成ファイルをクラスベースのワークロード クラスタの Kubernetes スタイルのオブジェクト仕様ファイルに変換できます。
tanzu cluster create
を使用して作成するクラスベースのクラスタごとにオブジェクト仕様ファイルを作成するには、auto-apply-generated-clusterclass-based-configuration
機能が Tanzu CLI の構成で false
に設定されていることを確認します。この機能は、デフォルトで 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
このオブジェクト仕様を使用して、「オブジェクト仕様からのクラスベースのクラスタの作成」の説明に従ってクラスタを展開できます。
「ワークロード クラスタの作成」に進みます。