Rancher 管理 Kubernetes 集群
//Rancher 简介
 Rancher 是一个开源的企业级多集群 Kubernetes 管理平台,实现了 Kubernetes 集群在混合云+本地数据中心的集中部署与管理, 以确保集群的安全性,加速企业数字化转型。超过 40000 家企业每天使用 Rancher 快速创新。
官网:https://docs.rancher.cn/
//Rancher 和 k8s 的区别
 Rancher 和 k8s 都是用来作为容器的调度与编排系统。但是 rancher 不仅能够管理应用容器,更重要的一点是能够管理 k8s 集群。 Rancher2.x 底层基于 k8s 调度引擎,通过 Rancher 的封装,用户可以在不熟悉 k8s 概念的情况下轻松的通过 Rancher 来部署容器到k8s集群当中。
 ------------------- Rancher 安装及配置 -------------------
 //实验环境
 控制节点/master01        192.168.80.10
 工作节点/node01            192.168.80.11
 工作节点/node02            192.168.80.12
 Rancher节点/rancher        192.168.80.13
1、安装 rancher
 #在 所有 node 节点下载 rancher-agent 镜像
 docker pull rancher/rancher-agent:v2.5.7
#在 rancher 节点下载 rancher 镜像
 docker pull rancher/rancher:v2.5.7
docker run -d --restart=unless-stopped -p 80:80 -p 443:443 --privileged --name rancher rancher/rancher:v2.5.7
 #--restart=unless-stopped 表示在容器退出时总是重启容器,但是不考虑在Docker守护进程启动时就已经停止了的容器
docker ps -a|grep rancher
 1326da432b17   rancher/rancher:v2.5.7   "entrypoint.sh"   13 seconds ago   Up 13 seconds   0.0.0.0:80->80/tcp, :::80->80/tcp, 0.0.0.0:443->443/tcp, :::443->443/tcp   rancher
2、登录 Rancher 平台
 需要先等一会儿,再浏览器访问 http://192.168.80.13 ,由于未使用授信证书,会有报警,忽略即可
 登录后如是英文页面,可点击右下角语言选项选择中文
3、Rancher 管理已存在的 k8s 集群
 选择【添加集群】,点击【导入】
 【集群名称】设置为 k8s-cluster,点击【创建】
 选择复制第三条命令绕过证书检查导入 k8s 集群
#在 k8s 控制节点 master01 上执行刚才复制的命令,如第一次执行报错,再执行一次即可
 curl --insecure -sfL https://192.168.80.13/v3/import/tdd87p2fcwtrqh2dwgcsznd4dljlbd8lrqd4dztg59r2xzwh8ph68p_c-rckdk.yaml | kubectl apply -f -
kubectl get ns
 NAME              STATUS   AGE
 cattle-system     Active   3m24s
 default           Active   27d
 fleet-system      Active   2m14s
 kube-node-lease   Active   27d
 kube-public       Active   27d
 kube-system       Active   27d
kubectl get pods -n cattle-system -o wide
 NAME                                    READY   STATUS    RESTARTS   AGE    IP           NODE     NOMINATED NODE   READINESS GATES
 cattle-cluster-agent-78647b4ff8-fbqdp   1/1     Running   0          2m1s   10.244.1.4   node01   <none>           <none>
kubectl get pods -n fleet-system -o wide
 NAME                           READY   STATUS    RESTARTS   AGE    IP           NODE     NOMINATED NODE   READINESS GATES
 fleet-agent-55bfc495bd-m9qjt   1/1     Running   0          6m8s   10.244.1.3   node01   <none>           <none>
4、Rancher 部署监控系统
 点击【启用监控以查看实时监控】
 【监控组件版本】选择 0.2.1,其他的默认即可
 点击【启用监控】,启动监控时间可能比较长,需要等待10分钟左右
5、使用 Rancher 仪表盘管理 k8s 集群
 //以创建 nginx 服务为例
 点击【仪表盘】进入 k8s 集群仪表盘界面
#创建名称空间 namespace
 点击左侧菜单【Namespaces】,再点击右侧【Create】
 【Name】输入 dev,【Description】选填可自定义
 点击右下角【Create】
#创建 Deployment 资源
 点击左侧菜单【Deployments】,再点击右侧【Create】
 【Namespace】下拉选择 dev,【Name】输入 nginx-dev,【Replicas】输入 3
 点击中间选项【Container】,【Container Image】输入 nginx:1.14,【Pull Policy】选择 IfNotPresent
 在【Pod Labels】下点击【Add Lable】,【Key】输入 app,【Value】输入 nginx
 点击中间选项【Labels and Annotations】,点击【Add Label】,【Key】输入 app,【Value】输入 nginx
 点击右下角【Create】
#创建 service
 点击左侧菜单【Services】,再点击右侧【Create】
 点击【Node Port】
 【Namespace】下拉选择 dev,【Name】输入 nginx-dev
 【Port Name】输入 nginx,【Listening Port】输入 80,【Target Port】输入 80,【Node Port】输入 30180
 点击中间选项【Selectors】,【Key】输入 app,【Value】输入 nginx
 点击右下角【Create】
 点击【nginx-dev】查看 service 是否已关联上 Pod
#点击 service 资源的节点端口 30180/TCP,可以访问内部的 nginx 页面了