摘要:認(rèn)證集群的操作可以通過(guò)來(lái)進(jìn)行操作,命令最終也是調(diào)用的,如果想要獲取對(duì)進(jìn)行操作,需要先通過(guò)其認(rèn)證的認(rèn)證方式基本認(rèn)證在中擁有以列為單位的認(rèn)證信息,格式為,,示例,,,,然后在啟動(dòng)的時(shí)候加上這個(gè)參數(shù),啟動(dòng)起來(lái)過(guò)后再在使
kubernetes認(rèn)證
Kubernetes集群的操作可以通過(guò)apiserver來(lái)進(jìn)行操作,kubectl命令最終也是調(diào)用的apiserver,如果想要獲取對(duì)apiserver進(jìn)行操作,需要先通過(guò)其認(rèn)證
api-server的認(rèn)證方式:
基本認(rèn)證:basic-auth
--basic-auth-file=/path/to/basic-auth.csv
在basic-auth.csv中擁有以列為單位的認(rèn)證信息,格式為password,username,uid
示例:
passwd,kinderao,1 password2,test,2
然后在 kube-apiserver啟動(dòng)的時(shí)候加上--basic-auth-file=/path/to/basic-auth.csv這個(gè)參數(shù),啟動(dòng)起來(lái)過(guò)后再在使用k8s的api就需要加上認(rèn)證信息,否則就會(huì)unauthorized,加認(rèn)證信息的方法是在http請(qǐng)求的header中添加一個(gè)Authorization,value是Basic base64編碼后的用戶名密碼信息
Token認(rèn)證:token-auth
--token-auth-file=/path/to/token-auth.csv
在token-auth.csv中擁有以列為單位的認(rèn)證信息,格式為token,username,uid
示例
token,kinderao,1 token2,kinderao2,2
同樣也是在apiserver的啟動(dòng)參數(shù)里面加入--token-auth-file=/path/to/token-auth.csv這個(gè)參數(shù),然后在請(qǐng)求的時(shí)候同樣在header中添加Authorization,value是Bearer token
CA證書(shū)認(rèn)證:
在使用證書(shū)認(rèn)證之前首先需要申請(qǐng)證書(shū),證書(shū)可以通過(guò)權(quán)威CA來(lái)申請(qǐng),也可以通過(guò)自簽證書(shū),不過(guò)部署kubernetes的大多數(shù)環(huán)境都是內(nèi)網(wǎng)環(huán)境,所以更多的還是使用的是自簽證書(shū)。
生成證書(shū)的步驟如下:
首先需要你的linux系統(tǒng)上安裝有openssl,大多數(shù)的linux發(fā)行版都帶有這個(gè)工具,使用openssl生成根證書(shū)cacert:
# 生成密鑰 openssl genrsa -out ca.key 2048 # 生成根證書(shū) openssl req -x509 -nodes -key ca.key -subj "/CN=yourcomany.com" -days 5000 -out ca.crt
為server生成證書(shū):
# 生成server的密鑰 openssl genrsa -out server.key 2048 # 生成證書(shū)申請(qǐng),其中的hostname需要填入你的服務(wù)器的域名或者ip地址,這個(gè)地方有個(gè)坑 # 就是在這填入的是什么地址,在client請(qǐng)求的時(shí)候就要使用這個(gè)地址,之前配的是ip,但是請(qǐng)求的時(shí)候使用主機(jī)名,導(dǎo)致一直沒(méi)有出現(xiàn)bad certificate的問(wèn)題 openssl req -new -key server.key -subj "/CN=`hostname`" -out server.csr # 使用剛才生成的根證書(shū)以及密鑰來(lái)生成server的證書(shū) openssl x509 -req -in server.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out server.crt -days 5000
再為client生成證書(shū):
# 生成client的密鑰 openssl genrsa -out client.key 2048 # 生成證書(shū)申請(qǐng),這里需要填的地址和上面的server一致即可 openssl req -new -key client.key -subj "/CN=`hostname`" -out client.csr # 使用根證書(shū)和密鑰來(lái)生成client的證書(shū) openssl x509 -req -in client.csr -CA ca.crt -CAcreateserial -out client.crt -days 5000
配置api-server的啟動(dòng)參數(shù),在apiserver的啟動(dòng)參數(shù)中加上下面的啟動(dòng)參數(shù)
--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參數(shù)里面
啟動(dòng)kube-apiserver會(huì)看見(jiàn)一下日志:
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
我們?cè)诒緳C(jī)上使用curl來(lái)驗(yàn)證一下:
curl https://hostname:443 --cacert ca.crt --key client.key --cert client.crt
以后的請(qǐng)求都需要帶有根證書(shū)和client key和client的證書(shū)
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/26834.html
摘要:認(rèn)證集群的操作可以通過(guò)來(lái)進(jìn)行操作,命令最終也是調(diào)用的,如果想要獲取對(duì)進(jìn)行操作,需要先通過(guò)其認(rèn)證的認(rèn)證方式基本認(rèn)證在中擁有以列為單位的認(rèn)證信息,格式為,,示例,,,,然后在啟動(dòng)的時(shí)候加上這個(gè)參數(shù),啟動(dòng)起來(lái)過(guò)后再在使 kubernetes認(rèn)證 Kubernetes集群的操作可以通過(guò)apiserver來(lái)進(jìn)行操作,kubectl命令最終也是調(diào)用的apiserver,如果想要獲取對(duì)apiserv...
摘要:認(rèn)證設(shè)置中,驗(yàn)證用戶是否有權(quán)限操作的方式有三種證書(shū)認(rèn)證,認(rèn)證,基本信息認(rèn)證。其文件的基本格式包含三列,,。當(dāng)使用此作為認(rèn)證方式時(shí),在對(duì)的請(qǐng)求中,增加一個(gè)字段,將它的值設(shè)置為 kubernetes認(rèn)證設(shè)置 kubernetes中,驗(yàn)證用戶是否有權(quán)限操作api的方式有三種:證書(shū)認(rèn)證,token認(rèn)證,基本信息認(rèn)證。 證書(shū)認(rèn)證 設(shè)置apiserver的啟動(dòng)參數(shù):--client_ca_f...
摘要:源碼版本簡(jiǎn)介是最重要的組成部分,不論是命令操作還是通過(guò)進(jìn)行控制,實(shí)際都需要經(jīng)過(guò)。僅用于長(zhǎng)時(shí)間執(zhí)行的請(qǐng)求最小請(qǐng)求處理超時(shí)時(shí)間,默認(rèn)僅用于該文件內(nèi)設(shè)置鑒權(quán)機(jī)構(gòu)一組用于運(yùn)行時(shí)的配置信息。在最后會(huì)啟動(dòng)服務(wù)。 源碼版本 Kubernetes v1.5.0 簡(jiǎn)介 apiserver是K8S最重要的組成部分,不論是命令操作還是通過(guò)remote API進(jìn)行控制,實(shí)際都需要經(jīng)過(guò)apiserver。api...
摘要:拷貝到目錄拷貝到其他配置首次啟動(dòng)時(shí)向發(fā)送請(qǐng)求,驗(yàn)證請(qǐng)求中的是否與它配置的一致,如果一致則自動(dòng)為生成證書(shū)和秘鑰。 緊接上一章 8. MASTER節(jié)點(diǎn)配置 8.1 安裝組件 上傳kubernetes-server-linux-amd64.tar.gz tar -xzvf kubernetes-server-linux-amd64.tar.gz cd kubernetes cp -r ser...
摘要:拷貝到目錄拷貝到其他配置首次啟動(dòng)時(shí)向發(fā)送請(qǐng)求,驗(yàn)證請(qǐng)求中的是否與它配置的一致,如果一致則自動(dòng)為生成證書(shū)和秘鑰。 緊接上一章 8. MASTER節(jié)點(diǎn)配置 8.1 安裝組件 上傳kubernetes-server-linux-amd64.tar.gz tar -xzvf kubernetes-server-linux-amd64.tar.gz cd kubernetes cp -r ser...
閱讀 1378·2021-11-24 09:38
閱讀 2086·2021-09-22 15:17
閱讀 2340·2021-09-04 16:41
閱讀 3452·2019-08-30 15:56
閱讀 3511·2019-08-29 17:19
閱讀 1939·2019-08-28 18:09
閱讀 1249·2019-08-26 13:35
閱讀 1711·2019-08-23 17:52