大多情况,证书用于服务安全访问(即https访问)所需要,在kubernetes集群中,如果关闭了匿名访问,开启了集群https访问以及TLS双向认证;如:工人节点组件https访问apiserver服务时,apiserver还需要验证客户端是否合法,此时就需要为工人节点上的组件生成kubeconfig认证文件用于连接apiserver。
大多情况,证书用于服务安全访问(即https访问)所需要,在kubernetes集群中,如果关闭了匿名访问,开启了集群https访问以及TLS双向认证;如:工人节点组件https访问apiserver服务时,apiserver还需要验证客户端是否合法,此时就需要为工人节点上的组件生成kubeconfig认证文件用于连接apiserver。
<代码类=" language-shell ">=kubernetes-server-v1.12.0-linux-amd64.tar.gz包 K8S_DOWNLOAD_URL=https://github.com/devops-apps/download/raw/master/kubernetes/美元包 K8S_CONF_PATH=/etc/美丽/kubernetes K8S_KUBECONFIG_PATH=/etc/美丽/kubeconfig KUBE_APISERVER=https://dev-kube-api.mo9.com BOOTSTRAP_TOKEN=$(头- c 16/dev/urandom | od——x - t | tr - d ') 代码>
<代码类=" language-shell "> sudo wget K8S_DOWNLOAD_URL - p/root/software美元 cd $软件 焦油-xzfkubernetes-server-v1.12.0-linux-amd64.tar。广州- c。/cp fp kubernetes/服务器/bin/{kubectl, kubens}/usr/local/sbin 代码>
<代码类=" language-shell ">如果[!- d“K8S_CONF_PATH美元”);然后 mkdir - p K8S_CONF_PATH美元 fi 如果[!- d“K8S_KUBECONFIG_PATH美元”);然后 mkdir - p K8S_KUBECONFIG_PATH美元 fi 代码>
<代码类=" language-shell ">猫比;$ {K8S_CONF_PATH}/令牌。csv & lt; & lt; EOF $ {BOOTSTRAP_TOKEN}, kubelet-bootstrap, 10001,“系统:kubelet-bootstrap” EOF 代码>
<代码类=" language-shell "> kubectl配置将集群kubernetes \ ——证书颁发机构=$ {CA_DIR}/ca。pem \ ——embed-certs=true \ ——服务器=$ {KUBE_APISERVER} \ ——kubeconfig=$ {K8S_KUBECONFIG_PATH}/kube-controller-manager.kubeconfig kubectl配置设置凭据系统:kube-controller-manager \ ——客户端证书=$ {CA_DIR}/kube-controller-manager。pem \ ——client-key=$ {CA_DIR}/kube-controller-manager-key。pem \ ——embed-certs=true \ ——kubeconfig=$ {K8S_KUBECONFIG_PATH}/kube-controller-manager.kubeconfig kubectl配置设置上下文系统:kube-controller-manager \ ——集群=kubernetes \ ——用户=系统:kube-controller-manager \ ——kubeconfig=$ {K8S_KUBECONFIG_PATH}/kube-controller-manager.kubeconfig kubectl配置使用环境系统:kube-controller-manager \ ——kubeconfig=$ {K8S_KUBECONFIG_PATH}/kube-controller-manager.kubeconfig 代码>
<代码类=" language-shell "> kubectl配置将集群kubernetes \ ——证书颁发机构=$ {CA_DIR}/ca。pem \ ——embed-certs=true \ ——服务器=$ {KUBE_APISERVER} \ ——kubeconfig=$ {K8S_KUBECONFIG_PATH}/kube-scheduler.kubeconfig kubectl配置设置凭据系统:kube-scheduler \ ——客户端证书=$ {CA_DIR}/kube-scheduler。pem \ ——client-key=$ {CA_DIR}/kube-scheduler-key。pem \ ——embed-certs=true \ ——kubeconfig=$ {K8S_KUBECONFIG_PATH}/kube-scheduler.kubeconfig kubectl配置设置上下文系统:kube-scheduler \ ——集群=kubernetes \ ——用户=系统:kube-scheduler \ ——kubeconfig=$ {K8S_KUBECONFIG_PATH}/kube-scheduler.kubeconfig kubectl配置使用环境系统:kube-scheduler \ ——kubeconfig=$ {K8S_KUBECONFIG_PATH}/kube-scheduler.kubeconfig 代码>
<代码类=" language-shell "> kubectl配置将集群kubernetes \ ——证书颁发机构=$ {CA_DIR}/ca。pem \ ——embed-certs=true \ ——服务器=$ {KUBE_APISERVER} \ ——kubeconfig=$ {K8S_KUBECONFIG_PATH}/bootstrap.kubeconfig kubectl配置设置凭据kubelet-bootstrap \ ——令牌=$ {BOOTSTRAP_TOKEN} \ ——kubeconfig=$ {K8S_KUBECONFIG_PATH}/bootstrap.kubeconfig kubectl配置设置上下文默认\ ——集群=kubernetes \ ——用户=kubelet-bootstrap \ ——kubeconfig=$ {K8S_KUBECONFIG_PATH}/bootstrap.kubeconfig kubectl配置使用环境默认\ ——kubeconfig=$ {K8S_KUBECONFIG_PATH}/bootstrap.kubeconfig 代码>