エラーの情報から、スワップ パーティションを閉じる必要があることがわかります。コマンドは次のとおりです。
swapoff –a
プロンプト情報をファイル (名前は任意で、この記事では K8sDebug.txt) に保存し、awk、grep、cut およびその他のコマンドを使用して必要なイメージ バージョンをフィルターで除外します。コマンドは次のとおりです。
awk -F" " '{print $7}' K8sDebug.txt | grep -v "^$" | grep -v "connection" |grep -v "fatal"| cut -d ":" -f 1,2
得られた結果は次のとおりです。
図で強調表示されているイメージは必要なイメージ バージョンであり、イメージ バージョンに従って国内のソースに置き換える必要があり、上記の強調表示されたバージョン情報を別のファイル (K8sDebug2.sh) に保存し、ソース アドレスをバッチで置き換え、k8s.gcr.io を registry.aliyuncs.com/google_containers に置き換えます。 コマンドは次のとおりです。
sed -i 's/k8s.gcr.io/registry.aliyuncs.com\/google_containers/g' K8sDebug2.sh
結果は次のとおりです。
置換された結果に従って、対応するイメージをプルします。コマンドは次のとおりです。
for i in `cat K8sDebug2.sh`;do docker pull $i;done
鏡をチェックしてください:
以下に示すように、プルしたイメージを k8s.gcr.io/ 形式に再タグ付けします。スクリプトは K8sDebug3.sh です。
#!/bin/bash
docker tag registry.aliyuncs.com/google_containers/kube-apiserver:v1.15.3 k8s.gcr.io/kube-apiserver:v1.15.3
docker tag registry.aliyuncs.com/google_containers/kube-controller-manager:v1.15.3 k8s.gcr.io/kube-controller-manager:v1.15.3
docker tag registry.aliyuncs.com/google_containers/kube-scheduler:v1.15.3 k8s.gcr.io/kube-scheduler:v1.15.3
docker tag registry.aliyuncs.com/google_containers/kube-proxy:v1.15.3 k8s.gcr.io/kube-proxy:v1.15.3
docker tag registry.aliyuncs.com/google_containers/pause:3.1 k8s.gcr.io/pause:3.1
docker tag registry.aliyuncs.com/google_containers/etcd:3.3.10 k8s.gcr.io/etcd:3.3.10
docker tag registry.aliyuncs.com/google_containers/coredns:1.3.1 k8s.gcr.io/coredns:1.3.1
そして、registry.aliyuncs.com/google_containers/* シリーズのイメージを削除します。コマンドは次のとおりです。
for i in `cat K8sDebug2.sh`;do docker rmi $i;done
コマンドを再実行します。
kubeadm init --pod-network-cidr=10.244.0.0/16 --ignore-preflight-errors=NumCPU