Windows で Kubernetes クラスターを作成する

完了

Kubernetes クラスターで Contoso のワークロードを調整するための要件を理解しやすいよう、次の概要手順では、簡単な 2 ノードの Kubernetes クラスターを作成する方法について説明します。

Kubernetes クラスターを作成する

クラスターの実行に必要なコンピューターは、物理でも仮想でもよく、次の表に示すように構成します。

Computer コンピューター名 OS
管理者ワークステーション ADM Windows Server 2019
マスターつまりコントロール プレーン K8S-M Linux Ubuntu
ワーカー ノード K8S-W Windows Server 2019 Core

Kubernetes クラスターを作成するには、リモート デスクトップ プロトコル (RDP) または Secure Shell (SSH) を使用して、ADM をノード コンピューターに接続します。

  1. マスター ノードとワーカー ノードの両方で、通信に必要なネットワーク ポートを開きます。

  2. 各ノードにコンテナー ランタイムをインストールします。 次に例を示します。

    • ワーカー ノード (Windows ノード) の場合は、次の Windows PowerShell コマンドを使用して、Microsoft PowerShell (PS) ギャラリーから Docker Enterprise Edition (EE) をインストールします。

      # add the Docker EE repository from PSGallery
      Install-Module -Name DockerMsftProvider -Repository PSGallery -Force
      
      # install Docker EE from the PSGallery Docker repository
      Install-Package -Name docker -ProviderName DockerMsftProvider -Force
      
    • マスター ノード (Linux ノード) の場合は、Advanced Package Tool とターミナル ウィンドウでの適切な Bash コマンドを使用して、Docker Enterprise Edition (EE) をインストールします。

  3. ターミナル ウィンドウで Advanced Package Tool を使用して、kubeadmkubeletkubectl をインストールすることで、必要な Kubernetes パッケージをマスターに追加します。 次に、必要なコマンドの簡単なバージョンを示します。

    sudo apt-get install kubelet kubeadm kubectl
    
  4. ターミナル ウィンドウで次のコマンドを使用して、マスター上の kubeadm で Kubernetes クラスターを初期化します。

    kubeadm init
    
  5. クラスターが初期化されたら、ターミナル出力の指示に従って Kubernetes 構成 (config) ファイルをコピーします。

    • 後のステップで kubeadm join コマンドを使用してワーカー ノードをクラスターに追加するので、ターミナル出力の kubeadm join コマンドを記録しておきます。 次の図は、kubeadm init コマンドからのターミナル出力の例です。

    A screenshot of the terminal output from the command `kubeadm init` in a terminal window.

  6. Flannel などの適切なネットワーク プラグイン構成マニフェスト .yaml ファイルを追加することにより、クラスター用のポッド ネットワークをインストールします。 たとえば、マスターのターミナル ウィンドウで、次のコマンドを使用して、network-plug-in.yaml ファイルを追加します。

    kubectl apply -f <network-plug-in.yaml>
    
  7. Kubernetes config ファイルを K8S-M から K8S-W にコピーして、ワーカー ノードをクラスターに追加します。

  8. K8S-W のターミナル ウィンドウで、前に記録した kubeadm join コマンドを実行して、ワーカー ノードをクラスターに参加させます。 kubeadm join コマンドは次のようになります。

    kubeadm join --token <token> <control-plane-host>:<control-plane-port> --discovery-token-ca-cert-hash sha256:<hash>
    
  9. マスターのターミナル ウィンドウで、kubectl get nodes コマンドを実行してインストールを確認します。 kubectl get nodes コマンドからの出力は、次のようになります。

    user@K8S-M:~$ kubectl get nodes  
    
    NAME    STATUS   ROLES    AGE    VERSION  
    K8S-M   Ready    master   12m    v1.15.3  
    K8S-W   Ready    <none>   25m    v1.15.3