序文
知識ポイント
- 評価:エントリーレベル
- 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.12とKubeKey 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 クラスターの拡張にも適用できます。
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 安定版 がリリースこの記事は、ブログ用のマルチポスト プラットフォームであるOpenWriteによって公開されています。