摘要:認證集群的操作可以通過來進行操作,命令最終也是調用的,如果想要獲取對進行操作,需要先通過其認證的認證方式基本認證在中擁有以列為單位的認證信息,格式為,,示例,,,,然后在啟動的時候加上這個參數,啟動起來過后再在使
kubernetes認證
Kubernetes集群的操作可以通過apiserver來進行操作,kubectl命令最終也是調用的apiserver,如果想要獲取對apiserver進行操作,需要先通過其認證
api-server的認證方式:
基本認證:basic-auth
--basic-auth-file=/path/to/basic-auth.csv
在basic-auth.csv中擁有以列為單位的認證信息,格式為password,username,uid
示例:
passwd,kinderao,1 password2,test,2
然后在 kube-apiserver啟動的時候加上--basic-auth-file=/path/to/basic-auth.csv這個參數,啟動起來過后再在使用k8s的api就需要加上認證信息,否則就會unauthorized,加認證信息的方法是在http請求的header中添加一個Authorization,value是Basic base64編碼后的用戶名密碼信息
Token認證:token-auth
--token-auth-file=/path/to/token-auth.csv
在token-auth.csv中擁有以列為單位的認證信息,格式為token,username,uid
示例
token,kinderao,1 token2,kinderao2,2
同樣也是在apiserver的啟動參數里面加入--token-auth-file=/path/to/token-auth.csv這個參數,然后在請求的時候同樣在header中添加Authorization,value是Bearer token
CA證書認證:
在使用證書認證之前首先需要申請證書,證書可以通過權威CA來申請,也可以通過自簽證書,不過部署kubernetes的大多數環境都是內網環境,所以更多的還是使用的是自簽證書。
生成證書的步驟如下:
首先需要你的linux系統上安裝有openssl,大多數的linux發行版都帶有這個工具,使用openssl生成根證書cacert:
# 生成密鑰 openssl genrsa -out ca.key 2048 # 生成根證書 openssl req -x509 -nodes -key ca.key -subj "/CN=yourcomany.com" -days 5000 -out ca.crt
為server生成證書:
# 生成server的密鑰 openssl genrsa -out server.key 2048 # 生成證書申請,其中的hostname需要填入你的服務器的域名或者ip地址,這個地方有個坑 # 就是在這填入的是什么地址,在client請求的時候就要使用這個地址,之前配的是ip,但是請求的時候使用主機名,導致一直沒有出現bad certificate的問題 openssl req -new -key server.key -subj "/CN=`hostname`" -out server.csr # 使用剛才生成的根證書以及密鑰來生成server的證書 openssl x509 -req -in server.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out server.crt -days 5000
再為client生成證書:
# 生成client的密鑰 openssl genrsa -out client.key 2048 # 生成證書申請,這里需要填的地址和上面的server一致即可 openssl req -new -key client.key -subj "/CN=`hostname`" -out client.csr # 使用根證書和密鑰來生成client的證書 openssl x509 -req -in client.csr -CA ca.crt -CAcreateserial -out client.crt -days 5000
配置api-server的啟動參數,在apiserver的啟動參數中加上下面的啟動參數
--secure-port=443 --client_ca_file=/root/genkey/ca.crt --tls-private-key-file=/root/genkey/server.key --tls-cert-file=/root/genkey/server.crt
也可以放到/etc/kubernets/apiserver配置文件的args參數里面
啟動kube-apiserver會看見一下日志:
I0330 05:17:46.582385 4776 config.go:531] Will report 10.0.0.103 as public IP address. [restful] 2017/03/30 05:17:46 log.go:30: [restful/swagger] listing is available at https://10.0.0.103:443/swaggerapi/ [restful] 2017/03/30 05:17:46 log.go:30: [restful/swagger] https://10.0.0.103:443/swaggerui/ is mapped to folder /swagger-ui/ I0330 05:17:46.950556 4776 serve.go:104] Serving securely on 0.0.0.0:443 I0330 05:17:46.950618 4776 serve.go:118] Serving insecurely on 127.0.0.1:8080
我們在本機上使用curl來驗證一下:
curl https://hostname:443 --cacert ca.crt --key client.key --cert client.crt
以后的請求都需要帶有根證書和client key和client的證書
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/26834.html
摘要:認證集群的操作可以通過來進行操作,命令最終也是調用的,如果想要獲取對進行操作,需要先通過其認證的認證方式基本認證在中擁有以列為單位的認證信息,格式為,,示例,,,,然后在啟動的時候加上這個參數,啟動起來過后再在使 kubernetes認證 Kubernetes集群的操作可以通過apiserver來進行操作,kubectl命令最終也是調用的apiserver,如果想要獲取對apiserv...
摘要:認證設置中,驗證用戶是否有權限操作的方式有三種證書認證,認證,基本信息認證。其文件的基本格式包含三列,,。當使用此作為認證方式時,在對的請求中,增加一個字段,將它的值設置為 kubernetes認證設置 kubernetes中,驗證用戶是否有權限操作api的方式有三種:證書認證,token認證,基本信息認證。 證書認證 設置apiserver的啟動參數:--client_ca_f...
摘要:源碼版本簡介是最重要的組成部分,不論是命令操作還是通過進行控制,實際都需要經過。僅用于長時間執行的請求最小請求處理超時時間,默認僅用于該文件內設置鑒權機構一組用于運行時的配置信息。在最后會啟動服務。 源碼版本 Kubernetes v1.5.0 簡介 apiserver是K8S最重要的組成部分,不論是命令操作還是通過remote API進行控制,實際都需要經過apiserver。api...
摘要:拷貝到目錄拷貝到其他配置首次啟動時向發送請求,驗證請求中的是否與它配置的一致,如果一致則自動為生成證書和秘鑰。 緊接上一章 8. MASTER節點配置 8.1 安裝組件 上傳kubernetes-server-linux-amd64.tar.gz tar -xzvf kubernetes-server-linux-amd64.tar.gz cd kubernetes cp -r ser...
摘要:拷貝到目錄拷貝到其他配置首次啟動時向發送請求,驗證請求中的是否與它配置的一致,如果一致則自動為生成證書和秘鑰。 緊接上一章 8. MASTER節點配置 8.1 安裝組件 上傳kubernetes-server-linux-amd64.tar.gz tar -xzvf kubernetes-server-linux-amd64.tar.gz cd kubernetes cp -r ser...
閱讀 1390·2021-11-24 09:38
閱讀 2092·2021-09-22 15:17
閱讀 2388·2021-09-04 16:41
閱讀 3481·2019-08-30 15:56
閱讀 3518·2019-08-29 17:19
閱讀 1978·2019-08-28 18:09
閱讀 1256·2019-08-26 13:35
閱讀 1717·2019-08-23 17:52