この極端な場合には、慎重な計画と操作をすること、それがクラスタが完全に死んでさせません。有効期限が切れてはならないまず、少数のCAルート証明書は、10年の期間です。我々は、利用可能な認証のコンポーネントを再生成し、これらのルート証明書に基づくことができます。
以下のプログラムステップを達成することができる初期の、最初の策定、検証します。
まず、基本的な文書作成証明書。
CA-csr.json(ルート証明書がOKであるので、このファイルが、ここに記載されているので、費やすことはありません)
{ "CN": "kubernetes" 、 "キー" :{ "アルゴ": "RSA" 、 "サイズ":2048 }、 "CA" :{ "有効期限": "438000h" } }
(ca.crtとca.keyから新たな自己署名されたルート証明書を生成するために使用され、共有することができる)CA-config.json
{ "署名" :{ "デフォルト" :{ "期限切れ": "43800h" }、 "プロファイル" :{ "サーバ" :{ "期限切れ": "43800h" 、 "用途" : "署名" 、 「鍵暗号化" "サーバAUTH" ] } "クライアント" :{ "期限切れ": "43800h" 、 "用法」 :[ "署名" 、 "キー暗号化" 、 "クライアントAUTH" ] } "ピア" :{ "期限切れ": "43800h" 、 "用途" : "署名" 、 "キー暗号化" 、 "サーバー認証" 、 "クライアントAUTH" ] } } } }
第二に、((これは/ etc / kubernetes / PKI / etcd / CA証明書ディレクトリに基づいていることに注意してください)etcdシリーズの証明書を再生成します
Etcd-server.json
{ "CN": "etcdServer" 、 "ホスト" : "127.0.0.1" 、 "ローカルホスト" 、 "小写主机名" 、 "本机IP" ]、 "キー" :{ "アルゴ": "RSA" 、 "サイズ":2048 }、 "名称" :[ { "O": "etcd" 、 "OU": "etcdセキュリティ" 、 "C": "CN" 、 "L": "上海" 、 "ST": "上海" } ] }
cfssl gencertを-ca = ca.crt -ca-キー= ca.key -config = CA-config.json -profile =サーバーetcd-server.json | cfssljson -bareサーバー
etcd-peer.json
{ "CN": "etcdPeer" 、 "ホスト" : "127.0.0.1" 、 "ローカルホスト" 、 "小写主机名" 、 "本机IP" ]、 "キー" :{ "アルゴ": "RSA" 、 "サイズ":2048 }、 "名称" :[ { "O": "etcd" 、 "OU": "etcdセキュリティ" 、 "C": "CN" 、 "L": "上海" 、 "ST ": "上海" } ] }
cfssl gencertを-ca = ca.crt -ca-キー= ca.key -config = CA-config.json -profile =ピアetcd-peer.json | cfssljson -bareピア
etcd-client.json
{ "CN": "etcdClient" 、 "キー" :{ "アルゴ": "RSA" 、 "サイズ":2048 }、 "名称" :[ { "O": "etcd" 、 "OU":「etcdセキュリティ" 、 "C": "CN" 、 "L": "上海" 、 "ST": "上海" } ] }
cfssl gencertを-ca = ca.crt -ca-キー= ca.key -config = CA-config.json -profile =クライアントetcd-client.json | cfssljson -bareクライアント
第三に、再作成apiserver証明書(これはPKIディレクトリの下の/ etc / kubernetes / CA証明書に基づいていることに注意してください)
Apiserver.json
{ "CN": "KUBE-apiserver" 、 "ホスト" :[ "kubernetes" 、 "kubernetes.default" 、 "kubernetes.default.svc" 、 "kubernetes.default.svc.cluster.local" 、 「10.96.0.1 " 、 "小写主机名" 、 "本机IP" ]、 "キー" :{ "アルゴ": "RSA" 、 "サイズ":2048 } }
cfssl gencertを-ca = ca.crt -ca-キー= ca.key -config = CA-config.json -profile =サーバーapiserver.json | cfssljson -bare apiserver
apiserver-kubelet-client.json
{ "CN": "KUBE-apiserver-kubeletクライアント" 、 "キー" :{ "アルゴ": "RSA" 、 "サイズ":2048 }、 "名称" :[ { "O": "システム:マスター" } ] }
cfssl gencertを-ca = ca.crt -ca-キー= ca.key -config = CA-config.json -profile =クライアントapiserver-kubelet-client.json | cfssljson -bare apiserver-kubeletクライアント
第三に、再生産のフロントプロキシ証明書(覚えて、これはpkiフォルダの下には/ etc / kubernetes /フロント・プロキシ・CA証明書に基づいており、それがapiserver同じではないのCa必要があり、認証シーケンスapiserverを必要とすることに注意してください)
フロントプロキシclient.json
{ "CN": "フロントプロキシクライアント" 、 "キー" :{ "アルゴ": "RSA" 、 "サイズ":2048 } }
cfssl gencertを-ca =フロント・プロキシca.crt -ca-キー=フロントプロキシca.key -config = CA-config.json -profile =クライアントフロントプロキシclient.json | cfssljson -bareフロントプロキシ-クライアント
それは概念を期限切れにしないため第四には、/ etc / kubernetes sa.key場合/ pkiフォルダの下に、sa.pubが存在し、あなたが更新する必要はありません。
第五に、上記書類の準備ができた後、現在はK8Sコマンド・ルールの名前を変更する必要がありますが、また別のディレクトリに保存されている別のファイルによります。
第六に、この時間は、K8Sマスターが開始されなければなりません。次に、kubeconfigする文書、参照URL
https://www.cnblogs.com/netsa/p/8134000.html(ブートストラップコンフィギュレーションとkubelet認定)
https://www.cnblogs.com/charlieroro/p/8489515.html(構成.kube / configファイル)
#設定クラスタパラメータ kubectl設定SET - クラスタ クライアント認証パラメータを設定# kubectl設定SET - 資格情報の #はコンテキストパラメータを設定する SETの設定をkubectl - コンテキスト #は、デフォルトのコンテキストが設定し kubectl設定を使用 -context
七、によってこれらの文書をうまく利用せた後、場所K8Sのインストール、配布ファイルを再起動kubeletを、クラスタ良いを再起動することができるはずです。