Kubernetesは 無料のオープンソースコンテナ管理システム それが提供する ホストコンピューターのグループ全体でアプリケーションコンテナーの展開、スケーリング、および操作を自動化するためのプラットフォーム。
Kubernetesを使用すると、オンプレミス、パブリック、ハイブリッドのクラウドインフラストラクチャを自由に活用して、組織のデプロイタスクを実行できます。
Ubuntuおよび派生物へのKubernetesのインストール
実際のインストールでは、 この記事で形成するXNUMXノードクラスターを使用します。これは、マスターノードとスレーブノードで構成されます。
両方のノードにKubernetesをインストールする必要があります。 最初に行うことは、両方にdockerをインストールすることです。これには、次のコマンドを実行する必要があります。
sudo apt install docker.io
Dockerがインストールされていることを確認するには、 両方のノードで次のコマンドを実行できます。
docker --version
現在 両方のノードでDockerを有効にすることに進みましょう。
sudo systemctl enable docker
次のステップは、両方のノードにKubernetesキーを追加することです。これは、次のコマンドで行います。
curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add
次のステップは、次のリポジトリを両方のシステムに追加することです。
sudo apt-add-repository "deb http://apt.kubernetes.io/ kubernetes-xenial main"
インストールプロセスの最後のステップは、次のコマンドを使用して両方のノードにKubeadmをインストールすることです。
sudo apt install kubeadm
次のコマンドを使用して、Kubeadmのバージョン番号を確認し、インストールを確認することもできます。
kubeadm version
Kubernetesのデプロイ
ここで、システムにKubernetesデプロイメントを実装するには、両方のノードでスワップメモリ(実行中の場合)を無効にする必要があります
両方のノードでスワップメモリを無効にする必要がありますKubernetesは、スワップメモリを使用するシステムでは正しく機能しないためです。
これを行うには、次を実行します。
sudo swapoff -a
次のステップは マスターノードで次のコマンドを実行して、一意のホスト名を指定します。
sudo hostnamectl set-hostname master-node
スレーブノードの場合は、次のように入力する必要があります。
sudo hostnamectl set-hostname slave-node
これを今やったv次のコマンドを使用して、マスターノードの初期化に進みましょう。
sudo kubeadm init --pod-network-cidr = 10.244.0.0/16
インターネット接続によっては、処理にXNUMX分以上かかる場合があります。 このコマンドの出力は非常に重要であるため、IP、トークンなどが含まれているため、出力に情報を書き留めておく必要があります。
クラスターの使用を開始するには、通常のユーザーとして以下を実行する必要があります。
mkdir -p $HOME/.kube sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config sudo chown $(id -u):$(id -g) $HOME/.kube/config
現在 rootユーザーとして各ノードで以下を実行することにより、任意の数のマシンに参加できます。
kubeadm join tuip --token tutoken --discovery-token-ca-cert-hash sha256:tuhash
tutoken、tuip、およびハッシュの情報を、少し前に書き留めると言われた情報に置き換える場所。
ノードのリストを取得する
マスターノードのステータスがまだ準備できていないことがわかります。 これは、マスターノードにポッドがまだデプロイされていないため、コンテナネットワークインターフェイスが空であるためです。
リストを表示するには、実行するだけです。
kubectl get nodes
マスターノードを介したポッドネットワークの展開
ポッドネットワークは、ネットワークのノード間の通信手段です。 このチュートリアルでは、次のコマンドを使用して、クラスターにFlannelポッドネットワークを実装しています。
sudo kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
ネットワークのステータスを知るには、次のように入力します。:
kubectl get pods --all-namespaces sudo kubectl get nodes
これが完了したら、マスターノードと同じように情報を補完する必要があるのと同じ方法で、スレーブノードをネットワークに追加してクラスターを形成します。
sudo kubeadm join tuip --token tutoken --discovery-token-ca-cert-hash sha256:tuhash
これで、マスターノードで次のコマンドを実行すると、マスターノードとサーバーノードのXNUMXつのノードがシステムで実行されていることが確認されます。
sudo kubectl get nodes
これは、XNUMXノードクラスターがKubernetesコンテナー管理システムを介して稼働していることを示しています。