APIServer是Kubernetes集群的核心内容,提供集群管理的REST API接口,是其他模块之间的数据交换的关键枢纽。出于安全性考虑,需要配置安全认证。
在主节点上执行“mkdir -p /etc/Kubernetes/ca/kubernetes”、“cp ~/kuberPre/target/ca/kubernetes/kubernetesscr.json /etc/Kubernetes/ca/kubernetes”、“cd /etc/Kubernetes/ca/kubernetes”、“cfssl gencert -ca=/etc/Kubernetes/ca/ca-key.pem-ca-key=/etc/Kubernetes/ca/etcd -config=/etc/Kubernetes/ca/ca-config.json -profile=Kubernetes kubernetes-csr.json |cfssljson -bare kubernetes”命令,在“kubernetes”目录生成证书的配置文件,以及对应的私钥和证书文件。
然后需要生成Token认证文件,执行“head -c 16 /dev/urandom | od -An -t -x | tr-d ' '” 命令生成随机的Token串。执行“echo "xxx,kubeletbootstrap,10001,"system:kubelet- bootstrap"" > /etc/Kubernetes/ca/Kubernetes/token.csv”命令,按固定格式写入“token.csv”文件中。其中“xxx”为上述Token串,“kubelet-bootstrap”为用户名,“10001”为用户 ID,“token.csv”路径和上述配置文件中对应内容要保持一致。
打开上述“master-node”目录中的“kube-apiserver.service”文件,在“tokenauth-file=”栏中可以看到上述路径信息。按上述方 法 将“master-node”目录 中 的“kube-apiserver.service”文 件 复 制 到“/lib/systemd/system” 目录。执行“systemctl enable kube-apiserver.service”、“service kube-apiserver start”命令,启动APIServer服务。执行“journalctrl -f-u kube-apiserver”命 令,查看日志来检查更新是否成功。执行“netstat -ntlp”命令,在网络连接信息列表中应能看到TCP 6443/8080端口均应为开启。