序文:
rancher は、k3s という名前の単純な kubernetes クラスターであり、クラスターが kubernetes クラスター内にあるという点で、特別なオープン ソース kubernetes 管理ツールです。
Rancher は、Docker 環境のみを備えたベア マシンにデプロイすることもできます。次に、このマシンを使用して、他の kubernetes クラスターを Rancher 管理 (管理と呼ばれます) に移行するか、これを介して、Rancher によってホストされている新しいクラスターを他のノードにすばやくインストールします。 machine. マネージド kubernetes クラスター。
この記事では、centos7 サーバー上の既存の kubernetes-1.23.15 クラスターに docker を介して rancher-2.6.4 をインストールし、それをデバッグして使用可能な状態にする方法について説明します。
一、
環境紹介
既存の kubernetes クラスターの一般的な状況:
[root@k8s-master ~]# kubectl get no -owide
NAME STATUS ROLES AGE VERSION INTERNAL-IP EXTERNAL-IP OS-IMAGE KERNEL-VERSION CONTAINER-RUNTIME
k8s-master Ready control-plane,master 110d v1.23.15 192.168.123.11 <なし> CentOS Linux 7 (コア) 5.4.228-1.el7.elrepo.x86_64 docker://20.10.7
k8s-node1 Ready <なし> 110d v1.23.15 192.168.123.12 <なし> CentOS Linux 7 (コア) 5.4.228-1.el7.elrepo.x86_64 docker://20.10.7
k8s-node2 Ready <なし> 110d v1.23.15 192.168.123.13 <なし> CentOS Linux 7 (コア) 5.4.228-1.el7.elrepo .x86_64 docker://20.10.7
[root@k8s-master ~]# kubectl get po -A
NAMESPACE NAME READY STATUS RESTARTS AGE
kube-system coredns-6d8c4cb4d-8fqvx 1/1 Running 1 (110d ago) 110d
kube-system coredns-6d8c4cb4d-wwmkf 1/1 Running 1 (110d ago) 110d
kube-system etcd-k8s-master 1/1 Running 2 (110d ago) 110d
kube-system kube-apiserver-k8s-master 1/1 Running 2 (110d ago) 110d
kube-system kube-controller-manager-k8s-master 1/1 Running 2 (110d ago) 110d
kube-system kube-flannel-ds-jhnhc 1/1 Running 1 (110d ago) 110d
kube-system kube-flannel-ds-v59k2 1/1 Running 1 (110d ago) 110d
kube-system kube-flannel-ds-vlrtj 1/1 Running 1 (110d ago) 110d
kube-system kube-proxy-2xlzz 1/1 Running 2 (110d ago) 110d
kube-system kube-proxy-pndtl 1/1 Running 2 (110d ago) 110d
kube-system kube-proxy-z4zdp 1/1 Running 2 (110d ago) 110d
kube-system kube-scheduler-k8s-master 1/1 Running 2 (110d ago) 110d
OK, 既存の kubernetes クラスターのバージョンは 1.23.15 で、サーバーの IP アドレスはその上にあります. クラスターは比較的クリーンで、インストールされているポッドは多くありません.
二、
docker を使用してランチャーをインストールする
ミラー ダウンロード:
リンク:https://pan.baidu.com/s/1DuP4ZGDES9EhTGGPLprZmQ?pwd=
ranc 抽出コード:ranc
注: rancher のイメージは比較的大きく、主に 2 つのイメージがあり、1 つはサーバー イメージ、もう 1 つはクライアント イメージで、どちらも約 1.5G のサイズです。最初にインポートしますイメージは docker start コマンドを実行しています
[root@k8s-master ~]# ls -alh |grep rancher
-rw-r--r-- 1 root root 1.4G Apr 23 05:59 rancher-2.6.4.tar.gz
-rw-r--r-- 1 root root 1.4G Apr 23 05:59 rancher-agent-2.6.4.tar.gz
docker 起動コマンドは次のとおりです (192.168.123.11 ノードであるマスター ノードでこのコマンドを実行します)。
docker run --privileged -d --name rancher --restart=unless-stopped -p 80:80 -p 443:443 -v /opt/rancher:/var/lib/rancher rancher/rancher:v2.6.4
このコマンドは、Alibaba Cloud のイメージを使用できます.Alibaba Cloud のイメージの場合、コマンドは次のようになります:
docker run --privileged -d --name rancher \
--restart=unless-stopped -p 80:80 -p 443:443 -v /opt/rancher:/var/lib/rancher \
-e CATTLE_AGENT_IMAGE="registry.cn-hangzhou.aliyuncs.com/rancher/rancher-agent:v2.6.4" \
registry.cn-hangzhou.aliyuncs.com/rancher/rancher:v2.6.4
約 3 分間待ってから、Rancher の Web インターフェイスに入ることができます。
三つ、
ランチャー設定
1. Web インターフェイスのパスワードを取得する
[root@k8s-master ~]# docker ps -a |grep rancher
c922a62d3c15 rancher/rancher:v2.6.4 "entrypoint.sh" 11 minutes ago Up 11 minutes 0.0.0.0:80->80/tcp, :::80->80/tcp, 0.0.0.0:443->443/tcp, :::443->443/tcp rancher
[root@k8s-master ~]# docker logs c922a 2>&1 | grep "Bootstrap Password:"
2023/04/22 22:09:56 [INFO] Bootstrap Password: rhs4j82d9bmqqqlqwfkprls5pmx6wmdqnwvjqgcmvkfklsdz9v5bwx
2. rancher にログインし、上記で取得したランダム パスワードを変更します。
2 番目のみヒット √
3. rancher の初期インターフェース
現在、local という名前の k3s クラスターがあり、バージョンがかなり高く、1.22.7 で、ステータスがアクティブであることがわかりますが、これらは重要ではありません.重要なことは、既存の kubernetes をインポートする必要があることです. -1.23.15
4.既存のクラスターをインポートする
注: rancher-agent-2.6.4.tar.gz の 3 つのノードすべてをインポートする必要があります。
このコマンドの出力は、おおよそ次のとおりです。
[root@k8s-master ~]# curl --insecure -sfL https://192.168.123.11/v3/import/ll2gkc5v4mwlxllw8dgld7zfkp2sdclxspmg8hvrkkxksf2zwzr8xg_c-m-vrmw68ql.yaml | kubectl apply -f -
clusterrole.rbac.authorization.k8s.io/proxy-clusterrole-kubeapiserver unchanged
clusterrolebinding.rbac.authorization.k8s.io/proxy-role-binding-kubernetes-master unchanged
namespace/cattle-system unchanged
serviceaccount/cattle unchanged
clusterrolebinding.rbac.authorization.k8s.io/cattle-admin-binding unchanged
secret/cattle-credentials-c4a8a0f created
clusterrole.rbac.authorization.k8s.io/cattle-admin unchanged
Warning: spec.template.spec.affinity.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms[0].matchExpressions[0].key: beta.kubernetes.io/os is deprecated since v1.14; use "kubernetes.io/os" instead
deployment.apps/cattle-cluster-agent created
service/cattle-cluster-agent unchanged
実際に 3 つのノードがあることがわかります。
OK、最初に既存のクラスターをインポートしましたが、一部のプラグインがまだデプロイされていないため、多くの機能がまだ使用できません。
[root@k8s-master ~]# kubectl get po -A -owide
NAMESPACE NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
cattle-fleet-system fleet-agent-6b98dfb776-nqw5j 0/1 ImagePullBackOff 0 17m 10.244.2.4 k8s-node2 <none> <none>
cattle-system cattle-cluster-agent-8f9c97c59-bq57h 1/1 Running 0 5m3s 10.244.2.5 k8s-node2 <none> <none>
cattle-system cattle-cluster-agent-8f9c97c59-hxwfq 1/1 Running 0 17m 10.244.1.4 k8s-node1 <none> <none>
kube-system coredns-6d8c4cb4d-8fqvx 1/1 Running 1 (110d ago) 110d 10.244.0.4 k8s-master <none> <none>
最終的には、次の 4 つが実行されているはずです。
[root@k8s-master ~]# kubectl get po -A -owide
NAMESPACE NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
cattle-fleet-system fleet-agent-55b948fdd7-lvrkx 1/1 Running 0 19m 10.244.1.7 k8s-node1 <none> <none>
cattle-system cattle-cluster-agent-8f9c97c59-bq57h 1/1 Running 0 26m 10.244.2.5 k8s-node2 <none> <none>
cattle-system cattle-cluster-agent-8f9c97c59-hxwfq 1/1 Running 0 38m 10.244.1.4 k8s-node1 <none> <none>
cattle-system dashboard-shell-xkpx6 2/2 Running 0 7s 10.244.2.9 k8s-node2 <none> <none>
牧場主の UI インターフェイスの作について:
rancher-2.6 の UI インターフェースは言語選択で、簡単に中国語に切り替えることができます。
四、
rancher に基づいて新しいクラスターを作成する