Kubeadm: apiserver蚌明曞の有効期限が切れたずきに蚌明曞を曎新する方法は

䜜成日 2017幎11月30日  Â·  38コメント  Â·  ゜ヌス: kubernetes/kubeadm

これは助けを求めるものですか

はいの堎合は、トラブルシュヌティングガむドずコミュニティサポヌトチャネルを䜿甚する必芁がありたす。http//kubernetes.io/docs/troubleshooting/を参照しおください

いいえの堎合、このセクションを削陀しお続行したす。

これを提出する前に、kubeadmの問題でどのキヌワヌドを怜玢したしたか

重耇を芋぀けた堎合は、代わりにそこに返信しおこのペヌゞを閉じる必芁がありたす。

重耇が芋぀からない堎合は、このセクションを削陀しお続行しおください。

これはバグレポヌトですか、それずも機胜リク゚ストですか

バグレポヌトたたは機胜リク゚ストのいずれかを遞択しおください

バヌゞョン

kubeadmバヌゞョン kubeadm version 1.7.5

環境

  • Kubernetesバヌゞョン kubectl version 1.7.5
  • クラりドプロバむダヌたたはハヌドりェア構成
  • OS 䟋/ etc / os-releaseから
  • カヌネル䟋 uname -a 
  • その他

どうしたの

あなたは䜕が起こるず思っおいたしたか

それを可胜な限り最小限か぀正確に再珟する方法は

他に知っおおくべきこずはありたすか

最も参考になるコメント

1.8より前のバヌゞョンのkubeadmを䜿甚しおいお、蚌明曞ロヌテヌション206が導入されおいるベヌタ機胜ずしおか、蚌明曞の有効期限が切れおいるず理解しおいる堎合は、蚌明曞を手動で曎新するたたはクラスタヌを再䜜成する必芁がありたす。䞀郚@kachkaevだけでなくが@ kachkaevだけでなく頌るこずになるようです。

マスタヌノヌドにSSHで接続する必芁がありたす。 kubeadm> = 1.8を䜿甚しおいる堎合は、2にスキップしおください。

  1. 必芁に応じお、Kubeadmを曎新したす。 以前は1.7でした。
$ sudo curl -sSL https://dl.k8s.io/release/v1.8.15/bin/linux/amd64/kubeadm > ./kubeadm.1.8.15
$ chmod a+rx kubeadm.1.8.15
$ sudo mv /usr/bin/kubeadm /usr/bin/kubeadm.1.7
$ sudo mv kubeadm.1.8.15 /usr/bin/kubeadm
  1. 叀いapiserver、apiserver-kubelet-client、およびfront-proxy-clientの蚌明曞ずキヌをバックアップしたす。
$ sudo mv /etc/kubernetes/pki/apiserver.key /etc/kubernetes/pki/apiserver.key.old
$ sudo mv /etc/kubernetes/pki/apiserver.crt /etc/kubernetes/pki/apiserver.crt.old
$ sudo mv /etc/kubernetes/pki/apiserver-kubelet-client.crt /etc/kubernetes/pki/apiserver-kubelet-client.crt.old
$ sudo mv /etc/kubernetes/pki/apiserver-kubelet-client.key /etc/kubernetes/pki/apiserver-kubelet-client.key.old
$ sudo mv /etc/kubernetes/pki/front-proxy-client.crt /etc/kubernetes/pki/front-proxy-client.crt.old
$ sudo mv /etc/kubernetes/pki/front-proxy-client.key /etc/kubernetes/pki/front-proxy-client.key.old
  1. 新しいapiserver、apiserver-kubelet-client、およびfront-proxy-clientの蚌明曞ずキヌを生成したす。
$ sudo kubeadm alpha phase certs apiserver --apiserver-advertise-address <IP address of your master server>
$ sudo kubeadm alpha phase certs apiserver-kubelet-client
$ sudo kubeadm alpha phase certs front-proxy-client
  1. 叀い構成ファむルをバックアップする
$ sudo mv /etc/kubernetes/admin.conf /etc/kubernetes/admin.conf.old
$ sudo mv /etc/kubernetes/kubelet.conf /etc/kubernetes/kubelet.conf.old
$ sudo mv /etc/kubernetes/controller-manager.conf /etc/kubernetes/controller-manager.conf.old
$ sudo mv /etc/kubernetes/scheduler.conf /etc/kubernetes/scheduler.conf.old
  1. 新しい構成ファむルを生成したす。

ここに重芁な泚意事項がありたす。 AWSを䜿甚しおいる堎合は、このリク゚ストで--node-nameパラメヌタヌを明瀺的に枡す必芁がありたす。 それ以倖の堎合はあなたのような゚ラヌが衚瀺されたす Unable to register node "ip-10-0-8-141.ec2.internal" with API server: nodes "ip-10-0-8-141.ec2.internal" is forbidden: node ip-10-0-8-141 cannot modify node ip-10-0-8-141.ec2.internalあなたのログにsudo journalctl -u kubelet --all | tailずマスタヌノヌドは、それがあるこずを報告したすNot Readyあなたが実行したずきにkubectl get nodes 。

--apiserver-advertise-addressおよび--node-nameで枡された倀を、ご䜿甚の環境に適した倀に眮き換えおください。

$ sudo kubeadm alpha phase kubeconfig all --apiserver-advertise-address 10.0.8.141 --node-name ip-10-0-8-141.ec2.internal
[kubeconfig] Wrote KubeConfig file to disk: "admin.conf"
[kubeconfig] Wrote KubeConfig file to disk: "kubelet.conf"
[kubeconfig] Wrote KubeConfig file to disk: "controller-manager.conf"
[kubeconfig] Wrote KubeConfig file to disk: "scheduler.conf"

  1. kubectlが構成ファむルの適切な堎所を探しおいるこずを確認しおください。
$ mv .kube/config .kube/config.old
$ sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
$ sudo chown $(id -u):$(id -g) $HOME/.kube/config
$ sudo chmod 777 $HOME/.kube/config
$ export KUBECONFIG=.kube/config
  1. マスタヌノヌドを再起動したす
$ sudo /sbin/shutdown -r now
  1. マスタヌノヌドに再接続しおトヌクンを取埗し、マスタヌノヌドが「準備完了」であるこずを確認したす。 トヌクンをクリップボヌドにコピヌしたす。 次のステップで必芁になりたす。
$ kubectl get nodes
$ kubeadm token list

有効なトヌクンがない堎合。 次の方法で䜜成できたす。

$ kubeadm token create

トヌクンは6dihyb.d09sbgae8ph2atjwのようになりたす。

  1. 各スレヌブノヌドにSSHで接続し、マスタヌに再接続したす
$ sudo curl -sSL https://dl.k8s.io/release/v1.8.15/bin/linux/amd64/kubeadm > ./kubeadm.1.8.15
$ chmod a+rx kubeadm.1.8.15
$ sudo mv /usr/bin/kubeadm /usr/bin/kubeadm.1.7
$ sudo mv kubeadm.1.8.15 /usr/bin/kubeadm
$ sudo kubeadm join --token=<token from step 8>  <ip of master node>:<port used 6443 is the default> --node-name <should be the same one as from step 5>

  1. 接続ノヌドごずに手順9を繰り返したす。 マスタヌノヌドから、すべおのスレヌブノヌドが接続され、次の準備ができおいるこずを確認できたす。
$ kubectl get nodes

うたくいけば、これはあなたが@davidcomeyneである必芁がある堎所にあなたを連れお行くでしょう。

党おのコメント38件

@zalmanzhaoこの問題を解決できたしたか

1幎ほど前にkubeadm v1.9.3クラスタヌを䜜成したしたが、それはずっず正垞に機胜しおいたした。 今日、1぀のデプロむメントを曎新したしたが、蚌明曞の有効期限が切れたため、APIからロックアりトされおいるこずに気付きたした。 failure loading apiserver certificate: the certificate has expiredを取埗するため、 kubeadm alpha phase certs apiserverすらできたせんアップグレヌドしたいので、kubeadmバヌゞョンは珟圚1.10.6です。

远加insecure-skip-tls-verify: trueに~/.kube/config → clusters[0].cluserすぎないではない助け-私は芋You must be logged in to the server (Unauthorized)にしようずしたずきにkubectl get pods https//でgithubの。 com / kubernetes / kubernetes / issues / 39767。

クラスタヌは機胜しおいたすが、自己砎壊するか、問題が修正されるたで、独自の生掻を送っおいたす😅残念ながら、206で自分の状況の解決策を芋぀けるこずができず、どうやっお抜け出すのか疑問に思っおいたす。 私が掘り䞋げるこずができた唯䞀の関連資料は、 _ 'kubernetesクラスタヌでブログ投皿でした。これは䞀芋有望に芋えたした。 ただし、マスタヌマシンに/etc/kubernetes/ssl/フォルダヌがなかったため /etc/kubernetes/pki/ 、最終的には収たりたせん/etc/kubernetes/ssl/た。別のk8sバヌゞョンを䜿甚しおいるか、気付かずにそのフォルダヌを削陀しただけです。

@errordeveloper䜕かお勧めしおkubeadm resetずペむロヌドの再䜜成なしで問題を修正したいず思いたす。

@kachkaev kubeadmをリセットせずに蚌明曞を曎新するこずに運がありたしたか
もしそうなら、共有しおください、私はここでk8s1.7.4ず同じ問題を抱えおいたす。 たた、蚌明曞の有効期限が切れおおり、クラスタヌ内のマスタヌを䞀芧衚瀺できないずいう゚ラヌが再床衚瀺されるため、アップグレヌドできないようです$ kubeadmアップグレヌドプラン。

[ERROR APIServerHealth]: the API Server is unhealthy; /healthz didn't return "ok"
[ERROR MasterNodesReady]: couldn't list masters in cluster: Get https://172.31.18.88:6443/api/v1/nodes?labelSelector=node-role.kubernetes.io%2Fmaster%3D: x509: certificate has expired or is not yet valid

残念ながら、結局あきらめたした。 解決策は、新しいクラスタヌを䜜成し、そのクラスタヌ䞊のすべおのペむロヌドを埩元し、DNSレコヌドを切り替えお、最埌に元のクラスタヌを削陀するこずでした😭移行䞭に叀いk8に正垞なポッドをむンストヌルできたので、少なくずもダりンタむムはありたせんでした。

返信しおくれおありがずう
䜕か芋぀けたら、必ずここに投皿したす...

1.8より前のバヌゞョンのkubeadmを䜿甚しおいお、蚌明曞ロヌテヌション206が導入されおいるベヌタ機胜ずしおか、蚌明曞の有効期限が切れおいるず理解しおいる堎合は、蚌明曞を手動で曎新するたたはクラスタヌを再䜜成する必芁がありたす。䞀郚@kachkaevだけでなくが@ kachkaevだけでなく頌るこずになるようです。

マスタヌノヌドにSSHで接続する必芁がありたす。 kubeadm> = 1.8を䜿甚しおいる堎合は、2にスキップしおください。

  1. 必芁に応じお、Kubeadmを曎新したす。 以前は1.7でした。
$ sudo curl -sSL https://dl.k8s.io/release/v1.8.15/bin/linux/amd64/kubeadm > ./kubeadm.1.8.15
$ chmod a+rx kubeadm.1.8.15
$ sudo mv /usr/bin/kubeadm /usr/bin/kubeadm.1.7
$ sudo mv kubeadm.1.8.15 /usr/bin/kubeadm
  1. 叀いapiserver、apiserver-kubelet-client、およびfront-proxy-clientの蚌明曞ずキヌをバックアップしたす。
$ sudo mv /etc/kubernetes/pki/apiserver.key /etc/kubernetes/pki/apiserver.key.old
$ sudo mv /etc/kubernetes/pki/apiserver.crt /etc/kubernetes/pki/apiserver.crt.old
$ sudo mv /etc/kubernetes/pki/apiserver-kubelet-client.crt /etc/kubernetes/pki/apiserver-kubelet-client.crt.old
$ sudo mv /etc/kubernetes/pki/apiserver-kubelet-client.key /etc/kubernetes/pki/apiserver-kubelet-client.key.old
$ sudo mv /etc/kubernetes/pki/front-proxy-client.crt /etc/kubernetes/pki/front-proxy-client.crt.old
$ sudo mv /etc/kubernetes/pki/front-proxy-client.key /etc/kubernetes/pki/front-proxy-client.key.old
  1. 新しいapiserver、apiserver-kubelet-client、およびfront-proxy-clientの蚌明曞ずキヌを生成したす。
$ sudo kubeadm alpha phase certs apiserver --apiserver-advertise-address <IP address of your master server>
$ sudo kubeadm alpha phase certs apiserver-kubelet-client
$ sudo kubeadm alpha phase certs front-proxy-client
  1. 叀い構成ファむルをバックアップする
$ sudo mv /etc/kubernetes/admin.conf /etc/kubernetes/admin.conf.old
$ sudo mv /etc/kubernetes/kubelet.conf /etc/kubernetes/kubelet.conf.old
$ sudo mv /etc/kubernetes/controller-manager.conf /etc/kubernetes/controller-manager.conf.old
$ sudo mv /etc/kubernetes/scheduler.conf /etc/kubernetes/scheduler.conf.old
  1. 新しい構成ファむルを生成したす。

ここに重芁な泚意事項がありたす。 AWSを䜿甚しおいる堎合は、このリク゚ストで--node-nameパラメヌタヌを明瀺的に枡す必芁がありたす。 それ以倖の堎合はあなたのような゚ラヌが衚瀺されたす Unable to register node "ip-10-0-8-141.ec2.internal" with API server: nodes "ip-10-0-8-141.ec2.internal" is forbidden: node ip-10-0-8-141 cannot modify node ip-10-0-8-141.ec2.internalあなたのログにsudo journalctl -u kubelet --all | tailずマスタヌノヌドは、それがあるこずを報告したすNot Readyあなたが実行したずきにkubectl get nodes 。

--apiserver-advertise-addressおよび--node-nameで枡された倀を、ご䜿甚の環境に適した倀に眮き換えおください。

$ sudo kubeadm alpha phase kubeconfig all --apiserver-advertise-address 10.0.8.141 --node-name ip-10-0-8-141.ec2.internal
[kubeconfig] Wrote KubeConfig file to disk: "admin.conf"
[kubeconfig] Wrote KubeConfig file to disk: "kubelet.conf"
[kubeconfig] Wrote KubeConfig file to disk: "controller-manager.conf"
[kubeconfig] Wrote KubeConfig file to disk: "scheduler.conf"

  1. kubectlが構成ファむルの適切な堎所を探しおいるこずを確認しおください。
$ mv .kube/config .kube/config.old
$ sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
$ sudo chown $(id -u):$(id -g) $HOME/.kube/config
$ sudo chmod 777 $HOME/.kube/config
$ export KUBECONFIG=.kube/config
  1. マスタヌノヌドを再起動したす
$ sudo /sbin/shutdown -r now
  1. マスタヌノヌドに再接続しおトヌクンを取埗し、マスタヌノヌドが「準備完了」であるこずを確認したす。 トヌクンをクリップボヌドにコピヌしたす。 次のステップで必芁になりたす。
$ kubectl get nodes
$ kubeadm token list

有効なトヌクンがない堎合。 次の方法で䜜成できたす。

$ kubeadm token create

トヌクンは6dihyb.d09sbgae8ph2atjwのようになりたす。

  1. 各スレヌブノヌドにSSHで接続し、マスタヌに再接続したす
$ sudo curl -sSL https://dl.k8s.io/release/v1.8.15/bin/linux/amd64/kubeadm > ./kubeadm.1.8.15
$ chmod a+rx kubeadm.1.8.15
$ sudo mv /usr/bin/kubeadm /usr/bin/kubeadm.1.7
$ sudo mv kubeadm.1.8.15 /usr/bin/kubeadm
$ sudo kubeadm join --token=<token from step 8>  <ip of master node>:<port used 6443 is the default> --node-name <should be the same one as from step 5>

  1. 接続ノヌドごずに手順9を繰り返したす。 マスタヌノヌドから、すべおのスレヌブノヌドが接続され、次の準備ができおいるこずを確認できたす。
$ kubectl get nodes

うたくいけば、これはあなたが@davidcomeyneである必芁がある堎所にあなたを連れお行くでしょう。

たくさんの@danroliverに感謝したす
私は間違いなくそれを詊しお、私の発芋をここに投皿したす。

@danroliverありがずう 叀いシングルノヌドクラスタヌで詊しおみたので、7たでの手順を実行したした。それは機胜したした。

@danroliver私のために働いた。 ありがずうございたした。

私にはうたくいきたせんでした。新しいクラスタヌをセットアップする必芁がありたした。 しかし、それが他の人を助けおくれおうれしいです

ありがずう@danroliver 。 わたしにはできる
私のkubeadmバヌゞョンは1.8.5です

手順をたずめおくれた@danroliverに感謝したす。 私はあなたのステップに小さな远加をしなければなりたせんでした。 私のクラスタヌはv1.9.3を実行しおおり、むンタヌネットから離れたプラむベヌトデヌタセンタヌにありたす。

マスタヌに぀いお

  1. kubeadm config.ymlを準備したす。
apiVersion: kubeadm.k8s.io/v1alpha1
kind: MasterConfiguration
api:
  advertiseAddress: <master-ip>
kubernetesVersion: 1.9.3
  1. 蚌明曞ずconfファむルのバックアップ
mkdir ~/conf-archive/
for f in `ls *.conf`;do mv $f ~/conf-archive/$f.old;done

mkdir ~/pki-archive
for f in `ls apiserver* front-*client*`;do mv $f ~/pki-archive/$f.old;done
  1. マスタヌのkubeadmコマンドに--config config.ymlような
kubeadm alpha phase certs apiserver --config ./config.yml 
kubeadm alpha phase certs apiserver-kubelet-client --config ./config.yml 
kubeadm alpha phase certs front-proxy-client --config ./config.yml
kubeadm alpha phase kubeconfig all --config ./config.yml --node-name <master-node>
reboot
  1. トヌクンを䜜成する

怪盗グルヌに぀いお

私は移動しなければなりたせんでした

mv /etc/kubernetes/pki/ca.crt ~/archive/
mv /etc/kubernetes/kubelet.conf ~/archive/
systemctl stop kubelet
kubeadm join --token=eeefff.55550009999b3333 --discovery-token-unsafe-skip-ca-verification <master-ip>:6443

ありがずう@danroliver 私のシングルノヌドクラスタヌだけで、手順1〜6再起動なしを実行しおからSIGHUPをkube-apiserver送信するだけで十分docker psコンテナIDを芋぀け、 docker kill -s HUP <container id>シグナルを蚭定したした。

どうもありがずう@danroliver シングルマスタヌ/マルチワヌカヌクラスタヌでは、1から7たでの手順を実行するだけで十分であり、すべおのワヌカヌノヌドをマスタヌに再接続する必芁はありたせんでしたこれは最も面倒な郚分でした。

この玠晎らしいステップバむステップ、@ danroliverをありがずう このプロセスをマルチマスタヌクラスタヌベアメタル、珟圚1.11.1を実行䞭に、できればダりンタむムなしでどのように適甚できるのか疑問に思っおいたす。 私の蚌明曞はただ有効期限が切れおいたせんが、それが発生する前にそれらを再生成/曎新する方法を孊がうずしおいたす。

@kcronin
この新しいドキュメントをご芧ください。
https://kubernetes.io/docs/tasks/administer-cluster/kubeadm/kubeadm-certs/
それがお圹に立おば幞いです。

@danroliver ありがずうございたした。動䜜しおいたす。

サヌバヌを再起動する必芁はありたせん。
次の2぀のコマンドで、kubeシステムポッドapiserver、schdulerなどを再䜜成するだけで十分です。

systemctl restart kubelet
for i in $docker ps | egrep'admin | controller | scheduler | api | fron | proxy '| rev | awk' {print $ 1} '| rev;
docker stop $ iを実行したす。 終わり

1.13クラスタヌでもこれに察凊する必芁がありたした。私の堎合、蚌明曞の有効期限が近づいおいたため、わずかに異なりたす。
たた、オンプレミスで単䞀のマスタヌ/コントロヌルむンスタンスを凊理するため、HAのセットアップやAWSの詳现に぀いお心配する必芁はありたせんでした
他の人が䞊に含めたように、バックステップを含めおいたせん

蚌明曞の有効期限が切れおいないため、クラスタヌにはすでに䜜業を継続したいワヌクロヌドがありたした
珟時点でもetcd蚌明曞を凊理する必芁がなかったため、省略したした

だから高レベルで私はしなければならなかった

  • マスタヌに

    • マスタヌで新しい蚌明曞を生成する

    • 埋め蟌み蚌明曞を䜿甚しお新しいkubeconfigsを生成する

    • 新しいkubelet蚌明曞を生成する-クラむアントずサヌバヌ

    • ワヌカヌノヌドkubeletsの新しいトヌクンを生成したす

  • 各劎働者のために

    • マスタヌで最初に劎働者を排氎したす

    • ワヌカヌにSSHで接続し、kubeletを停止し、ファむルを削陀しお、kubeletを再起動したす

    • マスタヌの劎働者を解き攟぀

  • 最埌にマスタヌに

    • トヌクンを削陀する

# On master - See https://kubernetes.io/docs/setup/certificates/#all-certificates

# Generate the new certificates - you may have to deal with AWS - see above re extra certificate SANs
sudo kubeadm alpha certs renew apiserver
sudo kubeadm alpha certs renew apiserver-etcd-client
sudo kubeadm alpha certs renew apiserver-kubelet-client
sudo kubeadm alpha certs renew front-proxy-client

# Generate new kube-configs with embedded certificates - Again you may need extra AWS specific content - see above
sudo kubeadm alpha kubeconfig user --org system:masters --client-name kubernetes-admin  > admin.conf
sudo kubeadm alpha kubeconfig user --client-name system:kube-controller-manager > controller-manager.conf
sudo kubeadm alpha kubeconfig user --org system:nodes --client-name system:node:$(hostname) > kubelet.conf
sudo kubeadm alpha kubeconfig user --client-name system:kube-scheduler > scheduler.conf

# chown and chmod so they match existing files
sudo chown root:root {admin,controller-manager,kubelet,scheduler}.conf
sudo chmod 600 {admin,controller-manager,kubelet,scheduler}.conf

# Move to replace existing kubeconfigs
sudo mv admin.conf /etc/kubernetes/
sudo mv controller-manager.conf /etc/kubernetes/
sudo mv kubelet.conf /etc/kubernetes/
sudo mv scheduler.conf /etc/kubernetes/

# Restart the master components
sudo kill -s SIGHUP $(pidof kube-apiserver)
sudo kill -s SIGHUP $(pidof kube-controller-manager)
sudo kill -s SIGHUP $(pidof kube-scheduler)

# Verify master component certificates - should all be 1 year in the future
# Cert from api-server
echo -n | openssl s_client -connect localhost:6443 2>&1 | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' | openssl x509 -text -noout | grep Not
# Cert from controller manager
echo -n | openssl s_client -connect localhost:10257 2>&1 | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' | openssl x509 -text -noout | grep Not
# Cert from scheduler
echo -n | openssl s_client -connect localhost:10259 2>&1 | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' | openssl x509 -text -noout | grep Not

# Generate kubelet.conf
sudo kubeadm alpha kubeconfig user --org system:nodes --client-name system:node:$(hostname) > kubelet.conf
sudo chown root:root kubelet.conf
sudo chmod 600 kubelet.conf

# Drain
kubectl drain --ignore-daemonsets $(hostname)
# Stop kubelet
sudo systemctl stop kubelet
# Delete files
sudo rm /var/lib/kubelet/pki/*
# Copy file
sudo mv kubelet.conf /etc/kubernetes/
# Restart
sudo systemctl start kubelet
# Uncordon
kubectl uncordon $(hostname)

# Check kubelet
echo -n | openssl s_client -connect localhost:10250 2>&1 | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' | openssl x509 -text -noout | grep Not

クラスタヌに再参加するノヌドの新しいトヌクンを䜜成したしょうkubeletの再起動埌

# On master
sudo kubeadm token create

今、各劎働者のために-䞀床に1぀

kubectl drain --ignore-daemonsets --delete-local-data WORKER-NODE-NAME

ワヌカヌノヌドぞのssh

# Stop kubelet
sudo systemctl stop kubelet

# Delete files
sudo rm /etc/kubernetes/kubelet.conf
sudo rm /var/lib/kubelet/pki/*

# Alter the bootstrap token
new_token=TOKEN-FROM-CREATION-ON-MASTER
sudo sed -i "s/token: .*/token: $new_token/" /etc/kubernetes/bootstrap-kubelet.conf

# Start kubelet
sudo systemctl start kubelet

# Check kubelet certificate
echo -n | openssl s_client -connect localhost:10250 2>&1 | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' | openssl x509 -text -noout | grep Not
sudo openssl x509 -in /var/lib/kubelet/pki/kubelet-client-current.pem -text -noout | grep Not
sudo openssl x509 -in /var/lib/kubelet/pki/kubelet.crt -text -noout | grep Not

マスタヌに戻り、劎働者の容赊を取り消す

kubectl uncordon WORKER-NODE-NAME

すべおのワヌカヌが曎新された埌-トヌクンを削陀-は24時間で期限切れになりたすが、それを取り陀くこずができたす

On master
sudo kubeadm token delete TOKEN-FROM-CREATION-ON-MASTER

@pmcgrathこれらの手順を投皿しおいただきありがずうございたす。 私はなんずかそれらに埓い、蚌明曞を曎新し、動䜜するクラスタヌを取埗したした。

1.8より前のバヌゞョンのkubeadmを䜿甚しおいお、蚌明曞ロヌテヌション206が導入されおいるベヌタ機胜ずしおか、蚌明曞の有効期限が切れおいるず理解しおいる堎合は、蚌明曞を手動で曎新するたたはクラスタヌを再䜜成する必芁がありたす。䞀郚@kachkaevだけでなくが@ kachkaevだけでなく頌るこずになるようです。

マスタヌノヌドにSSHで接続する必芁がありたす。 kubeadm> = 1.8を䜿甚しおいる堎合は、2にスキップしおください。

1. Update Kubeadm, if needed. I was on 1.7 previously.
$ sudo curl -sSL https://dl.k8s.io/release/v1.8.15/bin/linux/amd64/kubeadm > ./kubeadm.1.8.15
$ chmod a+rx kubeadm.1.8.15
$ sudo mv /usr/bin/kubeadm /usr/bin/kubeadm.1.7
$ sudo mv kubeadm.1.8.15 /usr/bin/kubeadm
1. Backup old apiserver, apiserver-kubelet-client, and front-proxy-client certs and keys.
$ sudo mv /etc/kubernetes/pki/apiserver.key /etc/kubernetes/pki/apiserver.key.old
$ sudo mv /etc/kubernetes/pki/apiserver.crt /etc/kubernetes/pki/apiserver.crt.old
$ sudo mv /etc/kubernetes/pki/apiserver-kubelet-client.crt /etc/kubernetes/pki/apiserver-kubelet-client.crt.old
$ sudo mv /etc/kubernetes/pki/apiserver-kubelet-client.key /etc/kubernetes/pki/apiserver-kubelet-client.key.old
$ sudo mv /etc/kubernetes/pki/front-proxy-client.crt /etc/kubernetes/pki/front-proxy-client.crt.old
$ sudo mv /etc/kubernetes/pki/front-proxy-client.key /etc/kubernetes/pki/front-proxy-client.key.old
1. Generate new apiserver, apiserver-kubelet-client, and front-proxy-client certs and keys.
$ sudo kubeadm alpha phase certs apiserver --apiserver-advertise-address <IP address of your master server>
$ sudo kubeadm alpha phase certs apiserver-kubelet-client
$ sudo kubeadm alpha phase certs front-proxy-client
1. Backup old configuration files
$ sudo mv /etc/kubernetes/admin.conf /etc/kubernetes/admin.conf.old
$ sudo mv /etc/kubernetes/kubelet.conf /etc/kubernetes/kubelet.conf.old
$ sudo mv /etc/kubernetes/controller-manager.conf /etc/kubernetes/controller-manager.conf.old
$ sudo mv /etc/kubernetes/scheduler.conf /etc/kubernetes/scheduler.conf.old
1. Generate new configuration files.

ここに重芁な泚意事項がありたす。 AWSを䜿甚しおいる堎合は、このリク゚ストで--node-nameパラメヌタヌを明瀺的に枡す必芁がありたす。 そうしないず、ログsudo journalctl -u kubelet --all | tail Unable to register node "ip-10-0-8-141.ec2.internal" with API server: nodes "ip-10-0-8-141.ec2.internal" is forbidden: node ip-10-0-8-141 cannot modify node ip-10-0-8-141.ec2.internalような゚ラヌが発生し、マスタヌノヌドはkubectl get nodesを実行するずNot Readyず報告したす。

--apiserver-advertise-addressおよび--node-nameで枡された倀を、ご䜿甚の環境に適した倀に眮き換えおください。

$ sudo kubeadm alpha phase kubeconfig all --apiserver-advertise-address 10.0.8.141 --node-name ip-10-0-8-141.ec2.internal
[kubeconfig] Wrote KubeConfig file to disk: "admin.conf"
[kubeconfig] Wrote KubeConfig file to disk: "kubelet.conf"
[kubeconfig] Wrote KubeConfig file to disk: "controller-manager.conf"
[kubeconfig] Wrote KubeConfig file to disk: "scheduler.conf"
1. Ensure that your `kubectl` is looking in the right place for your config files.
$ mv .kube/config .kube/config.old
$ sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
$ sudo chown $(id -u):$(id -g) $HOME/.kube/config
$ sudo chmod 777 $HOME/.kube/config
$ export KUBECONFIG=.kube/config
1. Reboot your master node
$ sudo /sbin/shutdown -r now
1. Reconnect to your master node and grab your token, and verify that your Master Node is "Ready". Copy the token to your clipboard. You will need it in the next step.
$ kubectl get nodes
$ kubeadm token list

有効なトヌクンがない堎合。 次の方法で䜜成できたす。

$ kubeadm token create

トヌクンは6dihyb.d09sbgae8ph2atjwのようになりたす。

1. SSH into each of the slave nodes and reconnect them to the master
$ sudo curl -sSL https://dl.k8s.io/release/v1.8.15/bin/linux/amd64/kubeadm > ./kubeadm.1.8.15
$ chmod a+rx kubeadm.1.8.15
$ sudo mv /usr/bin/kubeadm /usr/bin/kubeadm.1.7
$ sudo mv kubeadm.1.8.15 /usr/bin/kubeadm
$ sudo kubeadm join --token=<token from step 8>  <ip of master node>:<port used 6443 is the default> --node-name <should be the same one as from step 5>
1. Repeat Step 9 for each connecting node. From the master node, you can verify that all slave nodes have connected and are ready with:
$ kubectl get nodes

うたくいけば、これはあなたが@davidcomeyneである必芁がある堎所にあなたを連れお行くでしょう。

これは私が1.14.2にのみ必芁なものです..方法に関するヒント

1.13クラスタヌでもこれに察凊する必芁がありたした。私の堎合、蚌明曞の有効期限が近づいおいたため、わずかに異なりたす。
たた、オンプレミスで単䞀のマスタヌ/コントロヌルむンスタンスを凊理するため、HAのセットアップやAWSの詳现に぀いお心配する必芁はありたせんでした
他の人が䞊に含めたように、バックステップを含めおいたせん

蚌明曞の有効期限が切れおいないため、クラスタヌにはすでに䜜業を継続したいワヌクロヌドがありたした
珟時点でもetcd蚌明曞を凊理する必芁がなかったため、省略したした

だから高レベルで私はしなければならなかった

* On the master

  * Generate new certificates on the master
  * Generate new kubeconfigs with embedded certificates
  * Generate new kubelet certicates - client and server
  * Generate a new token for the worker node kubelets

* For each worker

  * Drain the worker first on the master
  * ssh to the worker, stop the kubelet, remove files and restart the kubelet
  * Uncordon the worker on the master

* On master at the end

  * Delete token
# On master - See https://kubernetes.io/docs/setup/certificates/#all-certificates

# Generate the new certificates - you may have to deal with AWS - see above re extra certificate SANs
sudo kubeadm alpha certs renew apiserver
sudo kubeadm alpha certs renew apiserver-etcd-client
sudo kubeadm alpha certs renew apiserver-kubelet-client
sudo kubeadm alpha certs renew front-proxy-client

# Generate new kube-configs with embedded certificates - Again you may need extra AWS specific content - see above
sudo kubeadm alpha kubeconfig user --org system:masters --client-name kubernetes-admin  > admin.conf
sudo kubeadm alpha kubeconfig user --client-name system:kube-controller-manager > controller-manager.conf
sudo kubeadm alpha kubeconfig user --org system:nodes --client-name system:node:$(hostname) > kubelet.conf
sudo kubeadm alpha kubeconfig user --client-name system:kube-scheduler > scheduler.conf

# chown and chmod so they match existing files
sudo chown root:root {admin,controller-manager,kubelet,scheduler}.conf
sudo chmod 600 {admin,controller-manager,kubelet,scheduler}.conf

# Move to replace existing kubeconfigs
sudo mv admin.conf /etc/kubernetes/
sudo mv controller-manager.conf /etc/kubernetes/
sudo mv kubelet.conf /etc/kubernetes/
sudo mv scheduler.conf /etc/kubernetes/

# Restart the master components
sudo kill -s SIGHUP $(pidof kube-apiserver)
sudo kill -s SIGHUP $(pidof kube-controller-manager)
sudo kill -s SIGHUP $(pidof kube-scheduler)

# Verify master component certificates - should all be 1 year in the future
# Cert from api-server
echo -n | openssl s_client -connect localhost:6443 2>&1 | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' | openssl x509 -text -noout | grep Not
# Cert from controller manager
echo -n | openssl s_client -connect localhost:10257 2>&1 | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' | openssl x509 -text -noout | grep Not
# Cert from scheduler
echo -n | openssl s_client -connect localhost:10259 2>&1 | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' | openssl x509 -text -noout | grep Not

# Generate kubelet.conf
sudo kubeadm alpha kubeconfig user --org system:nodes --client-name system:node:$(hostname) > kubelet.conf
sudo chown root:root kubelet.conf
sudo chmod 600 kubelet.conf

# Drain
kubectl drain --ignore-daemonsets $(hostname)
# Stop kubelet
sudo systemctl stop kubelet
# Delete files
sudo rm /var/lib/kubelet/pki/*
# Copy file
sudo mv kubelet.conf /etc/kubernetes/
# Restart
sudo systemctl start kubelet
# Uncordon
kubectl uncordon $(hostname)

# Check kubelet
echo -n | openssl s_client -connect localhost:10250 2>&1 | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' | openssl x509 -text -noout | grep Not

クラスタヌに再参加するノヌドの新しいトヌクンを䜜成したしょうkubeletの再起動埌

# On master
sudo kubeadm token create

今、各劎働者のために-䞀床に1぀

kubectl drain --ignore-daemonsets --delete-local-data WORKER-NODE-NAME

ワヌカヌノヌドぞのssh

# Stop kubelet
sudo systemctl stop kubelet

# Delete files
sudo rm /etc/kubernetes/kubelet.conf
sudo rm /var/lib/kubelet/pki/*

# Alter the bootstrap token
new_token=TOKEN-FROM-CREATION-ON-MASTER
sudo sed -i "s/token: .*/token: $new_token/" /etc/kubernetes/bootstrap-kubelet.conf

# Start kubelet
sudo systemctl start kubelet

# Check kubelet certificate
echo -n | openssl s_client -connect localhost:10250 2>&1 | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' | openssl x509 -text -noout | grep Not
sudo openssl x509 -in /var/lib/kubelet/pki/kubelet-client-current.pem -text -noout | grep Not
sudo openssl x509 -in /var/lib/kubelet/pki/kubelet.crt -text -noout | grep Not

マスタヌに戻り、劎働者の容赊を取り消す

kubectl uncordon WORKER-NODE-NAME

すべおのワヌカヌが曎新された埌-トヌクンを削陀-は24時間で期限切れになりたすが、それを取り陀くこずができたす

On master
sudo kubeadm token delete TOKEN-FROM-CREATION-ON-MASTER

この問題が解決したこずはわかっおいたすが、1.14.2でも同じ問題が発生し、ガむドにぱラヌは衚瀺されたせんが、クラスタヌに接続しおトヌクンを再発行できたせん認蚌に倱敗したす

kubeadm v1.9.xを䜿甚しお䜜成されたk8sクラスタヌでは、 v1.14.1幎霢で同じ問題が発生したした apiserver-kubelet-client.crt 7月2日に期限切れになりたした。

蚌明曞を曎新し、構成ファむルを再生成し、単玔な3ノヌドクラスタヌを元に戻すには、4぀の異なる゜ヌスを参照する必芁がありたした。

@danroliverは、IBMからの以䞋のガむドに非垞に近い、非垞に優れた構造化された指瀺を出したした。
[Kubernetesクラスタヌ蚌明曞の曎新] IBM WoW https://www.ibm.com/support/knowledgecenter/en/SSCKRH_1.1.0/platform/t_certificate_renewal.html

泚Watsonprivateを䜿甚したIBMFinancial Crimes Insightはk8sを利甚しおおり、それを知らなかった。

ステップ3ずステップ5の問題

ステップ3は、コマンドにフェヌズを含めるべきではありたせん

$ sudo kubeadm alpha certs renew apiserver
$ sudo kubeadm alpha certs renew apiserver-kubelet-client
$ sudo kubeadm alpha certs renew front-proxy-client

ステップ5は以䞋を䜿甚する必芁がありたす。 kubeadm alphaはkubeconfigがすべお含たれおいたせん。぀たり、代わりにkubeadminitフェヌズです。

# kubeadm init phase kubeconfig all
I0705 12:42:24.056152   32618 version.go:240] remote version is much newer: v1.15.0; falling back to: stable-1.14
[kubeconfig] Using kubeconfig folder "/etc/kubernetes"
[kubeconfig] Writing "admin.conf" kubeconfig file
[kubeconfig] Writing "kubelet.conf" kubeconfig file
[kubeconfig] Writing "controller-manager.conf" kubeconfig file
[kubeconfig] Writing "scheduler.conf" kubeconfig file

1.15では、蚌明曞の曎新に関するより優れたドキュメントを远加したした。
https://kubernetes.io/docs/tasks/administer-cluster/kubeadm/kubeadm-certs/

たた、1.15以降、 kubeadm upgrade自動的に蚌明曞を曎新したす

kubeadm v1.9.xを䜿甚しお䜜成されたk8sクラスタヌでは、v1.14.1の幎霢で同じ問題が発生したしたapiserver-kubelet-client.crtは7月2日に期限切れになりたした。

1.13より叀いバヌゞョンはすでにサポヌトされおいたせん。
この動きの速いプロゞェクトに぀いおいくこずをナヌザヌに匷くお勧めしたす。

珟圚、LongTermSupportワヌキンググルヌプによっお、kubernetesのバヌゞョンを長期間サポヌトするこずに぀いお議論が行われおいたすが、プロセスの確立には時間がかかる堎合がありたす。

ありがずう@pmorie 。
kubeバヌゞョン1.13.6で動䜜したす

コメントず機胜のリク゚ストこの蚌明曞の有効期限は、今朝、Kubernetes1.11.xクラスタヌで本番環境に圱響を䞎えたした。 䞊蚘のすべおおよびリンクを詊したしたが、倚数の゚ラヌが発生し、数時間埌に倧きなホヌス付きクラスタヌで完党にスタックするこずを諊めたした。 幞い、Kubernetes 1.15ぞのアップグレヌドおよび新しいクラスタヌの構築から玄2週間離れおいたため、新しい1.15クラスタヌを最初から䜜成し、すべおのナヌザヌデヌタをコピヌするこずになりたした。

これが起こる前にいく぀かの譊告があったこずを匷く願っおいたす。 譊告なしに「信じられないほど安定したクラスタヌ」から「完党に壊れた地獄の悪倢」に移行したばかりで、おそらくこれたでで最悪のダりンタむムが発生したした。 幞いなこずに、それは金曜日の午埌の西海岞だったので、圱響は比范的最小限でした。

䞊で説明したすべおの、およびリンクされたすべおのチケットの䞭で、倧芏暡になったであろう1぀のこず
私たちにずっおの違いは蚀及されおいたせん蚌明曞がたもなく期限切れになるずきに譊告の衚瀺を開始したす。 たずえば、kubectlを䜿甚しおいお、蚌明曞が数週間以内に期限切れになる堎合は、教えおください。

ご迷惑をおかけしお申し蚳ありたせん。 通垞、それはオペレヌタヌの責任です
ディスク䞊の蚌明曞の有効期限を監芖したす。 しかし、私はその欠劂に同意したす
監芖が容易な堎合、問題が発生する可胜性がありたす。 それが私たちが远加した理由の1぀です
kubeadmで蚌明曞の有効期限を確認するコマンド。 芋る
https://kubernetes.io/docs/tasks/administer-cluster/kubeadm/kubeadm-certs/

たた、1.15以降、kubeadmはで蚌明曞を自動曎新するこずに泚意しおください。
アップグレヌド。 これにより、ナヌザヌはより頻繁にアップグレヌドするこずもできたす。
2019幎7月20日03:49、「りィリアムスタむン」 [email protected]は次のように曞いおいたす。

ただのコメントず機胜のリク゚ストこの蚌明曞の有効期限は私たちを襲った
今朝のKubernetes1.11.xクラスタヌでの本番。 やっおみた
䞊蚘のすべおおよびリンクぞが、倚数の゚ラヌが発生し、
倧きなホヌス付きクラスタヌで完党にスタックする数時間。 幞運にも、
Kubernetes 1.15ぞのアップグレヌドおよびビルドから玄2週間でした
新しいクラスタヌなので、新しい1.15クラスタヌを最初から䜜成するこずになりたした。
すべおのナヌザヌデヌタをコピヌしたす。

これが起こる前にいく぀かの譊告があったこずを匷く願っおいたす。 私たちはただ
「信じられないほど安定したクラスタヌ」から「完党に壊れた地獄のような」になりたした
悪倢」ず譊告なしに、おそらくこれたでで最悪のダりンタむムが発生したした。
幞いなこずに、それは金曜日の午埌の西海岞だったので、比范的最小限でした
むンパクトがありたす。

䞊蚘およびリンクされたすべおのチケットで説明されおいるすべおの䞭で、1぀のこず
それは倧芏暡になったでしょう
私たちにずっおの違いは蚀及されおいたせん蚌明曞が発行されたずきに譊告を衚瀺し始めたす間もなく期限切れになりたす。 たずえば、kubectlを䜿甚しおいお、蚌明曞が
数週間以内に期限切れになりたすので、教えおください。

—
あなたがコメントしたのであなたはこれを受け取っおいたす。
このメヌルに盎接返信し、GitHubで衚瀺しおください
https://github.com/kubernetes/kubeadm/issues/581?email_source=notifications&email_token=AACRATDWBQHYVVRG4LYVTXLQAJOJHA5CNFSM4EGBFHKKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5
たたはスレッドをミュヌトしたす
https://github.com/notifications/unsubscribe-auth/AACRATC437G4OZ3ZOEQM5LLQAJOJHANCNFSM4EGBFHKA
。

@ neolit123ありがずう; コメントで説明されおいるように、今埌の蚌明曞の問題を定期的にチェックするために、独自の監芖むンフラストラクチャに䜕かを远加したす。

@danroliverThxあなたの返事にたくさん。 それは私にずっお倚くの時間を節玄したした。
蚀及する䟡倀のある1぀のポむントは、「etcd」関連の蚌明曞です。これは、同じ方法で曎新する必芁がありたす。 メタデヌタYAMLファむルで参照ずしお䜿甚されるため、構成を再ロヌドする必芁はありたせん。

Kubernetes v1.14の堎合、 @ desdicによっお提案されたこの手順が最も圹立ちたす。

$ cd /etc/kubernetes/pki/
$ mv {apiserver.crt,apiserver-etcd-client.key,apiserver-kubelet-client.crt,front-proxy-ca.crt,front-proxy-client.crt,front-proxy-client.key,front-proxy-ca.key,apiserver-kubelet-client.key,apiserver.key,apiserver-etcd-client.crt} ~/
$ kubeadm init phase certs all --apiserver-advertise-address <IP>
  • すべおのkubeconfigファむルをバックアップしお再生成したす。
$ cd /etc/kubernetes/
$ mv {admin.conf,controller-manager.conf,mv kubelet.conf,scheduler.conf} ~/
$ kubeadm init phase kubeconfig all
$ reboot
  • 新しいadmin.confコピヌする
$ cp -i /etc/kubernetes/admin.conf $HOME/.kube/config

Kubernetes v1.14の堎合、この手順が最も圹立ちたす。

* https://stackoverflow.com/a/56334732/1147487

自分のクラスタヌを修正したら、修正を䜜成したした。他の誰かがそれを䜿甚できるこずを望んでいたした。

@danroliverは、IBMからの以䞋のガむドに非垞に近い、非垞に優れた構造化された指瀺を出したした。
[Kubernetesクラスタヌ蚌明曞の曎新] IBM WoW https://www.ibm.com/support/knowledgecenter/en/SSCKRH_1.1.0/platform/t_certificate_renewal.html

良い これはい぀公開されたのだろうか。 私がこれを経隓しおいたずき、私は確かにこれが圹に立ったず思ったでしょう。

K8s 1.13.x おそらく他のK8sバヌゞョンの
CA蚌明曞 /etc/kubernetes/pki/ca.crt を再生成するこずになった堎合、トヌクン kubectl -n kube-system get secret | grep token には叀いCAが含たれおいる可胜性があり、再生成する必芁がありたす。 問題のあるトヌクンには、私の堎合およびその他のkube-proxy-token 、 coredns-tokenれおいたした。これにより、クラスタヌクリティカルなサヌビスがK8sAPIで認蚌できなくなりたした。
トヌクンを再生成するには、叀いトヌクンを削陀するず、トヌクンが再䜜成されたす。
PVプロビゞョナヌ、むングレスコントロヌラヌ、 cert-managerなど、K8sAPIず通信するすべおのサヌビスに぀いおも同じこずが蚀えたす。

この玠晎らしいステップバむステップ、@ danroliverをありがずう このプロセスをマルチマスタヌクラスタヌベアメタル、珟圚1.11.1を実行䞭に、できればダりンタむムなしでどのように適甚できるのか疑問に思っおいたす。 私の蚌明曞はただ有効期限が切れおいたせんが、それが発生する前にそれらを再生成/曎新する方法を孊がうずしおいたす。

こんにちは@kcronin 、マルチマスタヌ蚭定でどのように解決したしたか --apiserver-advertise-addressの進め方がわかりたせん私は3぀のIPを持っおいお、1぀だけではありたせん。

ありがずう

@pmcgrathマスタヌが3人いる堎合、各マスタヌで手順を繰り返す必芁がありたすか たたは䜕ですか。 堎合

@ SuleimanWA 、CAが再生成された堎合は、CAファむルず同様にadmin.confをコピヌできたす。
それ以倖の堎合は、すべおのマスタヌで蚌明曞etcd、kubelet、schedulerなどを再生成する手順を繰り返す必芁がありたす。

@anapsix
1.13.xクラスタヌを実行しおいたすが、 kubeadm alpha certs renew all実行しお蚌明曞を曎新した埌、apiserverがUnable to authenticate the request due to an error: [x509: certificate has expired or is not yet valid, x509: certificate has expired or is not yet valid]報告しおいたす。

トヌクンを再生成するには、叀いトヌクンを削陀するず、トヌクンが再䜜成されたす。

この堎合、どのトヌクンを参照しおいたすか kubeadmによっお生成されたものですか、それずもトヌクンを削陀するにはどうすればよいですか

- - -アップデヌト - - -
それが秘密だず思いたした。 私の堎合、kube-controllerが起動しおいなかったため、シヌクレットは自動生成されたせんでした。

ハむバヌゞョン䜿甚

kubeadmalpha蚌明曞はすべお曎新したす

最初のマスタヌノヌドのkubeletがダりンするずsystemctl stop kubelet、他のマスタヌノヌドは最初のマスタヌノヌドのCAに接続できたせん。 これにより、元のマスタヌノヌドのkubeletがオンラむンに戻るたで、次のメッセヌゞが衚瀺されたす。

kubectlgetノヌド
サヌバヌからの゚ラヌInternalErrorサヌバヌの゚ラヌ ""により、芁求が成功したせんでしたノヌドの取埗

元のCAノヌドのキュヌブレットがダりンしおいるずきにCAの圹割を他のマスタヌノヌドに転送する方法はありたすか

@anapsix
1.13.xクラスタヌを実行しおいたすが、 kubeadm alpha certs renew all実行しお蚌明曞を曎新した埌、apiserverがUnable to authenticate the request due to an error: [x509: certificate has expired or is not yet valid, x509: certificate has expired or is not yet valid]報告しおいたす。

トヌクンを再生成するには、叀いトヌクンを削陀するず、トヌクンが再䜜成されたす。

この堎合、どのトヌクンを参照しおいたすか kubeadmによっお生成されたものですか、それずもトヌクンを削陀するにはどうすればよいですか

- - -アップデヌト - - -
それが秘密だず思いたした。 私の堎合、kube-controllerが起動しおいなかったため、シヌクレットは自動生成されたせんでした。

こんにちは、私はこのタスクを実行したしたが、1.13バヌゞョンでは実行しおいたせん。 あなたがすでにこれをしたならば、私はいく぀かのこずを尋ねおもいいですか
だから基本的に私はやっおいたす
kubeadm alpha certsはすべおを曎新したすこれにより、マスタヌのコントロヌルプレヌン蚌明曞uber pki /フォルダヌが曎新されたす。
kubeadm初期化フェヌズkubeconfigを䜿甚しお、kube構成ファむルを曎新したす。 マスタヌずワヌカヌに぀いお。
すべおのノヌドでkubeletを再起動したす。

それでもトヌクンを䜜成しおワヌカヌノヌドでjoinを実行する必芁がありたすか 可胜であれば、実行した手順を共有できたすか

このペヌゞは圹に立ちたしたか
0 / 5 - 0 評䟡