目录
一、概述
二、Rancher API Server 的功能
2.1、授权和角色权限控制
2.2、使用 Kubernetes 的功能
2.3、配置云端基础信息
2.4、查看集群信息
三、Rancher 安装
3.1、前置环境
3.2、通过 Docker 来进行安装Rancher
3.3、在 Rancher 的界面上绑定k8s集群
3.4、在 Rancher 上部署应用
Rancher 是为使用容器的公司打造的容器管理平台。Rancher 简化了使用 Kubernetes 的流程,开发者可以随处运行 Kubernetes(Run Kubernetes Everywhere),满足 IT 需求规范,赋能 DevOps 团队。
Rancher 可以创建来自 Kubernetes 托管服务提供商的集群,自动创建节点并安装 Kubernetes 集群,或者导入任何已经存在的 Kubernetes 集群。
Rancher 通过支持集群的身份验证和基于角色的访问控制(RBAC),使系统管理员能够从一个位置控制全部集群的访问。Rancher 可以对集群及其资源进行详细的监控和并在需要时发送告警,也可以将容器日志发送给外部日志系统,并通过应用商店与 Helm 集成。如果您具有外部 CI/CD 流水线系统,则可以将其与 Rancher 对接,如果没有,Rancher 也提供了简单易用的流水线来帮助您自动部署和升级工作负载。除此之外,Rancher 还有很多开箱即用的功能来帮助您更好的管理集群和业务应用,例如多集群应用,全局 DNS,服务网格,安全扫描,集群模版和基于 OPA 的策略管理等功能。
总而言之,Rancher 是一个全栈式的 Kubernetes 容器管理平台,也是一个可以在任何地方都能成功运行 Kubernetes 的工具。
Rancher API Server 是基于嵌入式 Kubernetes API Server 和 ETCD 数据库建立的,它提供了以下功能:
我们需要事先安装好Kubernetes集群,如果还没搭建k8s集群的话,可以参考前面使用kubeadm搭建k8s集群的文章:
这里我们选择在master节点上(10.0.91.200)安装Rancher:
$ docker run --privileged -d --name rancher --restart=unless-stopped -p 80:80 -p 443:443 -v /opt/rancher:/var/lib/rancher rancher/rancher:v2.5.11
Unable to find image 'rancher/rancher:v2.5.11' locally
v2.5.11: Pulling from rancher/rancher
284055322776: Pull complete
19763da17d52: Pull complete
dcba38686409: Pull complete
e29446e69556: Pull complete
e0edee3cdc12: Pull complete
6daa78a2ec74: Pull complete
e3a3c6bc780d: Pull complete
6c4f773f88b6: Pull complete
c5e890fd9374: Pull complete
85ceb4a5a420: Pull complete
dfecfc72402d: Pull complete
c772cfbd0e5b: Pull complete
8c4865378f10: Pull complete
71cc47c5d0b5: Pull complete
457a5bbc46e0: Pull complete
01ed63f2c8ee: Pull complete
a7a970f5b9d3: Pull complete
Digest: sha256:e924341c2c1a60d3551729f87a7ba43b015e3c6bf11d1e41d1517dac2f76fc94
Status: Downloaded newer image for rancher/rancher:v2.5.11
a8c61b91aa1236e20910aa3530d0a3486658804d4c2337f70434e2a306ee9c5f
$ docker ps | grep rancher
a8c61b91aa12 rancher/rancher:v2.5.11 "entrypoint.sh" About a minute ago Up About a minute 0.0.0.0:80->80/tcp, 0.0.0.0:443->443/tcp rancher
我们看到rancher的容器已经运行成功,接着我们在浏览器访问:https://10.0.91.200。
Rancher的默认用户名是admin,我们首先需要为admin设置密码。
点击Continue,进入Rancher启动页:
接下来需要配置 Kubernetes 集群:
点击Add Cluster,
这里我们选择Other Cluster类型:
点击Create创建k8s集群。
这里有三种方式,因为我们使用的是自定义的k8s集群,所以使用第三种方式,将上述红框内的命令,复制到k8s集群中master节点上(10.0.91.200)执行。
[root@master ~]# curl --insecure -sfL https://10.0.91.200/v3/import/l5r9r2pztdqfmdqgmgrdxbl9w7htwslxxmk5vqz8j9fzqq69nw6ddr_c-ntshf.yaml | kubectl apply -f -
clusterrole.rbac.authorization.k8s.io/proxy-clusterrole-kubeapiserver created
clusterrolebinding.rbac.authorization.k8s.io/proxy-role-binding-kubernetes-master created
namespace/cattle-system created
serviceaccount/cattle created
clusterrolebinding.rbac.authorization.k8s.io/cattle-admin-binding created
secret/cattle-credentials-f206fee created
clusterrole.rbac.authorization.k8s.io/cattle-admin created
deployment.apps/cattle-cluster-agent created
[root@master ~]# kubectl get pod -n cattle-system
NAME READY STATUS RESTARTS AGE
cattle-cluster-agent-665b5f4b99-8xdvg 1/1 Running 0 2m27s
执行完之后,可以看到,它创建了一些集群角色、命令空间、Secret、Deployment等对象。
我们再次回到Rancher集群页面,可以看到,kubernetes这个集群已经成功创建出来了,并且状态也是Active。
点击Explorer,这是Rancher提供给我们的仪表盘,可以监控集群的一些资源使用情况。
点击Create创建工作负载,根据需要填写具体的信息:
点击Create创建Deployment。稍等一会后,可以看到,nginx这个工作负载状态已经变成Active了,并且也成功创建了两个nginx的副本。
验证nginx是否正常访问,因为我们使用的NodePort方式暴露nginx服务,所以我们可以使用集群中任何一台节点的【IP地址:30090】访问到nginx。
可以看到,成功访问到nginx,以上就是通过Rancher整合自定义的k8s集群,实现通过界面管理k8s集群,方便了许多。
更多关于Rancher的使用,请参照Rancher官方文档:Rancher文档 | K8S文档 | Rancher | Rancher文档