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

Ubuntu 18.04 LTSにKubernetes(k8s)をインストールして設定する方法

Kubernetes は無料のオープンソースコンテナオーケストレーションツールです。これは、クラスター環境でコンテナーベースのアプリケーションを自動的にデプロイするために使用されます。これとは別に、Dockerコンテナーの管理にも使用されます。 kubernetesクラスターホスト全体。 KubernetesはK8sとも呼ばれます 。

この記事では、2つのノード Kubernetesをインストールして構成する方法を示します。 (1.13) kubeadmの使用 Ubuntu 18.04/18.10システム。ラボのセットアップの詳細は次のとおりです。

3つのUbuntu18.04LTSシステムを使用します。1つのシステムがKubernetesマスターノードとして機能します。 他の2つのノードはスレーブのうなずきとして機能します eとKubernetesクラスターに参加します。これらの3つのシステムには最小限の18.04LTSがインストールされていると想定しています。

  • Kubernetesマスターノード–(ホスト名:k8s-master、IP:192.168.1.70、OS:最小のUbuntu 18.04 LTS)
  • Kubernetesスレーブノード1–(ホスト名:k8s-worker-node1、IP:192.168.1.80、OS:最小Ubuntu 18.04 LTS)
  • Kubernetesスレーブノード2–(ホスト名:k8s-worker-node2、IP:192.168.1.90、OS:最小Ubuntu 18.04 LTS)

注: Kubernetesスレーブノードはワーカーノードとも呼ばれます

k8sのインストールと設定の手順に進みましょう。

手順:1)ホスト名を設定してhostsファイルを更新する

マスターノードにログインし、hostnamectlコマンドを使用してそのホスト名を構成します

 [メール保護]:〜$ sudo hostnamectl set-hostname "k8s-master" [メール保護]:〜$ exec bash [メール保護]:〜$ 

スレーブ/ワーカーノードにログインし、hostnamectlコマンドを使用してそれぞれのホスト名を構成します。

 [email protected]:〜$ sudo hostnamectl set-hostname k8s-worker-node1 [email protected]:〜$ exec bash [email protected]:〜$ [email protected]:〜$ sudo hostnamectl set-hostname k8s- worker-node2 [メール保護]:〜$ exec bash [メール保護]:〜$ 

3つのシステムすべての/etc/hostsファイルに次の行を追加します

 192.168.1.70 k8s-master192.168.1.80 k8s-worker-node1192.168.1.90 k8s-worker-node2 

手順:2)マスターノードとスレーブノードにDockerサービスをインストールして開始します

以下のapt-getコマンドを実行して、Dockerをマスターノードにインストールします。

 [メール保護]:〜$ sudo apt-get install docker.io -y 

以下のapt-getコマンドを実行して、Dockerをスレーブノードにインストールします。

 [メール保護]:〜$ sudo apt-get install docker.io -y [メール保護]:〜$ sudo apt-get install docker.io -y 

Dockerパッケージが3つのシステムすべてにインストールされたら、以下のsystemctlコマンドを使用してdockerサービスを開始して有効にします。これらのコマンドは、マスターノードとスレーブノードで実行する必要があります。

〜$ sudo systemctl start docker〜$ sudo systemctl enable docker / lib / systemd / systemd-sysv-install.Executing:/ lib / systemd / systemd-sysv-installenabledockerを使用したSysVサービススクリプトによるdocker.serviceの状態の同期〜$ 

以下のdockerコマンドを使用して、これらのシステムにインストールされているDockerのバージョンを確認します。

〜$ docker --versionDockerバージョン18.06.1-ce、ビルドe68fc7a〜$ 

手順:3)マスターノードとスレーブノードでKubernetesパッケージリポジトリを設定する

注: このステップのすべてのコマンドは、マスターノードとスレーブノードで実行する必要があります

まず、必要なパッケージをいくつかインストールし、マスターノードを含むすべてのノードで次のコマンドを実行します

〜$ sudo apt-get install apt-transport-https curl -y 

次に、次のコマンドを使用してKubernetesパッケージリポジトリキーを追加します

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

次に、以下のaptコマンドを使用してKubernetesリポジトリを構成します。現時点では、Ubuntu 18.04(bionic weaver)Kubernetesパッケージリポジトリは利用できないため、XenialKubernetesパッケージリポジトリを使用します。

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

手順:4)すべてのノードでスワップを無効にしてKubeadmをインストールします

注: このステップのすべてのコマンドは、マスターノードとスレーブノードで実行する必要があります

Kubeadmは、kubernetesクラスターをデプロイするために使用される最も一般的な方法の1つです。つまり、kubernetesクラスターに複数のノードをデプロイするために使用されたと言えます。

Kubernetesの公式ウェブサイトによると、マスターノードを含むすべてのノードでスワップを無効にすることをお勧めします。

次のコマンドを実行して、一時的なスワップを無効にします。

:〜$ sudo swapoff -a 

永続的なスワップを無効にするには、/ etc/fstabファイルのswapfileまたはswappartitionエントリをコメントアウトします。

次に、マスターを含むすべてのノードにKubeadmパッケージをインストールします。

:〜$ sudo apt-get install kubeadm -y 

kubeadmパッケージが正常にインストールされたら、underコマンドを使用してkubeadmのバージョンを確認します。

:〜$ kubeadm versionkubeadm version:&version.Info {Major: "1"、Minor: "13"、GitVersion: "v1.13.2"、GitCommit: "cff46ab41ff0bb44d8584413b598ad8360ec1def"、GitTreeState: "clean"、BuildDate: "2019 -01-10T23:33:30Z "、GoVersion:" go1.11.4 "、コンパイラ:" gc "、プラットフォーム:" linux / amd64 "}:〜$ 

ステップ:5)Kubeadmを使用してマスターノードでKubernetesクラスターを初期化して起動する

マスターノードで以下のkubeadmコマンドを使用するのは、Kubernetesを初期化する場合のみです

 [メール保護]:〜$ sudo kubeadm init --pod-network-cidr =172.168.10.0 / 24 

上記のコマンドでは、同じポッドネットワークを使用することも、環境に適した独自のポッドネットワークを選択することもできます。コマンドが正常に実行されると、次のような出力が得られます。

上記の出力は、マスターノードが正常に初期化されたことを確認するため、クラスターを開始するには、以下のコマンドを次々に実行します。

 [メール保護]:〜$ mkdir -p $ HOME / .kube [メール保護]:〜$ sudo cp -i /etc/kubernetes/admin.conf $ HOME / .kube / config [メール保護]:〜 $ sudo chown $(id -u):$(id -g)$ HOME / .kube / config [メール保護]:〜$ 

次のコマンドを使用して、マスターノードのステータスを確認します。

 [メール保護]:〜$ kubectlgetnodesNAMEステータスロール年齢VERSIONk8s-masterNotReadymaster 18m v1.13.2 [メール保護]:〜$ 

上記のコマンド出力からわかるように、現時点ではポッドをデプロイしていないため、マスターノードの準備ができていません。

ポッドネットワークをデプロイしましょう。ポッドネットワークは、クラスターノードが相互に通信するためのネットワークです。 フランネルを展開します ポッドネットワークとして、Flannelはオーバーレイネットワークを提供します クラスタノード間。

ステップ:6)マスターノードからポッドネットワークとしてフランネルをデプロイし、ポッドの名前空間を確認します

次のkubectlを実行します マスターノードからポッドネットワークを展開するコマンド

 [メール保護]:〜$ sudo kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml 

上記のコマンドの出力は次のようになります

 clusterrole.rbac.authorization.k8s.io/flannelcreatedclusterrolebinding.rbac.authorization.k8s.io/flannelcreatedserviceaccount/flannelcreatedconfigmap/kube-flannel-cfgcreateddaemonset.extensions/kube-flannel-ds-amd64createddaemonset.extensions/ kube-flannel-ds-arm64 createddaemonset.extensions / kube-flannel-ds-arm createddaemonset.extensions / kube-flannel-ds-ppc64le createddaemonset.extensions / kube-flannel-ds-s390x created [email protected]:〜$ 

次に、kubectlコマンドを使用してマスターノードのステータスとポッドの名前空間を確認します。

 [email protected]:〜$ sudo kubectl get nodeNAME STATUS AGE VERSIONk8s-master Ready master 78m v1.13.2 [email protected]:〜$ [email protected]:〜$ sudo kubectl get pods READY状態に再起動AGEkube系coredns-86c58d9df4-px4sj 1/1実行0 79mkube系coredns-86c58d9df4-wzdzk 1/1 1 79mkube系KUBE-apiserver-K8S実行0 79mkube系etcd-K8Sマスター1/1を実行します-master 1/1ランニング1 79mkube系KUBEコントローラマネージャ-K8Sマスター1/1 1 79mkube系KUBE-フランネル-DS-amd64-9tn8z 1/1実行0 14mkube系KUBE-プロキシcjzz2 1を実行します/1実行中179mkube-systemkube-scheduler-k8s-master1/1実行中179m[メール保護]:〜$ 

上記の出力からわかるように、マスターノードのステータスが「準備完了」に変更されました。 」とポッドのすべての名前空間が実行状態にあるため、これにより、マスターノードが正常な状態にあり、クラスターを形成する準備ができていることが確認されます。

ステップ:7)スレーブノードまたはワーカーノードをクラスターに追加します

注: ステップ5で、kubeadmコマンドの出力は、クラスターに参加するためにスレーブノードまたはワーカーノードで使用する必要がある完全なコマンドを取得しました

最初のスレーブノード(k8s-worker-node1)にログインし、次のコマンドを実行してクラスターに参加します。

 [メール保護]:〜$ sudo kubeadm join 192.168.1.70:6443 --token cwxswk.hbkuu4jua82o80d1 --discovery-token-ca-cert-hash sha256:ff1b0cfe5aec94f90a42bdb45d2b8bfde34006017c0e3f 

上記のコマンドの出力は次のようになります

同様に、2番目のワーカーノードで同じkubeadmjoinコマンドを実行します

 [メール保護]:〜$ sudo kubeadm join 192.168.1.70:6443 --token cwxswk.hbkuu4jua82o80d1 --discovery-token-ca-cert-hash sha256:ff1b0cfe5aec94f90a42bdb45d2b8bfde34006017c0e3f 

上記の出力は以下のようになります

次に、マスターノードに移動し、以下のコマンドを実行して、マスターノードとスレーブノードのステータスを確認します

 [メールで保護]:〜$ kubectl get nodeNAME STATUS AGE VERSIONk8s-master Ready master 100m v1.13.2k8s-worker-node1 Ready 4 13.2 [メール保護]:〜$ 

上記のコマンドは、クラスターに2つのワーカーノードが正常に追加され、その状態がReadyであることを確認します。これで、Ubuntu18.04システムに2つのノードのKubernetesクラスターが正常にインストールおよび構成されたと結論付けられます。

続きを読む: Kubernetesでのポッド、レプリケーションコントローラー、サービスのデプロイ


Ubuntu
  1. Ubuntu18.04にRedisをインストールして構成する方法

  2. Ubuntu18.04LTSにAnsibleをインストールして構成する方法

  3. Ubuntu 20.04 LTS に Fail2ban をインストールして構成する方法

  1. Ubuntu18.04にRedmineをインストールして設定する方法

  2. Ubuntu18.04にSambaをインストールして設定する方法

  3. Ubuntu20.04にRedisをインストールして構成する方法

  1. Ubuntu 20.04 LTSサーバーにKubernetes(k8s)をインストールする方法

  2. Ubuntu20.04にJenkinsをインストールして構成する方法

  3. Ubuntu18.04LTSにGitLabをインストールして構成する方法