k8s集群ServiceAccount开放后的认证功能

1.生成证书,进入到/var/run/kubernetes目录,执行如下
openssl genrsa -out ca.key 2048
openssl req -x509 -new -nodes -key ca.key -subj "/CN=abc.com" -days 5000 -out ca.crt
openssl genrsa -out server.key 2048
openssl req -new -key server.key -subj "/CN=10.254.0.1" -out server.csr
openssl x509 -req -in server.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out server.crt -days 5000
注意:第一个subj里/CN可以随便写一个,两个/CN不要相同
2.修改apiserver配置文件
--admission_control=ServiceAccount
--client_ca_file=/var/run/kubernetes/ca.crt
--tls-private-key-file=/var/run/kubernetes/server.key
--tls-cert-file=/var/run/kubernetes/server.crt
3.修改controller-manager配置文件
--service_account_private_key_file=/var/run/kubernetes/server.key
--root-ca-file=/var/run/kubernetes/ca.crt
4.将/var/run/kubernetes/ca.crt拷贝到每一个子节点相同目录下
5.重启apiserver服务
验证https请求:
curl --cacert /var/run/kubernetes/ca.crt -X GET https://10.254.0.1:443/api/v1/namespaces/default/pods   -v
提示unauthorized.
继续做token
6.在/etc/kubernetes/下新建token.csv文件内容如下:
huang123,huang,huang
三项内容为
在apiserver配置文件中增加配置:
--token_auth_file=/etc/kubernetes/token.csv
修改token.csv文件权限为777
重启apiserver服务
验证:
curl --cacert /var/run/kubernetes/ca.crt -X GET https://10.254.0.1:443/api/v1/namespaces/default/pods  -H 'Authorization: Bearer huang123' -v
成功得到podList
7.创建ServiceAccount
apiVersion: v1
kind: ServiceAccount
metadata:
  name: sa-use
 
posted @ 2016-06-03 15:10  chi++  阅读(2297)  评论(0编辑  收藏  举报