您好,登錄后才能下訂單哦!
這篇文章將為大家詳細(xì)講解有關(guān)怎么在Rancher 2.0 TP2 Kubernetes集群中添加自定義節(jié)點(diǎn),小編覺(jué)得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。
Rancher是一個(gè)開(kāi)源的全棧化企業(yè)級(jí)容器管理平臺(tái),用戶在Rancher可視化界面上以點(diǎn)選的方式,即可一鍵完成所有容器基礎(chǔ)設(shè)施(網(wǎng)絡(luò)、存儲(chǔ)、負(fù)載均衡等)的對(duì)接與部署,確保容器在任何基礎(chǔ)架構(gòu)上(公私有云、虛擬機(jī)、物理機(jī)等)無(wú)縫運(yùn)行。只需簡(jiǎn)單直觀的操作,即可搞定在生產(chǎn)環(huán)境中使用容器的一切工作。
**從Rancher 2.0開(kāi)始,Rancher中的每個(gè)集群都將基于Kubernetes。**用戶可以充分利用Kubernetes的強(qiáng)大性能及其迅速壯大的生態(tài)系統(tǒng),而通過(guò)Rancher平臺(tái)上基于Kubernetes的、簡(jiǎn)單直觀的用戶體驗(yàn),Rancher 2.0將加快Kubernetes在企業(yè)中的普及。
2018年2月發(fā)布的Rancher 2.0 的第二個(gè)里程碑版本Tech Preview 2,支持**用戶在創(chuàng)建RKE集群時(shí)添加自定義節(jié)點(diǎn)。**用戶可以通過(guò)運(yùn)行生成的docker run命令啟動(dòng)rancher/agent容器,或通過(guò)將SSH連接到該節(jié)點(diǎn)來(lái)添加自定義節(jié)點(diǎn)(已經(jīng)配置了Linux操作系統(tǒng)和Docker的節(jié)點(diǎn))。在本文中,我們將演示如何使用docker run命令自動(dòng)生成命令以添加節(jié)點(diǎn)。
注意:Rancher 2.0現(xiàn)階段發(fā)布版本均為技術(shù)預(yù)覽,尚不適合用于生產(chǎn)環(huán)境,建議您不要將您的生產(chǎn)工作負(fù)載放在上面。
要求
?運(yùn)行Linux和Docker的主機(jī) ?安裝了JSON實(shí)用程序jq,以解析API響應(yīng) ?sha256sum二進(jìn)制文件,用于計(jì)算CA證書(shū)校驗(yàn)和
在執(zhí)行任何操作之前,我們首先需要啟動(dòng)rancher / server容器。Rancher 2.0 Tech Preview 2的鏡像是rancher/server:preview。從1.6到2.0的一個(gè)變化是,我們不再公開(kāi)端口8080。相反,我們公開(kāi)端口80和443,其中,80默認(rèn)重定向到443。您可以按如下方式啟動(dòng)容器:
docker run -d -p 80:80 -p 443:443 rancher/server:preview
如果您希望此設(shè)置的數(shù)據(jù)持久存在,您可以將主機(jī)卷安裝到/ var / lib / rancher,如下所示:
docker run -d -p 80:80 -p 443:443 -v /data:/var/lib/rancher rancher/server:preview
在Rancher 1.x中,默認(rèn)情況下沒(méi)有啟用認(rèn)證。啟動(dòng)rancher/server容器后,用戶無(wú)需任何憑據(jù)就可以訪問(wèn)API / UI。在Rancher 2.0中,我們用默認(rèn)用戶名和密碼管理來(lái)啟用身份驗(yàn)證。登錄后,我們將獲得一個(gè)不記名的token,我們可以用它來(lái)更改密碼。更改密碼后,我們將創(chuàng)建一個(gè)API密鑰以執(zhí)行其他請(qǐng)求。API密鑰也是一個(gè)不記名token,我們稱其為用于自動(dòng)化目的的自動(dòng)化。
登錄
# Login LOGINRESPONSE=`curl -s 'https://127.0.0.1/v3-public/localProviders/local?action=login' -H 'content-type: application/json' --data-binary '{"username":"admin","password":"admin"}' --insecure` LOGINTOKEN=`echo $LOGINRESPONSE | jq -r .token`
更改密碼(將密碼改為thisisyournewpassword)
# Change password curl -s 'https://127.0.0.1/v3/users?action=changepassword' -H 'content-type: application/json' -H "Authorization: Bearer $LOGINTOKEN" --data-binary '{"currentPassword":"admin","newPassword":"thisisyournewpassword"}' --insecure
創(chuàng)建API密鑰
# Create API key APIRESPONSE=`curl -s 'https://127.0.0.1/v3/token' -H 'content-type: application/json' -H "Authorization: Bearer $LOGINTOKEN" --data-binary '{"type":"token","description":"automation"}' --insecure`
# Extract and store token APITOKEN=`echo $APIRESPONSE | jq -r .token`
生成API密鑰匙后,就可以開(kāi)始創(chuàng)建集群了。創(chuàng)建集群時(shí),您有3個(gè)選項(xiàng):
?啟動(dòng)一個(gè)云集群(谷歌Kubernetes Engine/GKE)
?創(chuàng)建一個(gè)集群(用我們自己的Kubernetes安裝程序,Rancher Kubernetes Engine)
?導(dǎo)入現(xiàn)有集群(如果您已經(jīng)有了Kubernetes集群,則可以通過(guò)從該集群插入kubeconfig文件導(dǎo)入)
拿本文來(lái)說(shuō),我們將使用Rancher Kubernetes Engine (rke)創(chuàng)建一個(gè)集群。當(dāng)您創(chuàng)建一個(gè)集群時(shí),可以選擇在創(chuàng)建集群時(shí)直接創(chuàng)建新節(jié)點(diǎn)(通過(guò)從像DigitalOcean / Amazon這樣的云提供商創(chuàng)建節(jié)點(diǎn))或使用已存在的節(jié)點(diǎn),并讓Rancher用SSH憑證連接到節(jié)點(diǎn)。我們?cè)诒疚闹杏懻摰姆椒ǎㄍㄟ^(guò)運(yùn)行docker run命令添加節(jié)點(diǎn))僅在創(chuàng)建集群之后才可用。
您可以使用以下命令創(chuàng)建集群(您的新集群)。如您所見(jiàn),此處僅包含參數(shù)ignoreDockerVersion(忽略Kubernetes不支持的Docker版本)。其余的將是默認(rèn)的,我們將會(huì)在后續(xù)文章中討論。在此之前,您可以通過(guò)UI發(fā)現(xiàn)可配置選項(xiàng)。
# Create cluster CLUSTERRESPONSE=`curl -s 'https://127.0.0.1/v3/cluster' -H 'content-type: application/json' -H "Authorization: Bearer $APITOKEN" --data-binary '{"type":"cluster","nodes":[],"rancherKubernetesEngineConfig":{"ignoreDockerVersion":true},"name":"yournewcluster"}' --insecure`
# Extract clusterid to use for generating the docker run command CLUSTERID=`echo $CLUSTERRESPONSE | jq -r .id`
運(yùn)行這些代碼之后,您應(yīng)該在UI中看到您的新集群了。由于沒(méi)有添加節(jié)點(diǎn),集群狀態(tài)將是“等待節(jié)點(diǎn)配置或等待有效配置”。
添加節(jié)點(diǎn)的最后一部分是啟動(dòng)rancher/agent容器,該容器將把節(jié)點(diǎn)添加到集群中。為此,我們需要:
?與Rancher版本耦合的代理鏡像 ?節(jié)點(diǎn)(etcd和/或控制面板和/或工作人員) ?可以到達(dá)rancher/server容器的地址 ?代理所使用的加入集群的集群token ?CA證書(shū)的校驗(yàn)和
可以從API的設(shè)置端點(diǎn)檢索代理鏡像:
AGENTIMAGE=`curl -s -H "Authorization: Bearer $APITOKEN" https://127.0.0.1/v3/settings/agent-image --insecure | jq -r .value`
節(jié)點(diǎn)的角色,您可以自己決定。(在本例中,我們將使用全部三種角色):
ROLEFLAGS="--etcd --controlplane --worker"
可以到達(dá)rancher/server容器的地址應(yīng)該是自解的,rancher/agent將連接到該端點(diǎn)。
RANCHERSERVER="https://rancher_server_address"
集群token可以從創(chuàng)建的集群中檢索。我們?cè)?CLUSTERID中保存了創(chuàng)建的clusterid,隨后可以用它生成一個(gè)token。
# Generate token (clusterRegistrationToken) AGENTTOKEN=`curl -s 'https://127.0.0.1/v3/clusterregistrationtoken' -H 'content-type: application/json' -H "Authorization: Bearer $APITOKEN" --data-binary '{"type":"clusterRegistrationToken","clusterId":"'$CLUSTERID'"}' --insecure | jq -r .token`
生成的CA證書(shū)也存儲(chǔ)在API中,并可以按如下所示進(jìn)行檢索,這時(shí)可以添加sha256sum來(lái)生成我們需要加入集群的校驗(yàn)和。
# Retrieve CA certificate and generate checksum CACHECKSUM=`curl -s -H "Authorization: Bearer $APITOKEN" https://127.0.0.1/v3/settings/cacerts --insecure | jq -r .value | sha256sum | awk '{ print $1 }'`
加入集群所需的所有數(shù)據(jù)現(xiàn)在都可用,我們只需組裝該命令。
# Assemble the docker run command AGENTCOMMAND="docker run -d --restart=unless-stopped -v /var/run/docker.sock:/var/run/docker.sock --net=host $AGENTIMAGE $ROLEFLAGS --server $RANCHERSERVER --token $AGENTTOKEN --ca-checksum $CACHECKSUM"
# Show the command echo $AGENTCOMMAND
最后一個(gè)命令(echo $AGENTCOMMAND)應(yīng)該是這樣的。
docker run -d --restart=unless-stopped -v /var/run/docker.sock:/var/run/docker.sock --net=host rancher/agent:v2.0.2 --etcd --controlplane --worker --server https://rancher_server_address --token xg2hdr8rwljjbv8r94qhrbzpwbbfnkhphq5vjjs4dfxgmb4wrt9rpq --ca-checksum 3d6f14b44763184519a98697d4a5cc169a409e8dde143edeca38aebc1512c31d
在節(jié)點(diǎn)上運(yùn)行此命令后,您應(yīng)該可以看到它加入了集群并由Rancher進(jìn)行配置。
Protip:這些token也可以直接用作基本身份驗(yàn)證,例如:
curl -u $APITOKEN https://127.0.0.1/v3/settings --insecure
關(guān)于“怎么在Rancher 2.0 TP2 Kubernetes集群中添加自定義節(jié)點(diǎn)”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,使各位可以學(xué)到更多知識(shí),如果覺(jué)得文章不錯(cuò),請(qǐng)把它分享出去讓更多的人看到。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。