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

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

この記事では、Ubuntu18.04LTSサーバーで2つのワーカーノードと1つのマスターノードを使用してKubernetesクラスターをセットアップする方法を説明します。 「kubeadm」を使用します 「クラスタを設定するためのツール。Kubeadmは、「 kubeadminit」を提供するために構築されたツールです。 "と"kubeadm join 「Kubernetesクラスタを作成するため。クラスタの作成に進む前に、いくつかの用語を簡単に理解しましょう。

    1. Docker:
      Dockerは、アプリケーションを開発、出荷、実行するためのオープンプラットフォームです。 Dockerを使用すると、アプリケーションをインフラストラクチャから分離できるため、ソフトウェアを迅速に提供できます。 Dockerを使用すると、アプリケーションを管理するのと同じ方法でインフラストラクチャを管理できます。
    2. 画像:
      イメージは、Dockerコンテナを作成するための手順が記載された読み取り専用のテンプレートです。多くの場合、画像は別の画像に基づいており、いくつかの追加のカスタマイズがあります
    3. コンテナ:
      コンテナは、イメージの実行可能なインスタンスです。 Docker APIまたはCLIを使用して、コンテナーを作成、開始、停止、移動、または削除できます。コンテナを1つ以上のネットワークに接続したり、ストレージを接続したり、現在の状態に基づいて新しいイメージを作成したりすることもできます。
    4. Kubernetes:
      Kubernetesは、アプリケーションのデプロイ、スケーリング、管理を自動化するためのオープンソースのコンテナオーケストレーションシステムです。
    5. ノード:
      ノードは、クラスタ内の1台のマシンを表します。
    6. ポッド:
      Aは、同じホストに一緒にデプロイされるコンテナーのグループです。 Kubernetesの基本的な実行ユニットです。 アプリケーション。
    7. 展開:
      導入 アプリケーションの複数のレプリカを実行し、障害が発生したり応答しなくなったりしたインスタンスを自動的に置き換えます。ポッドとレプリカセットの宣言型アップデートを提供します。
    8. レプリカセット:
      ポッドのレプリカをいくつ実行する必要があるかを確認します。レプリケーションコントローラーの代わりと見なすことができます。
  • レプリケーションコントローラー:
    これは、長時間実行されるポッドのスーパーバイザーです。レプリカと呼ばれる指定された数のポッドを起動し、それらが常に実行され続けるようにします。
  1. サービス:
    これは、ポッドの論理セットと、ポッドにアクセスするためのポリシーを定義する抽象化です。

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

前提条件
  1. 2GB以上のRAMと2つのCPUを搭載した3台のUbuntu18.04サーバー。
  2. 各サーバーで「sudo」アクセス権を持つシステムユーザー。
何をするか
  1. 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クラスターをセットアップする方法を学びました。手順を見逃さず、適切なインストールを行うと、クラスターを簡単に作成できることがわかりました。


Ubuntu
  1. Ubuntu18.04LTSのKubernetesクラスターにNginxロードバランシングをデプロイする方法

  2. ランチャーを使用してKubernetesクラスターをセットアップする

  3. Dockerを使用してRedisでNextcloudをセットアップする

  1. Terraformを使用してAWSでEC2インスタンスを作成します

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

  3. 2画面セットアップでUbuntuを使用していますか?

  1. Ubuntu18.04にKubernetesをインストールする方法

  2. Ubuntu 16で3つのノードを使用してMongoDBクラスターをセットアップするにはどうすればよいですか?

  3. AWS EC2 ubuntu インスタンスのディスク容量を増やす