一、Rancher簡介
??Rancher 是一套容器管理平臺(tái),它可以幫助組織在生產(chǎn)環(huán)境中輕松快捷的部署和管理容器。Rancher可以輕松地管理各種環(huán)境的 Kubernetes,滿足IT需求并為 DevOps 團(tuán)隊(duì)提供支持枫耳。Rancher 用戶可以選擇使用 Rancher Kubernetes Engine(RKE) 創(chuàng)建 K8s 集群,也可以使用 GKE孟抗,AKS 和 EKS 等云K8s 服務(wù)迁杨。Rancher 用戶還可以導(dǎo)入和管理現(xiàn)有的 Kubernetes 集群。同時(shí) Rancher UI 為 DevOps 工程師提供了一個(gè)直觀的用戶界面來管理他們的服務(wù)容器凄硼。
??每個(gè)團(tuán)隊(duì)都可以在他們選擇的公共云或私有云上部署應(yīng)用程序铅协,Rancher 在 IT 和 DevOps 組織中扮演的角色如下:
Rancher 2.x 版本基于Kubernetes 基礎(chǔ)上重新設(shè)計(jì),保留了 1.x 版本中的友好功能摊沉,同時(shí)提供了更多新的功能:
- 內(nèi)置 CI/CD 流水線
- 告警和日志收集功能
- 多集群管理功能
- 集成 Rancher Kubernetes Engine (RKE)
- 與各云 Kubernetes 服務(wù)(如 GKE狐史、EKS、AKS) 集成
Rancher由以下四個(gè)部分組成:
1说墨、基礎(chǔ)設(shè)施編排
??Rancher可以使用任何公有云或者私有云的Linux主機(jī)資源骏全。Linux主機(jī)可以是虛擬機(jī),也可以是物理機(jī)尼斧。Rancher僅需要主機(jī)有CPU姜贡,內(nèi)存,本地磁盤和網(wǎng)絡(luò)資源棺棵。從Rancher的角度來說鲁豪,一臺(tái)云廠商提供的云主機(jī)和一臺(tái)自己的物理機(jī)是一樣的潘悼。
??Rancher為運(yùn)行容器化的應(yīng)用實(shí)現(xiàn)了一層靈活的基礎(chǔ)設(shè)施服務(wù)。Rancher的基礎(chǔ)設(shè)施服務(wù)包括網(wǎng)絡(luò)爬橡, 存儲(chǔ), 負(fù)載均衡棒动, DNS和安全模塊糙申。Rancher的基礎(chǔ)設(shè)施服務(wù)也是通過容器部署的,所以同樣Rancher的基礎(chǔ)設(shè)施服務(wù)可以運(yùn)行在任何Linux主機(jī)上船惨。
2柜裸、容器編排與調(diào)度
??很多用戶都會(huì)選擇使用容器編排調(diào)度框架來運(yùn)行容器化應(yīng)用。Rancher包含了當(dāng)前全部主流的編排調(diào)度引擎粱锐,例如Docker Swarm疙挺, Kubernetes, 和Mesos怜浅。同一個(gè)用戶可以創(chuàng)建Swarm或者Kubernetes集群铐然。并且可以使用原生的Swarm或者Kubernetes工具管理應(yīng)用。
??除了Swarm恶座,Kubernetes和Mesos之外搀暑,Rancher還支持自己的Cattle容器編排調(diào)度引擎。Cattle被廣泛用于編排Rancher自己的基礎(chǔ)設(shè)施服務(wù)以及用于Swarm集群跨琳,Kubernetes集群和Mesos集群的配置自点,管理與升級(jí)。
3脉让、應(yīng)用商店
??Rancher的用戶可以在應(yīng)用商店里一鍵部署由多個(gè)容器組成的應(yīng)用桂敛。用戶可以管理這個(gè)部署的應(yīng)用,并且可以在這個(gè)應(yīng)用有新的可用版本時(shí)進(jìn)行自動(dòng)化的升級(jí)溅潜。Rancher提供了一個(gè)由Rancher社區(qū)維護(hù)的應(yīng)用商店术唬,其中包括了一系列的流行應(yīng)用。Rancher的用戶也可以創(chuàng)建自己的私有應(yīng)用商店伟恶。
4碴开、企業(yè)級(jí)權(quán)限管理
??Rancher支持靈活的插件式的用戶認(rèn)證。支持Active Directory博秫,LDAP潦牛, Github等 認(rèn)證方式。 Rancher支持在環(huán)境級(jí)別的基于角色的訪問控制 (RBAC)挡育,可以通過角色來配置某個(gè)用戶或者用戶組對(duì)開發(fā)環(huán)境或者生產(chǎn)環(huán)境的訪問權(quán)限巴碗。
Rancher的特性:
1、采用圖形化方式
易用的Web管理界面即寒,在Docker易用性的基礎(chǔ)上橡淆,再一次降低了使用容器技術(shù)部署容器應(yīng)用的難度召噩。
2、支持多種調(diào)度器
通過環(huán)境模板逸爵,很容易地創(chuàng)建和部署Cattle具滴、Swarm、K8S师倔、Mesos容器集群管理調(diào)度平臺(tái)构韵。
3、管理主機(jī)集群
管理對(duì)象是多臺(tái)主機(jī)的集群趋艘,而不僅僅是單臺(tái)容器主機(jī)疲恢,創(chuàng)建和管理幾臺(tái)、幾十臺(tái)應(yīng)用服務(wù)器集群瓷胧,只需要Ctrl+C显拳、Ctrl+V,復(fù)制粘貼就解決了搓萧。
4杂数、內(nèi)置應(yīng)用商店
使用其中的WordPress模板,創(chuàng)建一個(gè)WordPress博客系統(tǒng)矛绘,只需點(diǎn)點(diǎn)鼠標(biāo)耍休,部署難度不高于申請(qǐng)一個(gè)免費(fèi)的電子郵箱!
5货矮、資源彈性分配
內(nèi)置應(yīng)用負(fù)載均衡器羊精,“服務(wù)”最小只需1個(gè)容器實(shí)例,當(dāng)負(fù)載不夠/或過剩時(shí)囚玫,只需點(diǎn)點(diǎn)鼠標(biāo)喧锦,增加/減少“服務(wù)”中容器的實(shí)例數(shù),即可解決問題抓督,應(yīng)用系統(tǒng)具有天生的彈性擴(kuò)容能力燃少。
使用文檔:https://rancher.com/docs/rancher/latest/zh/
二、Rancher安裝
??Rancher是使用一系列的Docker容器進(jìn)行部署的铃在。運(yùn)行Rancher跟啟動(dòng)兩個(gè)容器一樣簡單阵具。一個(gè)容器作為管理服務(wù)器部署,另外一個(gè)作為集群節(jié)點(diǎn)的Agent部署定铜。
一阳液、主機(jī)、IP規(guī)劃和網(wǎng)絡(luò)規(guī)劃
- 服務(wù)器節(jié)點(diǎn)規(guī)劃
主機(jī)名 | 操作系統(tǒng) | IP地址 |
---|---|---|
master | Centos 7.4-x86_64 | 192.168.247.130 |
node1 | Centos 7.4-x86_64 | 192.168.247.131 |
node2 | Centos 7.4-x86_64 | 192.168.247.132 |
- 主機(jī)名修改
[root@localhost ~]# vi /etc/hosts
192.168.247.130 master
192.168.247.131 node1
192.168.247.132 node2
- 安裝并運(yùn)行rancher服務(wù)
[root@localhost ~]# docker run -d --restart=always -p 8080:8080 rancher/server
- 查看rancher運(yùn)行情況
[root@localhost ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
19c5ceb53347 rancher/server "/usr/bin/entry /usr…" 5 minutes ago Up 5 minutes 3306/tcp, 0.0.0.0:8080->8080/tcp adoring_keller
- 查看rancher服務(wù)監(jiān)聽端口
[root@localhost ~]# netstat -antupl | grep 8080
tcp6 0 0 :::8080 :::* LISTEN 11280/docker-proxy
-
Web訪問
地址:http://192.168.247.130:8080/
切換成簡體中文
三揣炕、權(quán)限管理
現(xiàn)在登錄到Rancher不需要任何用戶名密碼,Rancher的用戶體系需要自己開啟
可以選擇很多匯總認(rèn)證的方式:
四帘皿、添加主機(jī)
拷貝代碼在宿主機(jī)執(zhí)行:
[root@localhost ~]# sudo docker run --rm --privileged -v /var/run/docker.sock:/var/run/docker.sock -v /var/lib/rancher:/var/lib/rancher rancher/agent:v1.2.11 http://192.168.247.130:8080/v1/scripts/02F981F653DB5E23FC92:1546214400000:34OLWTKutfcYVBq3KvAZ2yqhZQ
Unable to find image 'rancher/agent:v1.2.11' locally
v1.2.11: Pulling from rancher/agent
b3e1c725a85f: Pull complete
6a710864a9fc: Pull complete
d0ac3b234321: Pull complete
87f567b5cf58: Pull complete
063e24b217c4: Pull complete
d0a3f58caef0: Pull complete
16914729cfd3: Pull complete
bbad862633b9: Pull complete
3cf9849d7f3c: Pull complete
Digest: sha256:0fba3fb10108f7821596dc5ad4bfa30e93426d034cd3471f6ccd3afb5f87a963
Status: Downloaded newer image for rancher/agent:v1.2.11
INFO: Running Agent Registration Process, CATTLE_URL=http://192.168.247.130:8080/v1
INFO: Attempting to connect to: http://192.168.247.130:8080/v1
INFO: http://192.168.247.130:8080/v1 is accessible
INFO: Configured Host Registration URL info: CATTLE_URL=http://192.168.247.130:8080/v1 ENV_URL=http://192.168.247.130:8080/v1
INFO: Inspecting host capabilities
INFO: Boot2Docker: false
INFO: Host writable: true
INFO: Token: xxxxxxxx
INFO: Running registration
INFO: Printing Environment
INFO: ENV: CATTLE_ACCESS_KEY=E678D07EF7258D036C9C
INFO: ENV: CATTLE_HOME=/var/lib/cattle
INFO: ENV: CATTLE_REGISTRATION_ACCESS_KEY=registrationToken
INFO: ENV: CATTLE_REGISTRATION_SECRET_KEY=xxxxxxx
INFO: ENV: CATTLE_SECRET_KEY=xxxxxxx
INFO: ENV: CATTLE_URL=http://192.168.247.130:8080/v1
INFO: ENV: DETECTED_CATTLE_AGENT_IP=172.17.0.1
INFO: ENV: RANCHER_AGENT_IMAGE=rancher/agent:v1.2.11
INFO: Launched Rancher Agent: 5cbdaed544a48d812a6e29fd04ba6f7e972cda7381e423aed8efb85c49f54c4e
查看一下進(jìn)程,多出一個(gè) rancher/agent 的進(jìn)程畸陡,并且已經(jīng)運(yùn)行鹰溜。
[root@localhost ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
5cbdaed544a4 rancher/agent:v1.2.11 "/run.sh run" 44 seconds ago Up 43 seconds rancher-agent
19c5ceb53347 rancher/server "/usr/bin/entry /usr…" 2 hours ago Up
[root@localhost ~]#
此時(shí)再回網(wǎng)頁查看 Web 控制臺(tái)界面虽填,查看 Host 添加之后的結(jié)果。
可以看到已經(jīng)多了一臺(tái)活動(dòng)主機(jī)(宿主機(jī))曹动,上面運(yùn)行一個(gè) Rancher Server 容器斋日,就是 Rancher 服務(wù)器自己。如果有其他主機(jī)仁期,也可以添加其他主機(jī)進(jìn)來桑驱。
五、Web UI 運(yùn)行容器
現(xiàn)在通過圖形界面來運(yùn)行容器跛蛋,而不是通過命令行。
-
添加容器
附:
國內(nèi)docker鏡像倉庫:
六痊硕、常見問題
Rancher的管理員密碼忘記怎么辦赊级?
Rancher提供了解決辦法,可以登錄到RancherServer的數(shù)據(jù)庫容器中岔绸,修改cattle數(shù)據(jù)庫setting表中的訪問控制的字段值理逊,禁用訪問控制功能,隔幾分鐘之后盒揉,再次刷新Rancher的UI頁面晋被,就可以免密碼登錄到Rancher的UI頁面了。
# 登錄容器中的mysql
[root@localhost ~]# docker exec -it 19c5ceb53347 mysql
mysql> select * from setting;
+----+----------------------------------------------------+--------------------------------------+
| id | name | value |
+----+----------------------------------------------------+--------------------------------------+
| 1 | api.auth.ldap.openldap.group.dn.field | entryDN |
| 2 | api.auth.ldap.openldap.group.member.user.attribute | entryDN |
| 3 | install.uuid | f3eecf38-20b9-4d54-85e3-f99a947771ef |
| 4 | telemetry.opt | out |
| 5 | api.security.enabled | true |
| 6 | api.auth.provider.configured | localAuthConfig |
| 7 | api.auth.local.access.mode | unrestricted |
| 8 | api.auth.enabler | rancher_id:1 |
+----+----------------------------------------------------+--------------------------------------+
8 rows in set (0.03 sec)
mysql> update setting set value="false" where name="api.security.enabled";
Query OK, 1 row affected (0.00 sec)
Rows matched: 1 Changed: 1 Warnings: 0
mysql> update setting set value="" where name="api.auth.provider.configured";
Query OK, 1 row affected (0.00 sec)
Rows matched: 1 Changed: 1 Warnings: 0
需要等待1分鐘后刚盈,即可無密碼登錄羡洛。