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