Google Kubernetes Engine は、Docker コンテナを実行するための強力なクラスタ管理とオーケストレーションのシステムです。コンテナをスケジュールしてクラスタを作成し、定義された要件(CPU やメモリなど)に基づいて自動的に管理します。オープンソースの Kubernetes システム上に構築されており、オンプレミス、ハイブリッド、パブリック クラウド インフラストラクチャのいずれのモデルでも使用できる柔軟性を備えています。
GKE のコマンドレットの詳細については、Tools for PowerShell リファレンスをご覧ください。GKE の全般的な情報については、GKE の概要をご覧ください。
GKE クラスタの作成と更新
クラスタを作成するには、まず New-GkeNodeConfig
コマンドレットを使用して NodeConfig
オブジェクトを作成します。
その後、NodeConfig
オブジェクトを Add-GkeCluster
コマンドレットに渡すことができます。次に、ノードプールが NodeConfig
オブジェクトから設定された構成を持つクラスタを作成します。
# Creates a GKE Node Config with image type CONTAINER_VM # and 20 GB disk size for each node. $nodeConfig = New-GkeNodeConfig -DiskSizeGb 20 ` -ImageType CONTAINER_VM # Creates a cluster named "my-cluster" in the default zone of the # default project using config $nodeConfig and network "my-network". Add-GkeCluster -NodeConfig $nodeConfig ` -ClusterName "my-cluster" ` -Network "my-network"
NodeConfig
オブジェクトを渡す代わりに、Add-GkeCluster
コマンドレットで提供されるパラメータを使用してクラスタを作成することもできます(NodeConfig
オブジェクトはコマンドレットによって内部的に作成されます)。
# Creates a cluster named "my-cluster" with description "my new cluster" # in the default zone of the default project using machine type # "n1-standard-4" for each Compute Engine in the cluster. # The cluster will use the subnetwork "my-subnetwork". # The cluster's nodes will have autoupgrade enabled. # The cluster will also autoscale its node pool to a maximum of 2 nodes. Add-GkeCluster -MachineType "n1-standard-4" ` -ClusterName "my-cluster" ` -Description "My new cluster" ` -Subnetwork "my-subnetwork" ` -EnableAutoUpgrade ` -MaximumNodesToScaleTo 2
Set-GkeCluster
コマンドレットを使用してクラスタを更新できます。一度に更新できるのは、クラスタの 1 つのプロパティのみです。
# Sets additional zones of cluster "my-cluster" in zone "asia-east1-a"
# to zones "asia-east1-b" and "asia-east1-c". This means the clusters will
# have nodes created in these zones. The primary zone
# ("asia-east1-a" in this case) will be added to the
# AdditionalZone
array by the cmdlet.
Set-GkeCluster -ClusterName "my-cluster" `
-Zone "asia-east1-a" `
-AdditionalZone "asia-east1-b", "asia-east1-c"
使用可能なクラスタを一覧表示するには、Get-GkeCluster
コマンドレットを使用します。
# Lists all container clusters in the default project. Get-GkeCluster # List all container clusters in zone "us-central1-a" # of the default project. Get-GkeCluster -Zone "us-central1-a"
ノードプールの作成と維持
ノードプールとは、1 つのクラスタ内で、すべてが同じように構成されたマシンのサブセットです。コンテナ クラスタ内のノードはすべて同一になりますが、ノードプールでは、クラスタ内に異なる構成を持ったマシンのプールを作成できます。たとえば、ローカル SSD を持つノードやインスタンス サイズの大きいノードが存在するプールをクラスタ内に作成できます。そのため、ノードプールはクラスタ内のインスタンス プロファイルをカスタマイズする際に役立ちます。
クラスタにノードプールを追加するには、まず New-GkeNodePool
コマンドレットを使用して NodePool
オブジェクトを作成します。次に、Add-GkeNodePool
コマンドレットを呼び出して NodePool
オブジェクトをクラスタに追加します。
# Creates a node pool named "my-nodepool" with image type # CONTAINER_VM for each node. $nodePool = New-GkeNodePool -NodePoolName "my-nodepool" ` -ImageType CONTAINER_VM # Adds the pool to cluster "my-cluster". Add-GkeNodePool -NodePool $nodePool -Cluster "my-cluster"
Get-GkeNodePool
コマンドレットを使用してクラスタ内のすべてのノードプールを一覧表示できます。
# Lists all node pools in cluster "my-cluster" in the default project. Get-GkeNodePool -ClusterName "my-cluster"
Remove-GkeCluster
コマンドレットを使用して、クラスタからノードプールを削除できます。
# Removes the node pool "my-nodepool" in cluster "my-cluster" # in the zone "us-west1-b" of the default project. Remove-GkeCluster -ClusterName "my-cluster" ` -Zone "us-west1-b" ` -NodePoolName "my-nodepool"