RecoveryプログラムK8Sクラスタ証明書の有効期限が切れているとetcdとapiserverがで正しく動作することはできません

この極端な場合には、慎重な計画と操作をすること、それがクラスタが完全に死んでさせません。有効期限が切れてはならないまず、少数の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を、クラスタ良いを再起動することができるはずです。

おすすめ

転載: www.cnblogs.com/aguncn/p/10936774.html