kubernetesコンテナクラスタ管理(3)-Kubeconfig導入TLS Bootstrapping

2841 ワード

目次
 
1、TLS Bootstrappingのいくつかの理解
2、Kubeconfigの配置
3、上のスクリプトを実行する
1、TLS Bootstrappingのいくつかの理解
TLS Bootstrappingに全く触れていない場合は、https://blog.csdn.net/paopaohll/article/details/89022920
TLSの役割は通信を暗号化し、仲介者の盗聴を防ぐことであることはよく知られている.また、証明書が信頼されていないとapiserverと接続できません.apiserverに指定内容を要求する権限があるかどうかは言うまでもありません.TLSが開かれたクラスタでは,クラスタと対話するたびにアイデンティティ認証が不可欠であり,kubeconfig(証明書)とtokenの2つの認証方式が最も簡単で最も汎用的な認証方式である.
クラスタがTLS認証をオンにすると、各ノードのkubeletコンポーネントはapiserverが使用するCAが発行した有効な証明書を使用してapiserverと通信することができる.この場合、ノードが多くなると、各ノードに証明書を単独で署名することは非常に煩わしいことになります.TLS bootstrapping機能は、kubeletが予め定められた低権限ユーザーを使用してapiserverに接続し、apiserverに証明書を申請し、kubeletの証明書はapiserverによって動的に署名される.
TLS Bootstrappingは、Tokenを使用するときのブートプロセス全体:1、クラスタ内に特定のBootstrap Token Secretを作成し、このSecretは以前のtokenに代わる.csvは、ユーザ宣言ファイル2を内蔵し、クラスタ内で最初のTLS Bootstrap申請証明書を作成するClusterRole、後続renew Kubelet client/serverのClusterRole、およびそれに対応するClusterRoleBindingを作成する.そして、対応するグループまたはユーザ3にバインドする、関連証明書に自動的に署名し、期限切れのTLS Bootstrapping Token 4を自動的にクリーンアップし、TLS Bootstrapping Tokenを含む特定のbootstrapを生成できるようにController Managerの構成を調整する.kubeconfigは、kubeletの起動時に使用する5、Kubeletの構成を調整し、bootstrapを初めて起動するようにする.kubeconfigそしてその中のTLS Bootstrapping Tokenを使用して第一証明書申請6を完了し、証明書はController Managerに署名され、成功に発行され、Kubelet自動再ロード完了ブートプロセス7、後続のKubelet自動renew関連証明書
--#! K 8 sクラスタの各ノードのKubeletと管理機器Apiserverとの通信を実現するには、まずTLS証明書が必要であり、これまでCFSSLツールを利用して生成され配布されていた.次に、各ノードがapiserverに証明書を申請し、同意する必要があります.私たちが今しなければならないのは、各ノードが自動的に管理機器に通信を申請することです.masterは直接署名すればいいので、管理機器を1台ずつ確認する必要はありません.
2、Kubeconfigの配置
#Kubeconfigは、TLS Bootstrapping Token、kubelet kubeconfig、kube-proxy kubeconfigのように構成する必要があります.
kubectl    :https://kubernetes.io/docs/tasks/tools/install-kubectl/
curl -LO https://storage.googleapis.com/kubernetes-release/release/v1.9.0/bin/linux/amd64/kubectl
[root@master ssl]# chmod +x kubectl                                                   
[root@master ssl]# mv kubectl /opt/kubernetes/bin/

#kubeconfigプロファイルを作成し、直接次のkubeconfigを使用する.shスクリプトファイル生成注意:export KUBE_APISERVER設定マスターのip
#    TLS Bootstrapping Token
export BOOTSTRAP_TOKEN=$(head -c 16 /dev/urandom | od -An -t x | tr -d ' ')
cat > token.csv <

3、上のスクリプトを実行する
#環境の設定
[root@master ssl]# vi /etc/profile

ファイルの最後の行に
PATH=$PATH:/opt/kubernetes/bin 
[root@master ssl]# source /etc/profile

#実行
[root@master ssl]# chmod +x kubeconfig.sh
[root@master ssl]# ./kubeconfig.sh
#  bootstrap.kubeconfig kube-proxy.kubeconfig token.csv