GNU/Linux >> Linux の 問題 >  >> Ubuntu

Ubuntu 20.04 FocalFossaLinuxにKubernetesをインストールする方法

Kubernetesは、コンテナオーケストレーションの主要なソフトウェアです。 Kubernetesは、コンテナ化されたアプリケーションを実行するためのホストのセットであるクラスタを管理することで機能します。 Kubernetesクラスタを作成するには、少なくとも2つのノード(マスターノード)が必要です。 およびワーカーノード 。もちろん、必要な数のワーカーノードを追加することでクラスターを拡張できます。

このガイドでは、2つのノードで構成されるKubernetesクラスターをデプロイします。どちらもUbuntu 20.04FocalFossaを実行しています。クラスタに2つのノードを含めることは、可能な限り最も基本的な構成ですが、必要に応じて、その構成を拡張し、ノードを追加することができます。

このチュートリアルでは、次のことを学びます。

  • Dockerのインストール方法
  • Kubernetesのインストール方法
  • マスターノードとワーカーノードを構成する方法
  • ワーカーノードをKubernetesクラスターに参加させる方法
  • KubernetesクラスターにNginx(またはコンテナー化されたアプリ)をデプロイする方法

Ubuntu 20.04FocalFossaへのKubernetesのデプロイ

システム ソフトウェア その他 規約
ソフトウェア要件とLinuxコマンドラインの規則
カテゴリ 使用する要件、規則、またはソフトウェアバージョン
Ubuntu20.04をインストールまたはUbuntu20.04FocalFossaをアップグレード
Kubernetes
rootまたはsudoを介したLinuxシステムへの特権アクセス コマンド。
–指定されたLinuxコマンドは、rootユーザーとして直接、またはsudoを使用して、root権限で実行する必要があります。 コマンド
$ –特定のLinuxコマンドを通常の非特権ユーザーとして実行する必要があります

シナリオ

飛び込む前に、シナリオの詳細を確立しましょう。上記のように、クラスターには2つのノードがあり、両方のノードでUbuntu 20.04FocalFossaが実行されています。 1つはマスターノードになります ホスト名はkubernetes-masterで簡単に識別できます 。 2番目のノードはワーカーノードになります ホスト名はkubernetes-workerです。 。

マスターノードはKubernetesクラスターをデプロイし、ワーカーノードは単にクラスターに参加します。 Kubernetesクラスターはコンテナー化されたソフトウェアを実行するように設計されているため、クラスターを起動して実行した後、概念実証としてNginxサーバーコンテナーをデプロイします。

Dockerをインストールする

KubernetesはDockerに依存しているため、両方のノードにDockerをインストールする必要があります。ターミナルを開き、マスターノードとワーカーノードの両方で次のコマンドを入力して、Dockerをインストールします。

 $ sudo apt update $ sudo apt install docker.io 

Dockerのインストールが完了したら、次のコマンドを使用してサービスを開始し、再起動するたびにサービスが自動的に開始されるようにします。

 $ sudo systemctl start docker $ sudo systemctl enable docker 

Kubernetesをインストールする

これで、Kubernetesをインストールする準備が整いました。これまでの他のすべてのコマンドと同様に、両方のノードでこれを実行していることを確認してください。 Kubernetesマスターとワーカーに、最初にapt-transport-httpsをインストールします パッケージ。これにより、Ubuntuのリポジトリでhttpとhttpsを使用できるようになります。 curlをインストールする良い機会でもあります すぐに必要になるので:

 $ sudo apt install apt-transport-https curl 

次に、Kubernetes署名キーを両方のシステムに追加します。

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

次に、Kubernetesパッケージリポジトリを追加します。この記事の執筆時点では、Ubuntu 16.04XenialXerusが利用可能な最新のKubernetesリポジトリであることに注意してください。これは最終的にUbuntu20.04Focal Fossaに取って代わられるはずであり、次のコマンドはxenialから更新できます。 focal

 $ sudo apt-add-repository "deb http://apt.kubernetes.io/ kubernetes-xenial main" 

これで、Kubernetesをインストールできます:

 $ sudo apt install kubeadm kubelet kubectl kubernetes-cni 

スワップメモリ​​を無効にする

システムがスワップメモリ​​を使用している場合、Kubernetesは機能を拒否します。先に進む前に、次のコマンドでマスターノードとワーカーノードのスワップメモリ​​が無効になっていることを確認してください。

 $ sudo swapoff -a 

このコマンドは、システムが再起動するまでスワップメモリ​​を無効にするため、この変更を継続するには、nanoまたはお気に入りのテキストエディタを使用してこのファイルを開きます。

 $ sudo nano / etc / fstab 

このファイル内で、/swapfileをコメントアウトします #を前に付けて行 以下に示すように、記号。次に、このファイルを閉じて変更を保存します。

スワップファイル行をコメントアウトするには、#を追加します

ホスト名を設定

次に、すべてのノードに一意のホスト名があることを確認します。このシナリオでは、ホスト名kubernetes-masterを使用しています およびkubernetes-worker ホストを簡単に区別し、その役割を特定します。ホスト名を変更する必要がある場合は、次のコマンドを使用します。

 $ sudo hostnamectl set-hostname kubernetes-master 

そしてワーカーノード:

 $ sudo hostnamectl set-hostname kubernetes-worker 

新しいホスト名を開くまで、ターミナルでホスト名が変更されたことに気付くことはありません。最後に、すべてのノードに正確な日時があることを確認してください。そうしないと、無効なTLS証明書で問題が発生します。

Kubernetesマスターサーバーを初期化する

これで、Kubernetesマスターノードを初期化する準備が整いました。これを行うには、マスターノードで次のコマンドを入力します。

 kubernetes-master:〜$ sudo kubeadm init 

Ubuntu20.04マスターノード上のKubernetesが初期化されました

これで、Kubernetesマスターノードが初期化されました。出力は、kubeadm joinを提供します。 後でワーカーノードをマスターノードに結合するために使用する必要があるコマンド。したがって、後で使用するためにこのコマンドに注意してください。

上記の出力は、Kubernetesクラスターの使用を開始するために通常のユーザーとしていくつかのコマンドを実行することもアドバイスしています。マスターノードで次の3つのコマンドを実行します。

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

ポッドネットワークを導入する

次のステップは、ポッドネットワークを展開することです。ポッドネットワークはホスト間の通信に使用され、Kubernetesクラスターが正しく機能するために必要です。このために、フランネルポッドネットワークを使用します。マスターノードで次の2つのコマンドを発行します。

 kubernetes-master:〜$ kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.ymlkubernetes-master:~$ kubectl apply -f https:// raw .githubusercontent.com / coreos / flannel / master / Documentation / k8s-manifests / kube-flannel-rbac.yml 

環境によっては、フランネルネットワーク全体が起動するまでに数秒または1分かかる場合があります。 kubectlを使用できます すべての準備が整っていることを確認するコマンド:

 kubernetes-master:〜$ kubectl get pods --all-namespaces 

ポッドネットワークが正常に展開されました

すべての[ステータス]列に[実行中]と表示されている場合は、すべての展開が完了し、準備が整っていることを示しています。

Kubernetesクラスターに参加する

これで、クラスターでワーカーノードを参加させる準備が整いました。 kubeadm joinを使用します Kubernetesクラスターに参加するためにKubernetesマスターノード初期化出力から以前に取得したコマンド:

 kubernetes-worker:〜$ sudo kubeadm join 192.168.1.220:6443 --token 1exb8s.2t4k3b5syfc3jfmo --discovery-token-ca-cert-hash sha256:72ad481cee4918cf2314738419356c9a402fb609263adad48c13797d0c  

ワーカーノードをKubernetesクラスターに参加させる

Kubernetesマスターノードに戻り、kubernetes-workerであることを確認します これで、次のコマンドを使用してKubernetesクラスターの一部になります:

 kubernetes-master:〜$kubectlgetノード

現在Kubernetesクラスタにあるノードを表示します

Kubernetesクラスターへのサービスのデプロイ

これで、Kubernetesクラスターにサービスをデプロイする準備が整いました。この例では、概念実証としてNginxサーバーを新しいクラスターにデプロイします。マスターノードで次の2つのコマンドを実行します。

 kubernetes-master:〜$ kubectl run --image =nginx nginx-server --port =80 --env ="DOMAIN =cluster" kubernetes-master:〜$kubectl公開展開nginx-server--port =80 --name =nginx-http 

これで、ワーカーノードにデプロイされた新しいnginxdockerコンテナーが表示されます。

 kubernetes-worker:〜$ sudo docker ps 

新しいDockerNginxコンテナがKubernetesワーカーノードで稼働しています

Kubernetesメーザーノードから発行された次のコマンドを使用して、クラスターで実行されているすべての利用可能なサービスの実行リストを確認できます。

 kubernetes-master:〜$ kubectl get svc 

Kubernetesクラスターで実行されているコンテナー化されたサービスを表示します

結論

この記事では、Ubuntu 20.04FocalFossaにコンテナー化されたアプリケーションをデプロイするようにKubernetesをセットアップする方法を学びました。マスターとワーカーの2つのホストで構成される基本的なクラスターをセットアップしますが、必要に応じて、さらに多くのワーカーノードに拡張できます。

Dockerやその他の前提条件を構成する方法と、概念実証として新しいクラスターにNginxサーバーをデプロイする方法を確認しました。もちろん、これと同じ構成を使用して、コンテナー化されたアプリケーションをいくつでもデプロイできます。


Ubuntu
  1. docker-composeをUbuntu20.04FocalFossaLinuxにインストールする方法

  2. Ubuntu 20.04 FocalFossaLinuxにLaTexをインストールする方法

  3. Ubuntu 20.04 FocalFossaLinuxにMATLABをインストールする方法

  1. Ubuntu 20.04 FocalFossaLinuxにフォントをインストールする方法

  2. Ubuntu 20.04 FocalFossaLinuxにTelegramをインストールする方法

  3. Ubuntu 20.04 FocalFossaLinuxにKodiをインストールする方法

  1. Ubuntu 20.04 FocalFossaLinuxにViberをインストールする方法

  2. Ubuntu 20.04 FocalFossaLinuxにRStudioをインストールする方法

  3. Ubuntu 20.04 FocalFossaLinuxにYarnをインストールする方法