Kubernetes · 1 min read · Nov 03, 2025

AWS EC2インスタンス上にUbuntuを使用してkubeadmでKubernetesクラスターをセットアップする

この記事では、Ubuntu 18.04 LTSサーバー上に2つのワーカーノードと1つのマスターノードを持つKubernetesクラスターをセットアップする方法を見ていきます。クラスターのセットアップには「kubeadm」ツールを使用します。Kubeadmは、Kubernetesクラスターを作成するための「kubeadm init」および「kubeadm join」を提供するために構築されたツールです。クラスターの作成に進む前に、いくつかの用語を簡単に理解しましょう。

  1. Docker:
    Dockerは、アプリケーションの開発、配送、実行のためのオープンプラットフォームです。Dockerを使用すると、アプリケーションをインフラストラクチャから分離できるため、ソフトウェアを迅速に提供できます。Dockerを使用すると、アプリケーションを管理するのと同じ方法でインフラストラクチャを管理できます。
  2. イメージ:
    イメージは、Dockerコンテナを作成するための指示を含む読み取り専用のテンプレートです。通常、イメージは別のイメージに基づいており、いくつかの追加のカスタマイズが施されています。
  3. コンテナ:
    コンテナは、イメージの実行可能なインスタンスです。Docker APIまたはCLIを使用して、コンテナを作成、開始、停止、移動、または削除できます。コンテナを1つ以上のネットワークに接続したり、ストレージをアタッチしたり、現在の状態に基づいて新しいイメージを作成したりできます。
  4. Kubernetes:
    Kubernetesは、アプリケーションのデプロイ、スケーリング、および管理を自動化するためのオープンソースのコンテナオーケストレーションシステムです。
  5. ノード:
    ノードは、クラスター内の単一のマシンを表します。
  6. ポッド:
    ポッドは、同じホスト上に一緒にデプロイされるコンテナのグループです。これはKubernetesアプリケーションの基本的な実行単位です。
  7. デプロイメント:
    デプロイメントは、アプリケーションの複数のレプリカを実行し、失敗したり応答しなくなったインスタンスを自動的に置き換えます。ポッドとレプリカセットの宣言的な更新を提供します。
  8. レプリカセット:
    レプリカセットは、ポッドのいくつのレプリカが実行されるべきかを保証します。これは、レプリケーションコントローラーの代替と見なすことができます。
  • レプリケーションコントローラー:
    これは、長時間実行されるポッドのスーパーバイザーです。指定された数のポッド(レプリカと呼ばれる)を起動し、それらが常に実行され続けることを確認します。
  1. サービス:
    サービスは、ポッドの論理的なセットとそれにアクセスするためのポリシーを定義する抽象化です。

APIサーバー、etcd、コントローラーマネージャー、スケジューラーはマスターのコンポーネントであり、Docker、Kubeletサービス、Kubernetesプロキシサービスはワーカーノードのコンポーネントです。これらのコンポーネントについては、この文書では説明しません。これらのコンポーネントについて知りたい場合は、こちらのKubernetesの公式ページを訪問してください。

前提条件

  1. 最低2GBのRAMと2つのCPUを持つ3つのUbuntu 18.04サーバー。
  2. 各サーバーで「sudo」アクセスを持つシステムユーザー。

何をするか

  1. kubeadmを使用してKubernetesクラスターをセットアップする

kubeadmを使用してKubernetesクラスターをセットアップする

ここでは、3つのUbuntu 18.04 LTSサーバーがあります。

サーバー1= node1
サーバー2= node2
サーバー3= master

実際のインストールに進む前に、サーバーのホスト名を変更しましょう。

各サーバーでホスト名を設定するために、以下のコマンドを使用できます。各サーバーで以下のコマンドを実行した後、サーバーに再ログインして新しいホスト名を取得します。

sudo hostnamectl set-hostname "master"  
sudo hostnamectl set-hostname "node1"  
sudo hostnamectl set-hostname "node2"

以下の手順に従って、動作するKubernetesクラスターを立ち上げます。

Dockerのgpgキーを取得する (すべてのノードで以下のコマンドを実行) :

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

Dockerリポジトリを追加する (すべてのノードで以下のコマンドを実行):

sudo add-apt-repository    "deb [arch=amd64] https://download.docker.com/linux/ubuntu \  
   $(lsb_release -cs) \  
   stable"

Kubernetesのgpgキーを取得する (すべてのノードで以下のコマンドを実行):

curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -

Kubernetesリポジトリを追加する (すべてのノードで以下のコマンドを実行):

cat << EOF | sudo tee /etc/apt/sources.list.d/kubernetes.list  
deb https://apt.kubernetes.io/ kubernetes-xenial main  
EOF

パッケージを更新する (すべてのノードで以下のコマンドを実行):

sudo apt-get update

Docker、kubelet、kubeadm、およびkubectlをインストールする (すべてのノードで以下のコマンドを実行):

sudo apt-get install -y docker-ce=18.06.1~ce~3-0~ubuntu kubelet=1.15.7-00 kubeadm=1.15.7-00 kubectl=1.15.7-00

*現在のバージョンで保持する (すべてのノードで以下のコマンドを実行)*:

sudo apt-mark hold docker-ce kubelet kubeadm kubectl

iptablesルールをsysctl.confに追加する (すべてのノードで以下のコマンドを実行):

echo "net.bridge.bridge-nf-call-iptables=1" | sudo tee -a /etc/sysctl.conf

iptablesを即座に有効にする (すべてのノードで以下のコマンドを実行):

sudo sysctl -p

マスターで:

クラスターを初期化する (マスターノードでのみ以下のコマンドを実行):

sudo kubeadm init --pod-network-cidr=10.244.0.0/16

ローカルkubeconfigを設定する (マスターノードでのみ以下のコマンドを実行):

mkdir -p $HOME/.kube  
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config  
sudo chown $(id -u):$(id -g) $HOME/.kube/config

Flannel CNIネットワークオーバーレイを適用する (マスターノードでのみ以下のコマンドを実行):

sudo kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml

Node1およびNode2で:

ワーカーノードをクラスターに参加させる (Node1およびNode2でのみ以下のコマンドを実行):

sudo kubeadm join 172.31.4.161:6443 --token 0y52t6.ffsj8jkjfcl1sq8h \  
   --discovery-token-ca-cert-hash sha256:7aa1825042d19d3e567f7e4b447634e942fe9ed7f18f78464a9c05f451551ed5

ワーカーノードがクラスターに正常に参加したことを確認する (マスターノードで以下のコマンドを実行):

kubectl get nodes

結論:

この記事では、kubeadmツールを使用してKubernetesクラスターをセットアップする方法を学びました。手順を見逃さず、適切にインストールを行えば、クラスターを簡単に作成できることがわかりました。

Share: X/Twitter LinkedIn

新しい投稿を受信箱で受け取る

スパムはありません。いつでも購読を解除できます。