KubeKey に基づく Kubernetes v1.24 ワーカー ノードの拡張

序文

知識ポイント

  • 評価:エントリーレベル
  • KubeKey はワーカー ノードを拡張します
  • openEuler オペレーティング システムの基本構成
  • 基本的な Kubernetes コマンド

実際のサーバー構成(アーキテクチャは小規模な本番環境を1:1で再現しており、構成は若干異なります)

CPU名 IP CPU メモリー システムディスク データディスク 使用
ks-マスター-0 192.168.9.91 2 4 50 100 KubeSphere/k8s-master
ks-マスター-1 192.168.9.92 2 4 50 100 KubeSphere/k8s-master
ks-マスター-2 192.168.9.93 2 4 50 100 KubeSphere/k8s-master
ks-worker-0 192.168.9.95 2 4 50 100 k8s-ワーカー/CI
ks-worker-1 192.168.9.96 2 4 50 100 k8s-ワーカー
ks-worker-2 192.168.9.97 2 4 50 100 k8s-ワーカー
ストレージ-0 192.168.9.81 2 4 50 100+ ElasticSearch/GlusterFS/Ceph/Longhorn/NFS/
ストレージ-1 192.168.9.82 2 4 50 100+ ElasticSearch/GlusterFS/Ceph/Longhorn
ストレージ-2 192.168.9.83 2 4 50 100+ ElasticSearch/GlusterFS/Ceph/Longhorn
レジストリ 192.168.9.80 2 4 50 200 ソナタイプ ネクサス 3
合計 10 20 40 500 1100+

実際の戦闘環境にはソフトウェアのバージョン情報が関係します

  • OS:openEuler 22.03 LTS SP2 x86_64

  • キューブスフィア: 3.3.2

  • Kubernetes:v1.24.12

  • コンテナ:1.6.4

  • KubeKey: v3.0.8

この記事の紹介

この記事は、 「 Kubernetes ワーカー ノードを拡張するための KubeKey に基づくOpenEuler 22.03 LTS SP2」 の記事の更新バージョンです。

変更理由および変更内容は以下のとおりです。

  • その後の実戦訓練で、Kubernetes v1.26 のバージョンが高すぎてバックエンドストレージとしてGlusterFS をネイティブにサポートできないことが判明し、最後にサポートされたバージョンは v1.25 系でした。
  • KubeKey が更新され、より多くの Kubernetes バージョンをサポートするv3.0.8 が正式にリリースされました。
  • 総合的な検討の結果、一連のドキュメントを更新するためにKubernetes v1.24.12KubeKey v3.0.8を選択しました。
  • ドキュメントの全体的な構成はわずかに調整されていますが、全体的な変更は大きくなく、細部がわずかに異なるだけです。

前回は、KubeSphere が開発した KubeKey ツールを使用して、3 つのマスターと 1 つのワーカーと KubeSphere を備えた Kubernetes クラスターを自動的にデプロイする方法について説明しました。

この号では、実際の運用環境をシミュレートして、KubeKey を使用して既存の Kubernetes クラスターにワーカー ノードを追加する方法を示します。

オペレーティングシステムの基本構成

新しく追加されたワーカー ノードの場合、オペレーティング システムの基本構成は、最初のインストールおよび展開時のワーカー ノードの構成と一致します。

その他のノード構成手順:

  • すべてのノードは、/etc/hostsファイルを更新し、元の内容に基づいて、新しく追加されたワーカー ノードのホスト名と IP に対応する構成を追加する必要があります。
  • SSH 公開キーを、マスター-0ノードに新しく追加されたワーカー ノードに送信します。

ワーカーノード構成の追加

この記事では、デモンストレーションとして Worker-1 ノードのみを選択しており、新しく追加された残りの Worker ノードも同じ方法で構成および設定されます。

  • ホスト名を構成する
hostnamectl hostname ks-worker-1
  • サーバーのタイムゾーンを構成する

サーバーのタイムゾーンをAsia/Shanghaiとして構成します。

timedatectl set-timezone Asia/Shanghai

サーバーのタイムゾーンを確認します。正しい構成は次のとおりです。

[root@ks-worker-1 ~]# timedatectl
               Local time: Tue 2023-07-18 11:20:49 CST
           Universal time: Tue 2023-07-18 03:20:49 UTC
                 RTC time: Tue 2023-07-18 03:20:49
                Time zone: Asia/Shanghai (CST, +0800)
System clock synchronized: yes
              NTP service: active
          RTC in local TZ: no
  • 時刻同期の構成

時刻同期ソフトとしてchronyをインストールします。

yum install chrony

設定ファイル /etc/chrony.conf を変更し、ntp サーバーの設定を変更します。

vi /etc/chrony.conf

# 删除所有的 pool 配置
pool pool.ntp.org iburst

# 增加国内的 ntp 服务器,或是指定其他常用的时间服务器
pool cn.pool.ntp.org iburst

# 上面的手工操作,也可以使用 sed 自动替换
sed -i 's/^pool pool.*/pool cn.pool.ntp.org iburst/g' /etc/chrony.conf

再起動し、chrony サービスを起動時に自動的に開始するように設定します。

systemctl restart chronyd && systemctl enable chronyd

chrony 同期ステータスを確認します。

# 执行查看命令
chronyc sourcestats -v

# 正常的输出结果如下
[root@ks-worker-1 ~]# chronyc sourcestats -v
                             .- Number of sample points in measurement set.
                            /    .- Number of residual runs with same sign.
                           |    /    .- Length of measurement set (time).
                           |   |    /      .- Est. clock freq error (ppm).
                           |   |   |      /           .- Est. error in freq.
                           |   |   |     |           /         .- Est. offset.
                           |   |   |     |          |          |   On the -.
                           |   |   |     |          |          |   samples. \
                           |   |   |     |          |          |             |
Name/IP Address            NP  NR  Span  Frequency  Freq Skew  Offset  Std Dev
==============================================================================
ntp6.flashdance.cx          4   3     7   -503.672     127218    +23ms    15ms
time.cloudflare.com         4   3     7   +312.311  34651.250    +11ms  4357us
ntp8.flashdance.cx          4   4     8   +262.274  10897.487    -15ms  1976us
tick.ntp.infomaniak.ch      4   4     7  -2812.902  31647.234    -34ms  4359us
  • ホストファイルを設定する

/etc/hosts ファイルを編集し、計画したサーバー IP とホスト名をファイルに追加します。

192.168.9.91    ks-master-0
192.168.9.92    ks-master-1
192.168.9.93    ks-master-2
192.168.9.95    ks-worker-0
192.168.9.96    ks-worker-1
192.168.9.97    ks-worker-2
  • DNSの構成
 echo "nameserver 114.114.114.114" > /etc/resolv.conf
  • システムのファイアウォールをオフにする
systemctl stop firewalld && systemctl disable firewalld
  • SELinuxを無効にする

openEuler 22.03 SP2 の最小インストール システムでは、デフォルトで SELinux が有効になっていますが、トラブルを軽減するために、すべてのノードで SELinux が無効になっています。

# 使用 sed 修改配置文件,实现彻底的禁用
sed -i 's/^SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config

# 使用命令,实现临时禁用,这一步其实不做也行,KubeKey 会自动配置
setenforce 0
  • システムの依存関係をインストールする

すべてのノードで、 rootユーザーとしてシステムにログインし、次のコマンドを実行して、Kubernetes の基本的なシステム依存関係をインストールします。

# 安装 Kubernetes 系统依赖包
yum install curl socat conntrack ebtables ipset ipvsadm

# 安装其他必备包,openEuler 也是奇葩了,默认居然都不安装tar,不装的话后面会报错
yum install tar

クラスター内のすべての既存ノードの新しい構成

注: このセクションはオプションの構成項目です。インストールおよび展開中にホスト名を使用せず、IP モードを使用する場合は、このセクションを無視できます。

  • ホストファイルを設定する

/etc/hosts ファイルを編集し、新しく追加されたワーカー ノードの IP およびホスト名のエントリをファイルに追加します。

192.168.9.91    ks-master-0
192.168.9.92    ks-master-1
192.168.9.93    ks-master-2
192.168.9.95    ks-worker-0
192.168.9.96    ks-worker-1
192.168.9.97    ks-worker-2

マスター 0 ノードの新しい構成

このセクションはオプションの構成項目です。サーバーのリモート接続の認証方法として純粋なパスワードを使用する場合は、このセクションを無視できます。

次のコマンドを入力して、マスター 0ノードから他のノードに SSH 公開キーを送信します。コマンドの実行時に「yes」と入力してサーバーの SSH フィンガープリントを受け入れ、プロンプトが表示されたらrootユーザーのパスワードを入力します。

ssh-copy-id root@ks-worker-1
ssh-copy-id root@ks-worker-2

SSH 公開キーを追加してアップロードした後、次のコマンドを実行して、パスワード認証なしで root ユーザーを介してすべてのサーバーに接続できることを確認できます。

[root@ks-master-0 ~]# ssh root@ks-worker-1
# 登陆输出结果 略

KubeKey を使用してワーカー ノードを展開する

次に、KubeKey を使用して、新しく追加されたノードを Kubernetes クラスターに追加します。公式ドキュメントを参照してください。プロセス全体は比較的単純で、必要な手順は 2 つだけです。

  • KubeKey のデプロイに使用されるクラスター構成ファイルを変更する
  • コマンドを実行してノードを追加します

クラスター構成ファイルを変更する

SSHでmaster-0ノードにログインし、元のKubeKeyディレクトリに切り替え、元のクラスタ設定ファイルを修正します 実戦で使用する名前は kubesphere -v3.3.2.yamlですが、実際の状況に合わせて修正してください。

主な修正点:

  • spec.hosts セクション: 新しいワーカー ノード情報を追加します。
  • spec.roleGroups.worker セクション: 新しいワーカー ノード情報を追加します

変更された例は次のとおりです。

apiVersion: kubekey.kubesphere.io/v1alpha2
kind: Cluster
metadata:
  name: sample
spec:
  hosts:
  - {name: ks-master-0, address: 192.168.9.91, internalAddress: 192.168.9.91, user: root, password: "P@88w0rd"}
  - {name: ks-master-1, address: 192.168.9.92, internalAddress: 192.168.9.92, user: root, privateKeyPath: "~/.ssh/id_ed25519"}
  - {name: ks-master-2, address: 192.168.9.93, internalAddress: 192.168.9.93, user: root, privateKeyPath: "~/.ssh/id_ed25519"}
  - {name: ks-worker-0, address: 192.168.9.95, internalAddress: 192.168.9.95, user: root, privateKeyPath: "~/.ssh/id_ed25519"}
  - {name: ks-worker-1, address: 192.168.9.96, internalAddress: 192.168.9.96, user: root, privateKeyPath: "~/.ssh/id_ed25519"}
  - {name: ks-worker-2, address: 192.168.9.97, internalAddress: 192.168.9.97, user: root, privateKeyPath: "~/.ssh/id_ed25519"}
  roleGroups:
    etcd:
    - ks-master-0
    - ks-master-1
    - ks-master-2
    control-plane:
    - ks-master-0
    - ks-master-1
    - ks-master-2
    worker:
    - ks-worker-0
    - ks-worker-1
    - ks-worker-2
 ....
# 下面的内容保持不变

KubeKey を使用してノードを追加する

ノードを追加する前に、現在のクラスターのノード情報を確認しましょう。

[root@ks-master-0 kubekey]# kubectl get nodes -o wide
NAME          STATUS   ROLES           AGE    VERSION    INTERNAL-IP    EXTERNAL-IP   OS-IMAGE                    KERNEL-VERSION                        CONTAINER-RUNTIME
ks-master-0   Ready    control-plane   130m   v1.24.12   192.168.9.91   <none>        openEuler 22.03 (LTS-SP2)   5.10.0-153.12.0.92.oe2203sp2.x86_64   containerd://1.6.4
ks-master-1   Ready    control-plane   130m   v1.24.12   192.168.9.92   <none>        openEuler 22.03 (LTS-SP2)   5.10.0-153.12.0.92.oe2203sp2.x86_64   containerd://1.6.4
ks-master-2   Ready    control-plane   130m   v1.24.12   192.168.9.93   <none>        openEuler 22.03 (LTS-SP2)   5.10.0-153.12.0.92.oe2203sp2.x86_64   containerd://1.6.4
ks-worker-0   Ready    worker          130m   v1.24.12   192.168.9.95   <none>        openEuler 22.03 (LTS-SP2)   5.10.0-153.12.0.92.oe2203sp2.x86_64   containerd://1.6.4

次に、次のコマンドを実行して、変更した構成ファイルを使用して新しいワーカー ノードをクラスターに追加します。

export KKZONE=cn
./kk add nodes -f kubesphere-v3.3.2.yaml

注: 最初にexport KKZONE=cnを実行する必要があります。そうしないと、イメージがDockerHubからプルされます。

上記のコマンドが実行されると、kk はまず、Kubernetes をデプロイするための依存関係とその他の詳細な要件をチェックします。チェックに合格すると、インストールの確認を求めるメッセージが表示されます。「yes」と入力して Enter キーを押し、展開を続行します。

[root@ks-master-0 kubekey]# ./kk add nodes -f kubesphere-v3.3.2.yaml


 _   __      _          _   __
| | / /     | |        | | / /
| |/ / _   _| |__   ___| |/ /  ___ _   _
|    \| | | | '_ \ / _ \    \ / _ \ | | |
| |\  \ |_| | |_) |  __/ |\  \  __/ |_| |
\_| \_/\__,_|_.__/ \___\_| \_/\___|\__, |
                                    __/ |
                                   |___/

13:35:51 CST [GreetingsModule] Greetings
13:35:51 CST message: [ks-worker-2]
Greetings, KubeKey!
13:35:52 CST message: [ks-master-2]
Greetings, KubeKey!
13:35:52 CST message: [ks-master-0]
Greetings, KubeKey!
13:35:52 CST message: [ks-master-1]
Greetings, KubeKey!
13:35:53 CST message: [ks-worker-0]
Greetings, KubeKey!
13:35:53 CST message: [ks-worker-1]
Greetings, KubeKey!
13:35:53 CST success: [ks-worker-2]
13:35:53 CST success: [ks-master-2]
13:35:53 CST success: [ks-master-0]
13:35:53 CST success: [ks-master-1]
13:35:53 CST success: [ks-worker-0]
13:35:53 CST success: [ks-worker-1]
13:35:53 CST [NodePreCheckModule] A pre-check on nodes
13:35:57 CST success: [ks-worker-1]
13:35:57 CST success: [ks-worker-2]
13:35:57 CST success: [ks-master-2]
13:35:57 CST success: [ks-master-1]
13:35:57 CST success: [ks-master-0]
13:35:57 CST success: [ks-worker-0]
13:35:57 CST [ConfirmModule] Display confirmation form
+-------------+------+------+---------+----------+-------+-------+---------+-----------+--------+--------+------------+------------+-------------+------------------+--------------+
| name        | sudo | curl | openssl | ebtables | socat | ipset | ipvsadm | conntrack | chrony | docker | containerd | nfs client | ceph client | glusterfs client | time         |
+-------------+------+------+---------+----------+-------+-------+---------+-----------+--------+--------+------------+------------+-------------+------------------+--------------+
| ks-master-0 | y    | y    | y       | y        | y     | y     | y       | y         | y      |        | v1.6.4     |            |             |                  | CST 13:35:56 |
| ks-master-1 | y    | y    | y       | y        | y     | y     | y       | y         | y      |        | v1.6.4     |            |             |                  | CST 13:35:56 |
| ks-master-2 | y    | y    | y       | y        | y     | y     | y       | y         | y      |        | v1.6.4     |            |             |                  | CST 13:35:56 |
| ks-worker-0 | y    | y    | y       | y        | y     | y     | y       | y         | y      |        | v1.6.4     |            |             |                  | CST 13:35:57 |
| ks-worker-1 | y    | y    | y       | y        | y     | y     | y       | y         | y      |        |            |            |             |                  | CST 13:35:52 |
| ks-worker-2 | y    | y    | y       | y        | y     | y     | y       | y         | y      |        |            |            |             |                  | CST 13:35:53 |
+-------------+------+------+---------+----------+-------+-------+---------+-----------+--------+--------+------------+------------+-------------+------------------+--------------+

This is a simple check of your environment.
Before installation, ensure that your machines meet all requirements specified at
https://github.com/kubesphere/kubekey#requirements-and-recommendations

Continue this installation? [yes/no]:

インストールプロセス中に多くのログ出力が発生するため、スペースを節約するためにここには表示されていません。

ネットワーク速度とマシン構成に応じて、展開が完了するまでに約 15 分かかりますが、この展開が完了するまでに 7 分かかります。

デプロイメントが完了すると、ターミナルに次のような出力が表示されるはずです。デプロイメントが完了したことを示すプロンプトが表示される一方で、出力には、ユーザーが KubeSphere にログインするためのデフォルトの管理者ユーザーとパスワードも表示されます。

...
13:41:39 CST [AutoRenewCertsModule] Generate k8s certs renew script
13:41:40 CST success: [ks-master-1]
13:41:40 CST success: [ks-master-0]
13:41:40 CST success: [ks-master-2]
13:41:40 CST [AutoRenewCertsModule] Generate k8s certs renew service
13:41:42 CST success: [ks-master-1]
13:41:42 CST success: [ks-master-2]
13:41:42 CST success: [ks-master-0]
13:41:42 CST [AutoRenewCertsModule] Generate k8s certs renew timer
13:41:43 CST success: [ks-master-1]
13:41:43 CST success: [ks-master-0]
13:41:43 CST success: [ks-master-2]
13:41:43 CST [AutoRenewCertsModule] Enable k8s certs renew service
13:41:44 CST success: [ks-master-0]
13:41:44 CST success: [ks-master-1]
13:41:44 CST success: [ks-master-2]
13:41:44 CST Pipeline[AddNodesPipeline] execute successfully

拡張後のクラスタ状態の確認

クラスターのステータスを確認するための KubeSphere 管理コンソール

ブラウザを開いてマスター 0 ノードの IP アドレスとポート30880にアクセスし、KubeSphere 管理コンソールのログイン ページにログインします。

クラスター管理インターフェースに入り、左側の「ノード」メニューをクリックし、「クラスター・ノード」をクリックして、Kubernetes クラスターの使用可能なノードの詳細情報を表示します。

前回、クラスタ導入当初はワーカーノードが1台しかなく、「システムコンポーネント」の監視コンポーネントが異常状態だったのを今でも覚えています。新しいワーカー ノードを追加した後、監視コンポーネントが自動的に通常の状態に戻るかどうかを確認してみましょう。

左側の「システム コンポーネント」メニューをクリックすると、インストールされているコンポーネントに関する詳細情報が表示されます。監視カテゴリのコンポーネントのステータスの表示に注目すると、図では、監視対象の 10 個のコンポーネントがすべて正常であることがわかります

クラスターのステータスを確認するための Kubectl コマンド ライン

  • クラスターノード情報の表示

master-0 ノードで kubectl コマンドを実行して、Kubernetes クラスター上で使用可能なノードのリストを取得します。

kubectl get nodes -o wide

出力からわかるように、現在の Kubernetes クラスターには 3 つの使用可能なノード、ノードの内部 IP、ノードの役割、ノードの Kubernetes のバージョン番号、コンテナーのランタイムとバージョン番号、オペレーティング システムの種類、およびカーネルのバージョンがあります。

[root@ks-master-0 kubekey]# kubectl get nodes -o wide
NAME          STATUS   ROLES           AGE    VERSION    INTERNAL-IP    EXTERNAL-IP   OS-IMAGE                    KERNEL-VERSION                        CONTAINER-RUNTIME
ks-master-0   Ready    control-plane   149m   v1.24.12   192.168.9.91   <none>        openEuler 22.03 (LTS-SP2)   5.10.0-153.12.0.92.oe2203sp2.x86_64   containerd://1.6.4
ks-master-1   Ready    control-plane   148m   v1.24.12   192.168.9.92   <none>        openEuler 22.03 (LTS-SP2)   5.10.0-153.12.0.92.oe2203sp2.x86_64   containerd://1.6.4
ks-master-2   Ready    control-plane   148m   v1.24.12   192.168.9.93   <none>        openEuler 22.03 (LTS-SP2)   5.10.0-153.12.0.92.oe2203sp2.x86_64   containerd://1.6.4
ks-worker-0   Ready    worker          148m   v1.24.12   192.168.9.95   <none>        openEuler 22.03 (LTS-SP2)   5.10.0-153.12.0.92.oe2203sp2.x86_64   containerd://1.6.4
ks-worker-1   Ready    worker          11m    v1.24.12   192.168.9.96   <none>        openEuler 22.03 (LTS-SP2)   5.10.0-153.12.0.92.oe2203sp2.x86_64   containerd://1.6.4
ks-worker-2   Ready    worker          11m    v1.24.12   192.168.9.97   <none>        openEuler 22.03 (LTS-SP2)   5.10.0-153.12.0.92.oe2203sp2.x86_64   containerd://1.6.4
  • ポッドリストの表示

次のコマンドを入力して、Kubernetes クラスター上で実行されているポッドのリストを、NODE 上のワークロード分散順に並べて取得します。

kubectl get pods -o wide -A | sort -k 8

出力結果からわかるように、新しく追加された 2 つのワーカー ノード上で、必要な 5 つの基本コンポーネントが実行されています。さらに、前回 worker-0 で起動に失敗したprometheus-k8s-1 が、 worker-1 で自己起動に成功しました。

[root@ks-master-0 kubekey]# kubectl get pods -o wide -A | sort -k 8
NAMESPACE                      NAME                                               READY   STATUS    RESTARTS      AGE    IP              NODE          NOMINATED NODE   READINESS GATES
kube-system                    kube-scheduler-ks-master-0                         1/1     Running   1 (43m ago)   149m   192.168.9.91    ks-master-0   <none>           <none>
kubesphere-monitoring-system   node-exporter-t9vrm                                2/2     Running   0             142m   192.168.9.91    ks-master-0   <none>           <none>
kube-system                    calico-node-kx4fz                                  1/1     Running   0             148m   192.168.9.91    ks-master-0   <none>           <none>
kube-system                    kube-apiserver-ks-master-0                         1/1     Running   0             149m   192.168.9.91    ks-master-0   <none>           <none>
kube-system                    kube-controller-manager-ks-master-0                1/1     Running   0             149m   192.168.9.91    ks-master-0   <none>           <none>
kube-system                    kube-proxy-sk4hz                                   1/1     Running   0             148m   192.168.9.91    ks-master-0   <none>           <none>
kube-system                    nodelocaldns-h4vmx                                 1/1     Running   0             149m   192.168.9.91    ks-master-0   <none>           <none>
kubesphere-monitoring-system   node-exporter-b57bp                                2/2     Running   0             142m   192.168.9.92    ks-master-1   <none>           <none>
kube-system                    calico-node-qx5qk                                  1/1     Running   0             148m   192.168.9.92    ks-master-1   <none>           <none>
kube-system                    coredns-f657fccfd-8lnd5                            1/1     Running   0             149m   10.233.103.2    ks-master-1   <none>           <none>
kube-system                    coredns-f657fccfd-vtlmx                            1/1     Running   0             149m   10.233.103.1    ks-master-1   <none>           <none>
kube-system                    kube-apiserver-ks-master-1                         1/1     Running   0             148m   192.168.9.92    ks-master-1   <none>           <none>
kube-system                    kube-controller-manager-ks-master-1                1/1     Running   0             148m   192.168.9.92    ks-master-1   <none>           <none>
kube-system                    kube-proxy-728cs                                   1/1     Running   0             148m   192.168.9.92    ks-master-1   <none>           <none>
kube-system                    kube-scheduler-ks-master-1                         1/1     Running   0             148m   192.168.9.92    ks-master-1   <none>           <none>
kube-system                    nodelocaldns-5594x                                 1/1     Running   0             148m   192.168.9.92    ks-master-1   <none>           <none>
kubesphere-monitoring-system   node-exporter-vm9cq                                2/2     Running   0             142m   192.168.9.93    ks-master-2   <none>           <none>
kube-system                    calico-node-rb2cf                                  1/1     Running   0             148m   192.168.9.93    ks-master-2   <none>           <none>
kube-system                    kube-apiserver-ks-master-2                         1/1     Running   0             148m   192.168.9.93    ks-master-2   <none>           <none>
kube-system                    kube-controller-manager-ks-master-2                1/1     Running   0             148m   192.168.9.93    ks-master-2   <none>           <none>
kube-system                    kube-proxy-ndc62                                   1/1     Running   0             148m   192.168.9.93    ks-master-2   <none>           <none>
kube-system                    kube-scheduler-ks-master-2                         1/1     Running   0             148m   192.168.9.93    ks-master-2   <none>           <none>
kube-system                    nodelocaldns-gnbg6                                 1/1     Running   0             148m   192.168.9.93    ks-master-2   <none>           <none>
kubesphere-controls-system     default-http-backend-587748d6b4-57zck              1/1     Running   0             144m   10.233.115.6    ks-worker-0   <none>           <none>
kubesphere-monitoring-system   alertmanager-main-0                                2/2     Running   0             142m   10.233.115.9    ks-worker-0   <none>           <none>
kubesphere-monitoring-system   kube-state-metrics-5b8dc5c5c6-9ng42                3/3     Running   0             142m   10.233.115.8    ks-worker-0   <none>           <none>
kubesphere-monitoring-system   node-exporter-79c6m                                2/2     Running   0             142m   192.168.9.95    ks-worker-0   <none>           <none>
kubesphere-monitoring-system   prometheus-operator-66d997dccf-zfdf5               2/2     Running   0             142m   10.233.115.7    ks-worker-0   <none>           <none>
kubesphere-system              ks-console-7f88c4fd8d-b4wdr                        1/1     Running   0             144m   10.233.115.5    ks-worker-0   <none>           <none>
kubesphere-system              ks-installer-559fc4b544-pcdrn                      1/1     Running   0             148m   10.233.115.3    ks-worker-0   <none>           <none>
kube-system                    calico-kube-controllers-f9f9bbcc9-9x49n            1/1     Running   0             148m   10.233.115.2    ks-worker-0   <none>           <none>
kube-system                    calico-node-kvfbg                                  1/1     Running   0             148m   192.168.9.95    ks-worker-0   <none>           <none>
kube-system                    kube-proxy-qdmkb                                   1/1     Running   0             148m   192.168.9.95    ks-worker-0   <none>           <none>
kube-system                    nodelocaldns-d572z                                 1/1     Running   0             148m   192.168.9.95    ks-worker-0   <none>           <none>
kube-system                    snapshot-controller-0                              1/1     Running   0             146m   10.233.115.4    ks-worker-0   <none>           <none>
kubesphere-controls-system     kubectl-admin-5d588c455b-7bw75                     1/1     Running   0             139m   10.233.115.19   ks-worker-0   <none>           <none>
kubesphere-monitoring-system   alertmanager-main-1                                2/2     Running   0             142m   10.233.115.10   ks-worker-0   <none>           <none>
kubesphere-monitoring-system   alertmanager-main-2                                2/2     Running   0             142m   10.233.115.11   ks-worker-0   <none>           <none>
kubesphere-monitoring-system   notification-manager-deployment-6f8c66ff88-mqmxx   2/2     Running   0             140m   10.233.115.16   ks-worker-0   <none>           <none>
kubesphere-monitoring-system   notification-manager-deployment-6f8c66ff88-pjm79   2/2     Running   0             140m   10.233.115.15   ks-worker-0   <none>           <none>
kubesphere-monitoring-system   notification-manager-operator-6455b45546-kgdpf     2/2     Running   0             141m   10.233.115.13   ks-worker-0   <none>           <none>
kubesphere-monitoring-system   prometheus-k8s-0                                   2/2     Running   0             142m   10.233.115.14   ks-worker-0   <none>           <none>
kubesphere-system              ks-apiserver-7ddfccbb94-kd7tg                      1/1     Running   0             144m   10.233.115.18   ks-worker-0   <none>           <none>
kubesphere-system              ks-controller-manager-6cd89786dc-4xnhq             1/1     Running   1 (43m ago)   144m   10.233.115.17   ks-worker-0   <none>           <none>
kube-system                    openebs-localpv-provisioner-7497b4c996-ngnv9       1/1     Running   1 (43m ago)   148m   10.233.115.1    ks-worker-0   <none>           <none>
kube-system                    haproxy-ks-worker-0                                1/1     Running   1 (10m ago)   148m   192.168.9.95    ks-worker-0   <none>           <none>

kubesphere-monitoring-system   node-exporter-2jntq                                2/2     Running   0             11m    192.168.9.96    ks-worker-1   <none>           <none>
kubesphere-monitoring-system   prometheus-k8s-1                                   2/2     Running   0             81m    10.233.120.2    ks-worker-1   <none>           <none>
kube-system                    calico-node-4bwx9                                  1/1     Running   0             11m    192.168.9.96    ks-worker-1   <none>           <none>
kube-system                    haproxy-ks-worker-1                                1/1     Running   0             11m    192.168.9.96    ks-worker-1   <none>           <none>
kube-system                    kube-proxy-tgn54                                   1/1     Running   0             11m    192.168.9.96    ks-worker-1   <none>           <none>
kube-system                    nodelocaldns-mmcpk                                 1/1     Running   0             11m    192.168.9.96    ks-worker-1   <none>           <none>

kubesphere-monitoring-system   node-exporter-hslhs                                2/2     Running   0             11m    192.168.9.97    ks-worker-2   <none>           <none>
kube-system                    calico-node-27jxb                                  1/1     Running   0             11m    192.168.9.97    ks-worker-2   <none>           <none>
kube-system                    haproxy-ks-worker-2                                1/1     Running   0             11m    192.168.9.97    ks-worker-2   <none>           <none>
kube-system                    kube-proxy-qjhq2                                   1/1     Running   0             11m    192.168.9.97    ks-worker-2   <none>           <none>
kube-system                    nodelocaldns-2ttp8                                 1/1     Running   0             11m    192.168.9.97    ks-worker-2   <none>           <none>
  • 画像一覧を見る

次のコマンドを入力して、ワーカー ノードにダウンロードされたイメージのリストを表示します。

crictl images ls

新しく追加されたワーカー ノードで実行すると、出力は次のようになります。

# Worker-1
[root@ks-worker-1 ~]# crictl images ls
IMAGE                                                                      TAG                 IMAGE ID            SIZE
registry.cn-beijing.aliyuncs.com/kubesphereio/cni                          v3.23.2             a87d3f6f1b8fd       111MB
registry.cn-beijing.aliyuncs.com/kubesphereio/coredns                      1.8.6               a4ca41631cc7a       13.6MB
registry.cn-beijing.aliyuncs.com/kubesphereio/haproxy                      2.3                 0ea9253dad7c0       38.5MB
registry.cn-beijing.aliyuncs.com/kubesphereio/k8s-dns-node-cache           1.15.12             5340ba194ec91       42.1MB
registry.cn-beijing.aliyuncs.com/kubesphereio/kube-controllers             v3.23.2             ec95788d0f725       56.4MB
registry.cn-beijing.aliyuncs.com/kubesphereio/kube-proxy                   v1.24.12            562ccc25ea629       39.6MB
registry.cn-beijing.aliyuncs.com/kubesphereio/kube-rbac-proxy              v0.11.0             29589495df8d9       19.2MB
registry.cn-beijing.aliyuncs.com/kubesphereio/linux-utils                  3.3.0               e88cfb3a763b9       26.9MB
registry.cn-beijing.aliyuncs.com/kubesphereio/node-exporter                v1.3.1              1dbe0e9319764       10.3MB
registry.cn-beijing.aliyuncs.com/kubesphereio/node                         v3.23.2             a3447b26d32c7       77.8MB
registry.cn-beijing.aliyuncs.com/kubesphereio/pause                        3.7                 221177c6082a8       311kB
registry.cn-beijing.aliyuncs.com/kubesphereio/pod2daemon-flexvol           v3.23.2             b21e2d7408a79       8.67MB
registry.cn-beijing.aliyuncs.com/kubesphereio/prometheus-config-reloader   v0.55.1             7c63de88523a9       4.84MB
registry.cn-beijing.aliyuncs.com/kubesphereio/prometheus                   v2.34.0             e3cf894a63f55       78.1MB

# Worker-2
[root@ks-worker-2 ~]# crictl images ls
IMAGE                                                              TAG                 IMAGE ID            SIZE
registry.cn-beijing.aliyuncs.com/kubesphereio/cni                  v3.23.2             a87d3f6f1b8fd       111MB
registry.cn-beijing.aliyuncs.com/kubesphereio/coredns              1.8.6               a4ca41631cc7a       13.6MB
registry.cn-beijing.aliyuncs.com/kubesphereio/haproxy              2.3                 0ea9253dad7c0       38.5MB
registry.cn-beijing.aliyuncs.com/kubesphereio/k8s-dns-node-cache   1.15.12             5340ba194ec91       42.1MB
registry.cn-beijing.aliyuncs.com/kubesphereio/kube-controllers     v3.23.2             ec95788d0f725       56.4MB
registry.cn-beijing.aliyuncs.com/kubesphereio/kube-proxy           v1.24.12            562ccc25ea629       39.6MB
registry.cn-beijing.aliyuncs.com/kubesphereio/kube-rbac-proxy      v0.11.0             29589495df8d9       19.2MB
registry.cn-beijing.aliyuncs.com/kubesphereio/node-exporter        v1.3.1              1dbe0e9319764       10.3MB
registry.cn-beijing.aliyuncs.com/kubesphereio/node                 v3.23.2             a3447b26d32c7       77.8MB
registry.cn-beijing.aliyuncs.com/kubesphereio/pause                3.7                 221177c6082a8       311kB
registry.cn-beijing.aliyuncs.com/kubesphereio/pod2daemon-flexvol   v3.23.2             b21e2d7408a79       8.67MB

注: Worker-1 ノードのイメージの初期数は14で、Worker-2 ノードのイメージの初期数は11です。

これまでのところ、すでに 3 つのマスター ノードと 1 つのワーカー ノードがある Kubernetes クラスターに 2 つのワーカー ノードを追加するタスクがすべて完了しました。

結論

この記事では主に、KubeKey を使用してワーカー ノードを既存の Kubernetes クラスターに自動的に追加する詳細なプロセスを説明します。

この記事の操作はopenEuler 22.03 LTS SP2に基づいていますが、操作プロセス全体は、KubeKey を使用して他のオペレーティング システムでデプロイされた Kubernetes クラスターの拡張にも適用できます。

この記事は、ブログ用のマルチポスト プラットフォームであるOpenWriteによって公開されています。

RustDesk 1.2: Flutterを使用してデスクトップ版を書き換え、 deepinで告発されたWaylandをサポート V23は2023年に最も需要の多いWSL 8プログラミング言語への適応に成功: PHPは好調、C/C++需要は鈍化 ReactはAngular.jsの瞬間を経験している? CentOS プロジェクトは「誰にでもオープン」であると主張 MySQL 8.1 および MySQL 8.0.34 が正式にリリース Rust 1.71.0 安定版 リリース
{{名前}}
{{名前}}

おすすめ

転載: my.oschina.net/u/4197945/blog/10089600