超強力チュートリアル!ベリーパイにマルチノードK 8 Sクラスタを構築!
4675 ワード
長い間、私はベリーパイにKubernetesクラスタを構築することに興味を持っていました.ネット上でいくつかのチュートリアルを見つけて、実操に従って、私はすでにKubernetesをベリーパイにインストールして、3つのPiクラスタの中で仕事をすることができます.しかし、masterノードではRAMとCPUに対する要求が私のベリーパイが提供できるものを上回っているため、Kubernetesタスクを実行する際の性能は優れていません.これにより、Kubernetesをその場でアップグレードすることは不可能になります.
そのため、業界で最も広く応用されているKubernetes管理プラットフォームの創設者Rancher Labsが軽量級のKubernetesリリース版K 3 sを発売したのを見て、資源が制限されているシーンのために設計され、ARMプロセッサに対して最適化され、ベリーパイでKubernetesを実行することができます.本稿では、K 3 sとベリーパイを使用してKubernetesクラスタを作成します.
前期準備
本明細書のKubernetesクラスタを作成するには、次の準備が必要です.少なくとも1つのベリーパイ(SDカードと電源アダプタ付き) イーサネットケーブル 私たちのすべてのベリーパイを接続するスイッチまたはルータ 私はネットワークからK 3 sをインストールするので、ルータを通じてインターネットにアクセスする必要があります.
クラスタアーキテクチャ
このクラスタでは、3つのベリーパイを使用します.最初のベリーパイはkmasterと命名し、静的IP 192.168.0.50を割り当てました(私のローカルネットワークは192.168.0.0/24です).最初のworkerノード(つまり2番目のPi)は、knode 1と呼ばれ、IP 192.168.0.51が割り当てられます.最後のworkerノードは、knode 2と呼ばれ、IP 192.168.0.52を割り当てます.
もちろん、もしあなたのネットワークが私と違っていたら、あなたはネットワークIPを得ることができます.本明細書でIPを使用する場所で自分の値を置き換えるだけでいいです.
各ノードをIPで参照する必要がなくなるように、ホスト名をPC上の/etc/hostsファイルに追加します.
マスターノードのインストール
マスターノードのインストールを開始する準備ができています.最初に、最新のRaspbianミラーをインストールします.以前、最新のミラーが必要な理由について詳しく書いたことがありますが、興味のある方はアクセスリンクでご覧ください.
https://carpie.net/articles/headless-pi-with-static-ip-wired-edition
次に、Raspbianのインストールを開始し、SSH serverを有効にし、kmasterのホスト名を設定し、静的IP 192.168.0.50を割り当てます.
Raspbianがmasterノードにインストールされている以上、master Piを有効にし、sshを介してアクセスします.
K 3 sをインストールする準備をします.マスターPiで実行:
コマンドの実行が完了すると、すでに設定されている単一ノードクラスタがあり、実行中です.チェックしてみましょう.相変わらずこのPiで、運行:
次のような内容が表示されます.
抽出join token
ワークノードのペアを追加したいです.これらのノードにK 3 sをインストールするにはjoin tokenが必要です.Join tokenはmasterノードのファイルシステムに存在します.コピーして保存し、後で取得できます.
workerノードのインストール
2つのworkerノードのSDカードを取得し、各ノードにRaspbianをインストールします.いずれかの場合、ホスト名はknode 1に設定され、IP 192.168.0.51が割り当てられる.別の場合、ホスト名はknode 2に設定され、IP 192.168.0.52が割り当てられる.では、K 3 sをインストールしましょう.
最初のworkerノードを起動し、sshを介してアクセスします.
このPiでは、以前のようにK 3 sをインストールしますが、ワークノードをインストールし、既存のクラスタを追加する必要があることを理解するために、インストーラに追加のパラメータを与えます.
PCからクラスタにアクセス
クラスタをチェックまたは変更するたびに、SSHを介してマスターノードにkubectlを実行する必要があります.これは煩わしいです.したがって、kubectlをPCに置くようにしますが、まずmasterノードから必要な構成情報を取得しましょう.SSH経由でkmasterに入り、運転:
構成情報をコピーしてPCに戻ります.構成のディレクトリを作成します.
コピーを保存する構成は
変更後:
安全のために、ファイルの読み取り/書き込み権限を自分自身に制限してください.
今、私たちのPCにkubectlをインストールしましょう(もしあなたがまだいなければ).KubernetesのWebサイトには、さまざまなプラットフォームでこの操作を実行する方法が記載されています.Linux Mint(Ubuntu派生バージョン)を実行しているため、Ubuntuの説明をここに表示します.
まだ詳しくない場合は、上記のコマンドでKubernetesにDebianウェアハウスを追加し、GPG鍵を取得してセキュリティを確保し、パッケージリストを更新してkubectlをインストールします.これで、kubectlの更新に関する通知を標準ソフトウェア更新メカニズムで取得します.
PCからクラスタをチェックして実行できます.
次のような内容が表示されます.
Congratulations!あなたは今すでに仕事をしている3つのノードのKubernetesクラスタを持っています!
K 3 sを使用した追加bonus
kubectl get pods--all-namespacesを実行すると、Traefikの追加podが表示されます.Treafikは逆エージェントと負荷イコライザであり,単一のエントリポイントからトラフィックをクラスタに導くことができる.KubernetesはもちろんTraefikもインストールできますが、デフォルトでは提供されていません.だからK 3 sではデフォルトでTraefikが提供されているのは素晴らしいデザインです!
そのため、業界で最も広く応用されているKubernetes管理プラットフォームの創設者Rancher Labsが軽量級のKubernetesリリース版K 3 sを発売したのを見て、資源が制限されているシーンのために設計され、ARMプロセッサに対して最適化され、ベリーパイでKubernetesを実行することができます.本稿では、K 3 sとベリーパイを使用してKubernetesクラスタを作成します.
前期準備
本明細書のKubernetesクラスタを作成するには、次の準備が必要です.
クラスタアーキテクチャ
このクラスタでは、3つのベリーパイを使用します.最初のベリーパイはkmasterと命名し、静的IP 192.168.0.50を割り当てました(私のローカルネットワークは192.168.0.0/24です).最初のworkerノード(つまり2番目のPi)は、knode 1と呼ばれ、IP 192.168.0.51が割り当てられます.最後のworkerノードは、knode 2と呼ばれ、IP 192.168.0.52を割り当てます.
もちろん、もしあなたのネットワークが私と違っていたら、あなたはネットワークIPを得ることができます.本明細書でIPを使用する場所で自分の値を置き換えるだけでいいです.
各ノードをIPで参照する必要がなくなるように、ホスト名をPC上の/etc/hostsファイルに追加します.
echo -e "192.168.0.50\tkmaster" | sudo tee -a /etc/hosts
echo -e "192.168.0.51\tknode1" | sudo tee -a /etc/hosts
echo -e "192.168.0.52\tknode2" | sudo tee -a /etc/hosts
マスターノードのインストール
マスターノードのインストールを開始する準備ができています.最初に、最新のRaspbianミラーをインストールします.以前、最新のミラーが必要な理由について詳しく書いたことがありますが、興味のある方はアクセスリンクでご覧ください.
https://carpie.net/articles/headless-pi-with-static-ip-wired-edition
次に、Raspbianのインストールを開始し、SSH serverを有効にし、kmasterのホスト名を設定し、静的IP 192.168.0.50を割り当てます.
Raspbianがmasterノードにインストールされている以上、master Piを有効にし、sshを介してアクセスします.
ssh pi@kmaster
K 3 sをインストールする準備をします.マスターPiで実行:
curl -sfL https://get.k3s.io | sh -
コマンドの実行が完了すると、すでに設定されている単一ノードクラスタがあり、実行中です.チェックしてみましょう.相変わらずこのPiで、運行:
sudo kubectl get nodes
次のような内容が表示されます.
NAME STATUS ROLES AGE VERSION
kmaster Ready master 2m13s v1.14.3-k3s.1
抽出join token
ワークノードのペアを追加したいです.これらのノードにK 3 sをインストールするにはjoin tokenが必要です.Join tokenはmasterノードのファイルシステムに存在します.コピーして保存し、後で取得できます.
sudo cat /var/lib/rancher/k3s/server/node-token
workerノードのインストール
2つのworkerノードのSDカードを取得し、各ノードにRaspbianをインストールします.いずれかの場合、ホスト名はknode 1に設定され、IP 192.168.0.51が割り当てられる.別の場合、ホスト名はknode 2に設定され、IP 192.168.0.52が割り当てられる.では、K 3 sをインストールしましょう.
最初のworkerノードを起動し、sshを介してアクセスします.
ssh pi@knode1
このPiでは、以前のようにK 3 sをインストールしますが、ワークノードをインストールし、既存のクラスタを追加する必要があることを理解するために、インストーラに追加のパラメータを与えます.
curl -sfL http://get.k3s.io | K3S_URL=https://192.168.0.50:6443 \
K3S_TOKEN=join_token_we_copied_earlier sh -
join_token_we_copied_earlier
は、前のセクションから抽出されたjoin tokenを使用して置き換えられる.knode 2の手順を繰り返します.PCからクラスタにアクセス
クラスタをチェックまたは変更するたびに、SSHを介してマスターノードにkubectlを実行する必要があります.これは煩わしいです.したがって、kubectlをPCに置くようにしますが、まずmasterノードから必要な構成情報を取得しましょう.SSH経由でkmasterに入り、運転:
sudo cat /etc/rancher/k3s/k3s.yaml
構成情報をコピーしてPCに戻ります.構成のディレクトリを作成します.
mkdir ~/.kube
コピーを保存する構成は
~/.kube/config
です.ファイルを編集して変更します.server: https://localhost:6443
変更後:
server: https://kmaster:6443
安全のために、ファイルの読み取り/書き込み権限を自分自身に制限してください.
chmod 600 ~/.kube/config
今、私たちのPCにkubectlをインストールしましょう(もしあなたがまだいなければ).KubernetesのWebサイトには、さまざまなプラットフォームでこの操作を実行する方法が記載されています.Linux Mint(Ubuntu派生バージョン)を実行しているため、Ubuntuの説明をここに表示します.
sudo apt update && sudo apt install -y apt-transport-https
curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -
echo "deb https://apt.kubernetes.io/ kubernetes-xenial main" | \
sudo tee -a /etc/apt/sources.list.d/kubernetes.list
sudo apt update && sudo apt install kubectl
まだ詳しくない場合は、上記のコマンドでKubernetesにDebianウェアハウスを追加し、GPG鍵を取得してセキュリティを確保し、パッケージリストを更新してkubectlをインストールします.これで、kubectlの更新に関する通知を標準ソフトウェア更新メカニズムで取得します.
PCからクラスタをチェックして実行できます.
kubectl get nodes
次のような内容が表示されます.
NAME STATUS ROLES AGE VERSION
kmaster Ready master 12m v1.14.3-k3s.1
knode1 Ready worker 103s v1.14.3-k3s.1
knode1 Ready worker 103s v1.14.3-k3s.1
Congratulations!あなたは今すでに仕事をしている3つのノードのKubernetesクラスタを持っています!
K 3 sを使用した追加bonus
kubectl get pods--all-namespacesを実行すると、Traefikの追加podが表示されます.Treafikは逆エージェントと負荷イコライザであり,単一のエントリポイントからトラフィックをクラスタに導くことができる.KubernetesはもちろんTraefikもインストールできますが、デフォルトでは提供されていません.だからK 3 sではデフォルトでTraefikが提供されているのは素晴らしいデザインです!