Container Service for Kubernetes (ACK) は、Alibaba Cloudアカウント、Resource Access Management (RAM) ユーザー、およびRAMロールにkubeconfigファイルを発行できます。 Kubeconfigファイルには、ACKクラスターへのアクセスに使用されるID情報が含まれます。 kubeconfigごみ箱を使用して、誤って削除したkubeconfigファイルを復元したり、kubeconfigファイルの履歴バージョンを復元したりできます。
使用上の注意
kubeconfigごみ箱を使用できるのは、必要な権限を持つAlibaba CloudアカウントとRAMユーザーまたはRAMロールのみです。
RAMユーザーまたはRAMロールにAliyunCSFullAccessおよびAliyunRAMReadOnlyAccess権限があることを確認します。
kubeconfigごみ箱を使用して、過去30日以内に削除されたkubeconfigファイルのみを復元できます。 kubeconfigファイルの削除方法の詳細については、「kubeconfigファイルの削除」をご参照ください。
各Alibaba Cloudアカウント、RAMユーザー、またはRAMロールは、1つのkubeconfigファイルのみを使用してACKクラスターにアクセスできます。 Alibaba Cloudアカウント、RAMユーザー、またはRAMロールがACKクラスターにアクセスするためにkubeconfigファイルをすでに使用している場合、kubeconfigファイルの履歴バージョンを復元することはできません。 それ以外の場合、kubeconfigファイルの競合が発生します。
シナリオ
シナリオ1: 誤って削除されたkubeconfigファイルを復元する
管理者Aは、RAMユーザーBがクラスター1にアクセスするために使用するkubeconfigファイルを誤って削除しました。 したがって、RAMユーザーBはクラスター1にアクセスできません。 このシナリオでは、RAMユーザーBは管理者Aに連絡して、ごみ箱からkubeconfigファイルを復元できます。
シナリオ2: kubeconfigファイルの履歴バージョンを復元して現在のバージョンを置き換える
RAMユーザーBがクラスター1にアクセスするために使用する削除されたkubeconfig v1。 RAMユーザーBは、ACKコンソールでkubeconfig v2を取得し、ファイルを使用してクラスター1にアクセスします。 ただし、一部の既存のアプリケーションはまだkubeconfig v1を使用する必要があります。 さらに、kubeconfig v1はロールベースのアクセス制御 (RBAC) 権限を提供します。 したがって、管理者Aはkubeconfig v1を復元します。
これを行うには、管理者Aはkubeconfig v2を削除し、ごみ箱でkubeconfig v1とv2のレコードを見つけ、kubeconfig v1を復元する必要があります。
kubeconfigファイルを復元する
kubeconfigファイルと、ファイルが提供するRBAC権限をバッチ復元できます。
ACKコンソールにログインします。 左側のナビゲーションウィンドウで、[権限付与] をクリックします。
[KubeConfig File Management] タブをクリックします。 次に、右上隅のKubeConfig File Recycle Binをクリックします。
kubeconfigごみ箱には、過去30日以内に削除されたkubeconfigファイルのレコードが表示されます。 下表に、各パラメーターを説明します。
パラメーター
説明
ユーザー情報
kubeconfigファイルを使用するAlibaba Cloudアカウント、RAMユーザー、またはRAMロールの名前とID。
クラスター情報
kubeconfigファイルを使用してアクセスするACKクラスターの名前とID。
証明書CN
kubeconfigファイルのクライアント証明書のCommonName。 CommonNamesの詳細については、「リファレンス: クライアント証明書のCommonNames」をご参照ください。
RBAC権限
kubeconfigファイルによって提供されるRBAC権限。
リサイクルされた
kubeconfigファイルが削除され、kubeconfigごみ箱に移動された時刻。
削除間隔
kubeconfigファイルが完全に削除される時刻。
過去30日以内に削除され、ごみ箱に移動されたkubeconfigファイルを復元できます。 kubeconfigごみ箱は、保存期間が30日を超えるkubeconfigファイルを自動的に削除します。 kubeconfigごみ箱から削除されたkubeconfigファイルは復元できません。
kubeconfigファイルの [操作] 列で [復元] をクリックして、kubeconfigファイルと対応するRBAC権限を復元します。
複数のkubeconfigファイルを選択して [一括復元] をクリックすることもできます。 kubeconfigファイルを一括復元するときは、kubeconfigファイルが競合しないようにしてください。
kubeconfigレコードの削除
kubeconfigファイルが不要になったことを確認した場合、kubeconfigごみ箱内のkubeconfigレコードを削除できます。 kubeconfigレコードが削除されると、kubeconfigファイルを復元できなくなります。
ACKコンソールにログインします。 左側のナビゲーションウィンドウで、[権限付与] をクリックします。
KubeConfig File Managementタブをクリックし、右上隅のKubeConfig File Recycle Binをクリックします。
削除するkubeconfigレコードを確認し、[削除] をクリックし、クライアント証明書のCommonNameを入力します。
リファレンス: クライアント証明書CommonNames
クライアント証明書CommonNameは、対応するkubeconfigファイルを使用してACKクラスターにアクセスするクライアントのIDです。 kubeconfigファイルによって、クライアント証明書のCommonNamesが異なります。 詳細については、「kube-apiserver」をご参照ください。
ACKでは、クライアント証明書のCommonNamesは {UserID}-{SuffixID}
形式を使用します。 UserID
は、kubeconfigファイルを使用するRAMユーザーまたはRAMロールのIDを示します。 SuffixID
はランダムな文字列を示し、kubeconfigファイルが無効化または削除されるたびに更新されます。 これにより、kubeconfigファイルの履歴バージョンを使用してACKクラスターにアクセスすることはできません。
よくある質問
RAMユーザーがkubeconfigごみ箱内の同じACKクラスターに対して複数のkubeconfigレコードを持っているのはなぜですか?
クライアント証明書のCommonNameの更新により、RAMユーザーはkubeconfigごみ箱内の同じACKクラスターに対して複数のkubeconfigレコードを持つことがあります。
kubeconfigごみ箱内の複数のkubeconfigレコードから復元するkubeconfigレコードを選択するにはどうすればよいですか?
元のkubeconfigファイルまたはクライアント証明書のCommonNameによって提供されたRBAC権限を確認できます。 kubeconfigファイルのクライアント証明書CommonNameを照会するには、次のコマンドを実行します。 次に、クライアント証明書のCommonNameを使用してkubeconfigレコードを見つけることができます。
openssl x509 -in <(kubectl config view --kubeconfig {Kubeconfig file name} --raw --minify --output=jsonpath='{.users[0].user.client-certificate-data}'|base64 -d) -noout -subject
kubeconfigごみ箱の [復元] ボタンが暗くなるのはなぜですか?
ACKクラスターでは、各RAMユーザーまたはRAMロールが1つのkubeconfigファイルしか使用できません。 kubeconfigファイルがRAMロールまたはRAMロールによってACKクラスターにアクセスするためにすでに使用されている場合、kubeconfigファイルの履歴バージョンを復元することはできません。 これにより、kubeconfigの競合を回避できます。
履歴バージョンを復元するには、まず使用中のkubeconfigファイルを削除する必要があります。 kubeconfigファイルの削除方法の詳細については、「kubeconfigファイルの削除」をご参照ください。
kubeconfigファイルの復元に失敗する可能性がある条件は何ですか?
不十分なRBAC権限: kubeconfigファイルを復元すると、kubeconfigファイルによって提供されたRBAC権限も復元されます。 ACKクラスターで同じRBAC権限がない場合、復元は失敗する可能性があります。 RBAC権限を付与する方法の詳細については、「RAMユーザーまたはRAMロールへのRBAC権限の付与」をご参照ください。
異常ACKクラスタステータス: ACKクラスタが異常状態の場合、ACKクラスタにアクセスできなくなります。 その結果、復元は失敗する。
Kubeconfigファイルの競合: RAMユーザーまたはRAMロールが別のkubeconfigファイルを使用して、同じACKクラスターにアクセスしています。 kubeconfigファイルのバッチ復元時にkubeconfigファイルの競合が発生した場合、ACKは最新のkubeconfigレコードを自動的に復元します。 その他の競合するkubeconfigレコードは復元されません。
関連ドキュメント
退職した従業員に対して発行されたkubeconfigファイルと、セキュリティリスクを引き起こす可能性のあるkubeconfigファイルを削除することを推奨します。 詳細については、「kubeconfigファイルの削除」をご参照ください。
発行されたkubeconfigファイルが誤って公開された場合は、kubeconfigファイルを取り消してから新しいファイルを生成する必要があります。 詳細については、「KubeConfigファイルの取り消し」をご参照ください。