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 をノード コンピューターに接続します。
マスター ノードとワーカー ノードの両方で、通信に必要なネットワーク ポートを開きます。
各ノードにコンテナー ランタイムをインストールします。 次に例を示します。
ワーカー ノード (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) をインストールします。
ターミナル ウィンドウで Advanced Package Tool を使用して、kubeadm、kubelet、kubectl をインストールすることで、必要な Kubernetes パッケージをマスターに追加します。 次に、必要なコマンドの簡単なバージョンを示します。
sudo apt-get install kubelet kubeadm kubectl
ターミナル ウィンドウで次のコマンドを使用して、マスター上の kubeadm で Kubernetes クラスターを初期化します。
kubeadm init
クラスターが初期化されたら、ターミナル出力の指示に従って Kubernetes 構成 (config) ファイルをコピーします。
- 後のステップで
kubeadm join
コマンドを使用してワーカー ノードをクラスターに追加するので、ターミナル出力のkubeadm join
コマンドを記録しておきます。 次の図は、kubeadm init
コマンドからのターミナル出力の例です。
- 後のステップで
Flannel などの適切なネットワーク プラグイン構成マニフェスト .yaml ファイルを追加することにより、クラスター用のポッド ネットワークをインストールします。 たとえば、マスターのターミナル ウィンドウで、次のコマンドを使用して、network-plug-in.yaml ファイルを追加します。
kubectl apply -f <network-plug-in.yaml>
Kubernetes config ファイルを K8S-M から K8S-W にコピーして、ワーカー ノードをクラスターに追加します。
K8S-W のターミナル ウィンドウで、前に記録した
kubeadm join
コマンドを実行して、ワーカー ノードをクラスターに参加させます。kubeadm join
コマンドは次のようになります。kubeadm join --token <token> <control-plane-host>:<control-plane-port> --discovery-token-ca-cert-hash sha256:<hash>
マスターのターミナル ウィンドウで、
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