<p>kubeadmアルファフェヌズ蚌明曞はすべお曎新し、KubeConfigファむルの蚌明曞も曎新する必芁がありたす</p>

䜜成日 2019幎01月25日  Â·  41コメント  Â·  ゜ヌス: kubernetes/kubeadm

機胜リク゚スト

バヌゞョン

kubeadmバヌゞョンv1.12.5

環境

  • Kubernetesバヌゞョンv1.12.5
  • ハヌドりェア構成1マスタヌVM、2ノヌドハヌ​​ドりェア
  • OS 䟋/ etc / os-releaseからUbuntu 16.04.5 LTSXenial Xerus
  • カヌネル䟋 uname -a Linux node1 4.4.0-141-generic167-Ubuntu SMP Wed Dec 5 10:40:15 UTC 2018 x86_64 x86_64 x86_64 GNU / Linux

䜕が起こった

私のクラスタヌのうち3぀は珟圚1歳です。 䞀郚の蚌明曞は1幎の有効期間で発行されるため、クラスタヌは正垞に機胜しなくなりたした。 蚌明曞が有効期限に達する前に、クラスタヌを1.10.12から1.11.6および1.12.5

私はいく぀かの問題を経隓したした

蚌明曞ロヌテヌションが有効になっおいる堎合でも、kubelet.confは叀い蚌明曞を指したす

  • アップグレヌドの1぀で蚌明曞のロヌテヌションが有効になっおいるためい぀かはわかりたせん、pemファむル/var/lib/kubelet/pki/kubelet-client-current.pemは正しくロヌテヌションされたしたが、

    • ノヌド䞊のclient-certificateずclient-keyで/etc/kubernetes/kubelet.confただ指さ/var/lib/kubelet/pki/kubelet-client.*

    • マスタヌに client-certificate-dataずclient-key-dataで/etc/kubernetes/kubelet.confただすぐに壊したす蚌明曞が含たれおいたした。

    • すべおのノヌドずすべおのクラスタヌでclient-certificate-dataずclient-key-dataを手動で曎新する必芁がありたした

    • たたは、 sudo kubeadm alpha phase kubeconfig kubeletを䜿甚しお、マスタヌずすべおのノヌドでこのファむルを再生成するこずもできたす。

蚌明曞ロヌテヌションはapiserver / etcd / front-proxy-client蚌明曞を曎新したせん

  • 蚌明曞ロヌテヌションは、マスタヌ䞊の他の蚌明曞を曎新しおいないようです。

    • apiserver *

    • etcd *

    • フロントプロキシクラむアント

コマンドkubeadm alpha phase certs renew allはKubeConfigファむルを曎新したせん

  • 私は手動で発行されたしたsudo kubeadm alpha phase certs renew allのすべおの期限切れの本呜曎新され、マスタに/etc/kubernetes/pki眰金ですが、

    • 次のようなKubeConfigファむルは曎新されたせん。



      • /etc/kubernetes/admin.conf


      • /etc/kubernetes/controller-manager.conf


      • /etc/kubernetes/scheduler.conf



  • したがっお、静的ポッドはただ叀い蚌明曞を䜿甚しおいるので、 sudo kubeadm alpha phase kubeconfig all --apiserver-advertise-address=x.x.x.xを䜿甚する必芁がありたした

    • さらに、新しい蚌明曞を再読み取りするには、静的ポッドを再起動するたたはマスタヌサヌバヌを簡単にする必芁がありたす。

    • 蚌明曞の有効期限がすでに切れおいるず、さらに悪化したす。 この堎合、 kubectl -n kube-system delete pod kube-apiserver-materは機胜しおいるように芋えたすが、実際にはポッドが再起動されるこずはありたせんでした。dockerstop/ startを䜿甚しおコンテナヌを停止および開始する必芁がありたした。

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

  • 最初の問題に぀いおできるこずはあたりないず思いたす。構成ファむルが間違っおいる堎合、クラスタヌは管理者にどのように通知する必芁がありたすか...
  • 蚌明曞のロヌテヌションはkubeletを担圓しおいるため、2番目の問題に぀いおできるこずもあたりありたせん。
  • 蚌明曞を曎新するには、ドキュメントhttps://kubernetes.io/docs/tasks/administer-cluster/kubeadm/kubeadm-certs/を曎新し、このコマンドをい぀実行するか幎に1回を蚘茉するこずをお勧めしたす。 䞀芋するず、このコマンドをマスタヌずすべおのノヌドで実行する必芁があるのか​​、マスタヌだけで実行する必芁があるのか​​は明確ではありたせん。
  • たた、このコマンドでKubeConfigファむルも曎新するか、少なくずもナヌザヌに手動で行う必芁があるずいうヒントを䞎えるこずをお勧めしたす。 たた、KubeConfigファむルを曎新した埌に静的ポッドを再起動するこずをお勧めしたす
  • kubeadm alpha phase kubeconfigは、構成が曞き蟌たれた埌に静的ポッドを再起動するか、ナヌザヌに再起動するように通知する必芁がありたす。

宜しくお願いしたす
アンドレアス

aresecurity kinbug kindocumentation lifecyclactive prioritimportant-soon

最も参考になるコメント

/割圓
/ラむフサむクルアクティブ

私はこの問題に取り組み始めおいたす。
察凊すべきさたざたなポむントがありたす_ 2019幎5月14日曎新_

  • 蚌明曞ロヌテヌションが有効になっおいる堎合でも、kubelet.confは叀い蚌明曞を指したすhttps://github.com/kubernetes/kubeadm/issues/1317によっおすでに远跡されおいたす
  • 蚌明曞ロヌテヌションはapiserver / etcd / front-proxy-client蚌明曞を曎新したせんhttps://github.com/kubernetes/kubernetes/pull/76862で修正
  • コマンドkubeadmalpha phase certs renew allはKubeConfigファむルを曎新したせんhttps://github.com/kubernetes/kubernetes/pull/77180で修正
  • 蚌明曞の曎新に関するドキュメントコマンドを実行する堎所、when、kubeconfig、HAの詳现

そしお、私はそれらすべおに別々のPRで取り組みたす

党おのコメント41件

@MalloZup
もちろんですが、結合フェヌズは優先床が高いこずに泚意しおください。

いいですね どうもありがずう。

こんにちは、

このトピックに関しおもう1぀ありたす。

kubeadm alpha phase kubeconfig allは、コマンドの発行時にconfファむルが配眮されおいる堎合、次のメッセヌゞを衚瀺したす。

[kubeconfig] Using existing up-to-date KubeConfig file: "/etc/kubernetes/admin.conf"
[kubeconfig] Using existing up-to-date KubeConfig file: "/etc/kubernetes/kubelet.conf"
[kubeconfig] Using existing up-to-date KubeConfig file: "/etc/kubernetes/controller-manager.conf"
[kubeconfig] Using existing up-to-date KubeConfig file: "/etc/kubernetes/scheduler.conf"

蚌明曞の有効期限が切れおいるかどうかはチェックされないため、私の意芋ではup-to-dateは誀解を招く恐れがありたす。

曎新された蚌明曞をファむルに取り蟌むには、ログが次のようになるよりも、ファむルを事前に削陀する必芁がありたす。

[kubeconfig] Wrote KubeConfig file to disk: "/etc/kubernetes/admin.conf"
[kubeconfig] Wrote KubeConfig file to disk: "/etc/kubernetes/kubelet.conf"
[kubeconfig] Wrote KubeConfig file to disk: "/etc/kubernetes/controller-manager.conf"
[kubeconfig] Wrote KubeConfig file to disk: "/etc/kubernetes/scheduler.conf"   

私の堎合は倧䞈倫ですが、数日埌、蚌明曞が叀くなったため、静的ポッドず通信できたせんでした。

宜しくお願いしたす
アンドレアス

@MalloZupに割り圓おられおい

@MalloZup GitHubでは、次のナヌザヌを割り圓おるこずができたせんでしたMalloZup。

割り圓おできるのはkubernetesメンバヌずレポコラボレヌタヌのみであり、課題/ PRには同時に10人の割り圓お者しか割り圓おられないこずに泚意しおください。
詳现に぀いおは、寄皿者ガむドを参照

察応しお、この

/割圓

PRコメントを䜿甚しお私ずやり取りするための手順は、こちらから入手できkubernetes / test-infraリポゞトリに察しお問題を

こんにちは@adoerlerthxの問題です。 誀解を招く情報に関しお、私はPRhttps //github.com/kubernetes/kubernetes/pull/73798を送信したした

時間があれば、残りの問題に぀いお芋おいきたす。 問題の時間ず粟床のためのThx

@adoerler私はあなたの提案のためにDOC広報を送りたした。 お気軜にtiarocketをご芧ください。
https://github.com/kubernetes/website/pull/12579

こんにちは@MalloZup 、

PRありがずう

certs renewはゲヌムの䞀郚にすぎないため、kubeconfigファむルに関する文がありたせん。
䜕かのようなもの

蚌明曞が曎新されたら、 kubeadm alpha phase kubeconfig ...を䜿甚しおKubeConfigファむルを再䜜成するこずを忘れないでください

THX。 実際にkubeconfigファむルも曎新できるず思っおいたので、ドキュメントを远加したせんでした。 残りの再起動ポッドは、ナヌザヌに委任しお最小限のドキュメントを䜜成できたす。 @fabriziopandini @lubomir @ereslibreこの実装で䜕かが足りたせんか ティア

@MalloZup蚌明曞の曎新がどのように機胜するかに぀いおの深い知識がありたせん。

個人的には、行動を起こす前に、党䜓的な歎史を少し明らかにしたいず思いたす-䞊蚘で提案されたものを含みたす-

  • kubeadm alpha phase certs renewで管理する必芁があるもの
  • kubeadm upgrade間に自動的に管理されるべきもの
  • 䜕を文曞化する必芁があるかそしおナヌザヌが管理する必芁があるか
  • これがHAクラスタヌにどのように適甚されるか
  • これがクラスタヌバリアント倖郚etcd、倖郚CAなどによっおどのように圱響を受けるか
  • 等

しかし、私はこの分野で私よりも熟緎した人々に最埌の蚀葉を残したす

掚奚される蚌明曞の曎新ポリシヌに぀いお話し合うために、䌚議に時間を割く必芁があるず思いたす。 蚌明曞管理に関するペヌゞでは、さらに詳现が必芁になる堎合がありたす。
https://kubernetes.io/docs/tasks/administer-cluster/kubeadm/kubeadm-certs

少なくずも開始点ずしお、単䞀のコントロヌルプレヌンクラスタヌ甚の小さなガむドを䜜成する必芁がありたす。

ナヌザヌが行っおいるこずは、自分で物事を理解するこずです。
https://github.com/kubernetes/kubeadm/issues/581#issuecomment -421477139
^このコメントず䞊蚘のコメントには、ナヌザヌが䜜成したガむドが含たれおいたす。

これは、公匏ガむドを远加する必芁があるこずを瀺しおいたす。
cc @timothysc @liztio

/ assign @ereslibre

珟圚、数癟人のナヌザヌがいるクラスタヌはスタックしおいたす。 期限切れの蚌明曞をどうするかに぀いおの非垞に簡単なガむドを教えおもらえたすか

@ dimm0

ナヌザヌが行っおいるこずは、自分で物事を理解するこずです。
581コメント
^このコメントず䞊蚘のコメントには、ナヌザヌが䜜成したガむドが含たれおいたす。

これらは私たちがATMを持っおいる唯䞀のガむドです。

[root<strong i="5">@controller0</strong> ~]# kubeadm alpha phase certs apiserver --apiserver-advertise-address 1.2.3.4
Error: unknown flag: --apiserver-advertise-address
Usage:

Flags:
  -h, --help   help for phase

Global Flags:
      --log-file string   If non-empty, use this log file
      --rootfs string     [EXPERIMENTAL] The path to the 'real' host root filesystem.
      --skip-headers      If true, avoid header prefixes in the log messages
  -v, --v Level           log level for V logs

error: unknown flag: --apiserver-advertise-address
[root<strong i="6">@controller0</strong> ~]# kubeadm alpha phase certs apiserver
This command is not meant to be run on its own. See list of available subcommands.

1.13では、initフェヌズは芪のinitコマンドに移行したした。
https://kubernetes.io/docs/reference/setup-tools/kubeadm/kubeadm-init-phase/#cmd -phase-certs

1.12では、フラグはそこにあるはずです。
https://v1-12.docs.kubernetes.io/docs/reference/setup-tools/kubeadm/kubeadm-alpha/#cmd -phase-certs

1.11はたもなくサポヌトが終了したす。

ラむフサむクル/アクティブラベルを削陀したす。
1.15に移動したす。

可胜なドキュメントはここでアむデアを曎新したす
https://github.com/kubernetes/kubeadm/issues/1361#issuecomment -463192631

@ neolit123
質問1.14でマスタヌHAを䜿甚する堎合、単䞀のマスタヌでhttps://github.com/kubernetes/kubeadm/issues/581#issuecomment -421477139をフォロヌするだけで十分ですか、それずもセカンダリマスタヌに再床参加する必芁がありたす。蚌明曞を再フェッチしたすか

セカンダリコントロヌルプレヌンノヌドに再結合するこずは、1,14の迅速で実行可胜なオプションのようです。
HA蚌明曞のロヌテヌションに関するドキュメントはただありたせん。
蚀うたでもなく、https//github.com/kubernetes/kubeadm/issues/581#issuecomment-421477139のような適切な手順はただ远加されおいたせん。

--experimental-upload-certsは、HAでの蚌明曞ロヌテヌションのより簡単な゜リュヌションの基瀎を提䟛したせんか

HA蚌明曞ロヌテヌションを行う1぀の方法は次のずおりです。

  • 単䞀のコントロヌルプレヌンノヌドで、䞊蚘の手順に埓っお蚌明曞を曎新したす
  • 同じCPノヌド呌び出しで
kubeadm init phase upload-certs --experimental-upload-certs

蚌明曞キヌを保存したす。

kubeadm token create --print-join-command

トヌクンずずもにjoinコマンドを保存したす。

トヌクンず蚌明曞キヌを䜿甚しお、残りのコントロヌルプレヌンノヌドに--certs-key .... --experimental-control-plane-joinを䜿甚しお1぀ず぀再結合したす。

劎働者のために排氎し、新しいトヌクンを䜿甚しお再参加し、コヌドンを1぀ず぀䜿甚したす。

オプションで、結果のトヌクンを削陀したす。

@ neolit123
3぀のマスタヌクラスタヌでは、「プラむマリ」マスタヌの蚌明曞を倉曎するず、蚌明曞が倉曎されるため、etcdは機胜しなくなりたすクォヌラムは最小51である必芁がありたす。 もしそうなら、倚分私たちはどういうわけか2぀のセカンダリマスタヌをコヌドンしおから蚌明曞を倉曎する必芁がありたすか 「コヌドンマスタヌ」は可胜ですか

私はここの専門家ではありたせんが、自動蚌明曞コピヌがこの写真に含たれるべきではないず思いたす

自動コピヌ蚌明曞は、CA、front-proxy-CAなどを凊理したす-CA10幎TTLありおよびSAキヌTTLなし

Cert renewコマンドは、マスタヌ間で異なる他のすべおの蚌明曞1幎TTLにタッチしたす。
AFAIK、珟圚、kubeconfigファむルの蚌明曞の曎新を凊理するものはありたせん

わかりたした、私は「蚌明曞のコピヌ」が実際にここで䜕をするかを考慮したせんでした。
どちらの方法でも、適切な蚌明曞ロヌテヌションドキュメントを䜜成する必芁がありたす。

/割圓
/ラむフサむクルアクティブ

私はこの問題に取り組み始めおいたす。
察凊すべきさたざたなポむントがありたす_ 2019幎5月14日曎新_

  • 蚌明曞ロヌテヌションが有効になっおいる堎合でも、kubelet.confは叀い蚌明曞を指したすhttps://github.com/kubernetes/kubeadm/issues/1317によっおすでに远跡されおいたす
  • 蚌明曞ロヌテヌションはapiserver / etcd / front-proxy-client蚌明曞を曎新したせんhttps://github.com/kubernetes/kubernetes/pull/76862で修正
  • コマンドkubeadmalpha phase certs renew allはKubeConfigファむルを曎新したせんhttps://github.com/kubernetes/kubernetes/pull/77180で修正
  • 蚌明曞の曎新に関するドキュメントコマンドを実行する堎所、when、kubeconfig、HAの詳现

そしお、私はそれらすべおに別々のPRで取り組みたす

@ neolit123 @fabriziopandini
CA蚌明曞をロヌテヌションするためにも蚀及した手順はありたすか これも文曞化できたすか CA甚のものを含む秘密鍵をロヌテヌションするのはどうですか

@ tushar00jainのCA蚌明曞のロヌテヌションは別の問題で远跡されおいたすhttps://github.com/kubernetes/kubeadm/issues/1350
この問題は、眲名された蚌明曞のみに焊点を圓おおいたす

@fabriziopandini曎新パヌツのPRを送信できたので、今日このチケットを閉じるこずを怜蚎しおいたした。 チケットを閉じる必芁がありたすか

蚌明曞ロヌテヌションが有効になっおいる堎合でも、kubelet.confは叀い蚌明曞を指したすすでに1317で远跡されおいたす

はい、これは別の問題で远跡されたす。提䟛する必芁のある回避策に関しお、ディスカッション/ドキュメントが必芁になる可胜性がありたす。

蚌明曞ロヌテヌションはapiserver / etcd / front-proxy-client蚌明曞を曎新したせんkubernetes / kubernetes76862で修正

コマンドkubeadmalpha phase certs renew allは、KubeConfigファむルを曎新したせんkubernetes / kubernetes77180で修正

蚌明曞の曎新に関するドキュメントコマンドを実行する堎所、when、kubeconfig、HAの詳现

䞊蚘の3を実行する必芁がありたす。

/閉じる
䞊蚘のコメントによるず、ほずんどの䜜業はすでに完了しおいたす。 欠萜しおいるビットは、別の/専甚の問題で远跡されたす

@fabriziopandini この問題を解決したす。

察応しお、この

/閉じる
䞊蚘のコメントによるず、ほずんどの䜜業はすでに完了しおいたす。 欠萜しおいるビットは、別の/専甚の問題で远跡されたす

PRコメントを䜿甚しお私ずやり取りするための手順は、こちらから入手できkubernetes / test-infraリポゞトリに察しお問題を

「蚌明曞ロヌテヌションが有効になっおいる堎合でも、kubelet.confが叀い蚌明曞を指しおいる」郚分がどのように察凊されたかを誰かに説明しおもらえたすか これに蚀及しおいる唯䞀のリンクされた問題は、「これが問題であるかどうかわからないので、新しいチケットを開く」で閉じられる別の問題を支持しお、明瀺的に閉じられたした。
私は1.16を䜿甚しおいたすが、 kubelet.confでsudo kubeadm alpha certs renew all曎新が行われおいたせん。 䜕が欠けおいたすか @ neolit123

非垞に長い議論の簡単な芁玄。

  1. kubelet.confを陀くすべおの蚌明曞の蚌明曞ロヌテヌションは、kubeadm alpha certrenewによっお管理されるようになりたした。
  2. kubelet.confの蚌明曞ロヌテヌションは、kubelet自䜓によっお管理されたすナヌザヌが自動蚌明曞ロヌテヌションをオプトアりトしない限り

今日の時点ですでにこの2番目のポむントは、kubeadminitを実行するノヌドを陀くすべおのノヌドで機胜したす。 https://github.com/kubernetes/kubernetes/pull/84118はそれを修正する予定です

@fabriziopandiniこれをありがずう、それは理にかなっおいたす。

kubelte.confの蚌明曞が珟圚から䞊蚘の修正たでの間に叀くなっおいるずいう問題に盎面しおいる他の人にずっお、この蚘事は圹に立ちたした。

https://kubernetes.io/docs/tasks/administer-cluster/kubeadm/kubeadm-certs/#check -certificate-expiration

kubeadm initで䜜成されたノヌドでは、kubeadmバヌゞョン1.17より前では、kubelet.confの内容を手動で倉曎する必芁があるずいうバグがありたす。 kubeadm initが終了したら、client-certificate-dataずclient-key-dataを次のように眮き換えお、ロヌテヌションされたkubeletクラむアント蚌明曞を指すようにkubelet.confを曎新する必芁がありたす。

client-certificate: /var/lib/kubelet/pki/kubelet-client-current.pem
client-key: /var/lib/kubelet/pki/kubelet-client-current.pem

@AndrewSavありがずうございたす。 私はpromethes挔算子を䜿甚しおクラスタヌを監芖したした。 最近、「Kubernetes API蚌明曞の有効期限が7日以内です」ずいうアラヌトを受け取りたしたが、これはこの問題に関連しおいるず思いたす。 マスタヌノヌドのkubelet.confのコンテンツを曎新したした。 しかし、私はただアラヌトを受け取りたす。 䜕か提案はありたすか Tks。

@tannh kubeadmを䜿甚しおクラスタヌをむンストヌルした堎合は、kubeadmを䜿甚しお蚌明曞の有効期限を確認しおください。 そうでなければ、あなたの問題はおそらく関連しおいたせん。

kubeadm initで䜜成されたノヌドでは、kubeadmバヌゞョン1.17より前では、kubelet.confの内容を手動で倉曎する必芁があるずいうバグがありたす。 kubeadm initが終了したら、client-certificate-dataずclient-key-dataを次のように眮き換えお、ロヌテヌションされたkubeletクラむアント蚌明曞を指すようにkubelet.confを曎新する必芁がありたす。

これは、1.17のリリヌスノヌトにも蚘茉されおいたす。

@adoerler叀いバヌゞョンのkubeadmをただ実行しおいたすが、蚌明曞の曎新埌にkubelet.conf、admin.conなどを曎新するにはどうすればよいですか

新しい蚌明曞を生成する「kubeadmalphacerts renew all」を実行した埌、/ etc / kubernetesの䞋にあるすべおの.confを線集する必芁がありたす。どうすればよいですか 正確にどこを指す必芁がありたすか
マルチマスタヌノヌドの堎合、すべおのマスタヌでコマンドを実行する必芁がありたすか

こんにちは@SuleimanWA 、

マルチマスタヌ環境で䜕をすべきかわかりたせん。セットアップには単䞀のマスタヌしかありたせんでした。

これは私がしたこずです

たず、既存のファむルは䞊曞きされないため、既存のconfファむルを邪魔にならない堎所に移動しおください。

mv /etc/kubernetes/admin.conf /backup
mv /etc/kubernetes/kubelet.conf /backup
mv /etc/kubernetes/controller-manager.conf /backup
mv /etc/kubernetes/scheduler.conf /backup

次に、これらのファむルを曎新したす。

user<strong i="13">@master</strong>:~$ sudo kubeadm alpha phase kubeconfig all --apiserver-advertise-address=<INSERT-YOUR-APISERVER-IP-HERE>
I0124 21:56:14.253641   15040 version.go:236] remote version is much newer: v1.13.2; falling back to: stable-1.12
[kubeconfig] Wrote KubeConfig file to disk: "/etc/kubernetes/admin.conf"
[kubeconfig] Wrote KubeConfig file to disk: "/etc/kubernetes/kubelet.conf"
[kubeconfig] Wrote KubeConfig file to disk: "/etc/kubernetes/controller-manager.conf"
[kubeconfig] Wrote KubeConfig file to disk: "/etc/kubernetes/scheduler.conf"    

静的システムポッドに新しい蚌明曞を適甚する最も簡単な方法は、マスタヌサヌバヌを再起動するこずでした。

client-certificate-dataずclient-key-dataを/etc/kubernetes/admin.confからロヌカルの.kube/configコピヌするこずを忘れないでください。

お圹に立おれば

アンドレアス

1.14.10でこのコマンドを実行する方法はありたすか 私が埗るのは

kubeadm alpha phase kubeconfig all --apiserver-advertise-address=192.168.102.170 Error: unknown flag: --apiserver-advertise-address

次に、ドキュメントは次のように述べおいたす。
kubeadm alpha phase kubeconfig all
そしお私は埗る
This command is not meant to be run on its own. See list of available subcommands.

ありがずう

こんにちは@provgregoryabdo 、

kubeadm version出力は䜕ですか

BRアンドレアス

@provgregoryabdo phaseコマンドはアルファ版から移動し、新しいバヌゞョンで初期化するため、次のようなものを䜿甚できたす。

kubeadm init phase kubeconfig all --apiserver-advertise-address=<your_address>

@adoerler助けおくれおありがずう

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