この記事では、Ubuntu18.04LTSサーバーで2つのワーカーノードと1つのマスターノードを使用してKubernetesクラスターをセットアップする方法を説明します。 「kubeadm」を使用します 「クラスタを設定するためのツール。Kubeadmは、「 kubeadminit」を提供するために構築されたツールです。 "と"kubeadm join 「Kubernetesクラスタを作成するため。クラスタの作成に進む前に、いくつかの用語を簡単に理解しましょう。
- Docker:
Dockerは、アプリケーションを開発、出荷、実行するためのオープンプラットフォームです。 Dockerを使用すると、アプリケーションをインフラストラクチャから分離できるため、ソフトウェアを迅速に提供できます。 Dockerを使用すると、アプリケーションを管理するのと同じ方法でインフラストラクチャを管理できます。 - 画像:
イメージは、Dockerコンテナを作成するための手順が記載された読み取り専用のテンプレートです。多くの場合、画像は別の画像に基づいており、いくつかの追加のカスタマイズがあります - コンテナ:
コンテナは、イメージの実行可能なインスタンスです。 Docker APIまたはCLIを使用して、コンテナーを作成、開始、停止、移動、または削除できます。コンテナを1つ以上のネットワークに接続したり、ストレージを接続したり、現在の状態に基づいて新しいイメージを作成したりすることもできます。 - Kubernetes:
Kubernetesは、アプリケーションのデプロイ、スケーリング、管理を自動化するためのオープンソースのコンテナオーケストレーションシステムです。 - ノード:
ノードは、クラスタ内の1台のマシンを表します。
- ポッド:
Aは、同じホストに一緒にデプロイされるコンテナーのグループです。 Kubernetesの基本的な実行ユニットです。 アプリケーション。 - 展開:
導入 アプリケーションの複数のレプリカを実行し、障害が発生したり応答しなくなったりしたインスタンスを自動的に置き換えます。ポッドとレプリカセットの宣言型アップデートを提供します。 - レプリカセット:
ポッドのレプリカをいくつ実行する必要があるかを確認します。レプリケーションコントローラーの代わりと見なすことができます。
- レプリケーションコントローラー:
これは、長時間実行されるポッドのスーパーバイザーです。レプリカと呼ばれる指定された数のポッドを起動し、それらが常に実行され続けるようにします。
- サービス:
これは、ポッドの論理セットと、ポッドにアクセスするためのポリシーを定義する抽象化です。
APIサーバー、etcd、コントローラーマネージャー、スケジューラはマスターとDockerのコンポーネントであり、KubeletサービスとKubernetesプロキシサービスはワーカーノードのコンポーネントです。このドキュメントでは、これらのコンポーネントについては説明しません。これらのコンポーネントについて知りたい場合は、Kubernetesの公式ページにアクセスしてください。
- 2GB以上のRAMと2つのCPUを搭載した3台のUbuntu18.04サーバー。
- 各サーバーで「sudo」アクセス権を持つシステムユーザー。
- kubeadmを使用してKubernetesクラスターをセットアップする
kubeadmを使用してKubernetesクラスターをセットアップする
ここで
3つのUbuntu18.04LTSサーバーがあります。
サーバー1=ノード1
サーバー2=ノード2
サーバー3=マスター
実際のインストールに進む前に、サーバーのホスト名を変更しましょう。
次のコマンドを使用して、各サーバーにホスト名を設定できます。各サーバーで次のコマンドを実行した後、サーバーに再ログインして、サーバーが新しいホスト名を取得できるようにします。
sudo hostnamectl set-hostname "master"
sudo hostnamectl set-hostname "node1"
sudo hostnamectl set-hostname "node2"
下記の手順に従って、動作するKubernetsクラスタを起動します。
Dockergpgキーを取得します (すべてのノードで次のコマンドを実行します) :
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 <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
FlannelCNIネットワークオーバーレイを適用する(マスターノードでのみ次のコマンドを実行する ) :
sudo kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
ノード1とノード2:
ワーカーノードをクラスターに参加させます(次のコマンドを実行します Node1とNode2のみ) :
sudo kubeadm join 172.31.4.161:6443 --token 0y52t6.ffsj8jkjfcl1sq8h \
--discovery-token-ca-cert-hash sha256:7aa1825042d19d3e567f7e4b447634e942fe9ed7f18f78464a9
ワーカーノードがクラスターに正常に参加していることを確認しますマスターノードで次のコマンドを実行します ) :
kubectlgetノード
結論:
この記事では、kubeadmツールを使用してKubernetesクラスターをセットアップする方法を学びました。手順を見逃さず、適切なインストールを行うと、クラスターを簡単に作成できることがわかりました。
Apache2とUbuntu20.04でのLetsEncryptを使用したMagentoEコマースプラットフォームのインストール Ubuntu20.04にElkArteフォーラムソフトウェアをインストールする方法Ubuntu