kubernetes集群安装指南:客户端安装及各组件认证文件创建

  

大多情况,证书用于服务安全访问(即https访问)所需要,在kubernetes集群中,如果关闭了匿名访问,开启了集群https访问以及TLS双向认证;如:工人节点组件https访问apiserver服务时,apiserver还需要验证客户端是否合法,此时就需要为工人节点上的组件生成kubeconfig认证文件用于连接apiserver。

  

1。基本设置

  
1.1变量设置h5> <代码类=" 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 ')   
1.2 kubectl kubens工具集安装
  
 <代码类=" 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  
  
1.3创建认证文件存放目录
  
 <代码类=" language-shell ">如果[!- d“K8S_CONF_PATH美元”);然后
  mkdir - p K8S_CONF_PATH美元
  fi
  
  如果[!- d“K8S_KUBECONFIG_PATH美元”);然后
  mkdir - p K8S_KUBECONFIG_PATH美元
  fi  
  

2。创建TLS引导标记

  
 <代码类=" language-shell ">猫比;$ {K8S_CONF_PATH}/令牌。csv & lt; & lt; EOF
  $ {BOOTSTRAP_TOKEN}, kubelet-bootstrap, 10001,“系统:kubelet-bootstrap”
  EOF  
  
      <李>引导标记文件主要用于为apiserver开启tocken认证而创建,如果没有开启apiserver牌认证可以不用创建此文件;李   
  

3 kubeconfig文件创建

  
3.1创建kube-controller-manager kubeconfig文件
  
 <代码类=" 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  
  
3.2创建kube-shceduler 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  
  
3.3创建kubelet引导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