Kubernetes 使用 Rancher 管理

K8S集群管理工具

只能管理单个K8S集群

  • kubectl命令行管理工具    
  • dashboard(K8S官方的UI界面图形化管理工具)  

(管理多集群很麻烦,切换不同集群每次需要更改kube-config文件[kubectl配置文件],如果kubeadm部署每次都需要更改admin.conf[kubectl配置文件]

同时管理多个K8S集群

  • rancher
  • kubesphere  
  • k9s

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.101
工作节点/node01            192.168.80.102
工作节点/node02            192.168.80.103
Rancher节点/rancher      192.168.80.104 (只要安装docker的主机都能作为Rancher节点)

systemctl stop firewalld
setenforce 0

1、安装 rancher 

所有 node 节点下载 rancher-agent 镜像

docker pull rancher/rancher-agent:v2.5.7

在 rancher 节点下载 rancher 镜像并docker run启动(注意主机上不要有80 443端口冲突)

yum install -y docker
systemctl start docker
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.104 ,由于未使用授信证书,会有报警,忽略即可
登录后如是英文页面,可点击右下角语言选项选择中文Kubernetes 使用 Rancher 管理_第1张图片

 

3、Rancher 管理已存在的 k8s 集群

选择【添加集群】,点击【导入】
【集群名称】设置为 k8s-cluster,点击【创建】

Kubernetes 使用 Rancher 管理_第2张图片

Kubernetes 使用 Rancher 管理_第3张图片

Kubernetes 使用 Rancher 管理_第4张图片 

选择复制第三条命令绕过证书检查导入 k8s 集群

 在 k8s 控制节点 master01 上执行刚才复制的命令,如第一次执行报错,再执行一次即可

curl --insecure -sfL https://192.168.80.104/v3/import/dsrhm4vpzmf5xjkmc5dsvfmv5vw52crlws6cqfwq9nswwlrzt6bzsc_c-jxsdv.yaml | kubectl apply -f -

Kubernetes 使用 Rancher 管理_第5张图片 

 查看创建了哪些命名空间以及pod

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              
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              

若迟迟未创建 cattle-system命名空间内pod,或是迟迟未创建fleet-system,重启几遍集群。发现是虚拟机出了一些很奇怪的问题。重启时设置卡在启动界面。多次重启解决问题。

Kubernetes 使用 Rancher 管理_第6张图片

4、Rancher 部署监控系统(Rancher会自动安装Prometheus)

点击【启用监控以查看实时监控】

Kubernetes 使用 Rancher 管理_第7张图片

Kubernetes 使用 Rancher 管理_第8张图片【监控组件版本】选择 0.2.1,其他的默认即可
点击【启用监控】,启动监控时间可能比较长,需要等待10分钟左右

安装完成后,点击集群监控,查看监控信息。

Kubernetes 使用 Rancher 管理_第9张图片

 Rancher界面Kubernetes 使用 Rancher 管理_第10张图片

 

Grafana界面Kubernetes 使用 Rancher 管理_第11张图片

 

5、使用 Rancher 仪表盘管理 k8s 集群

以创建 nginx 服务为例
点击【仪表盘】进入 k8s 集群仪表盘界面

Kubernetes 使用 Rancher 管理_第12张图片

Kubernetes 使用 Rancher 管理_第13张图片 

 

创建名称空间 namespace

点击左侧菜单【Namespaces】,再点击右侧【Create】
【Name】输入 dev,【Description】选填可自定义
点击右下角【Create】

Kubernetes 使用 Rancher 管理_第14张图片

 

创建 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 (设置pod标签)
点击中间选项【Labels and Annotations】,点击【Add Label】,【Key】输入 app,【Value】输入 nginx(设置deployment标签)
点击右下角【Create】

Kubernetes 使用 Rancher 管理_第15张图片

Kubernetes 使用 Rancher 管理_第16张图片

Kubernetes 使用 Rancher 管理_第17张图片

 

创建 service

点击左侧菜单【Services】,再点击右侧【Create】
点击【Node Port】
【Namespace】下拉选择 dev,【Name】输入 nginx-dev-service
【Port Name】输入 nginx,【Listening Port】输入 80(service端口号),【Target Port】输入 80(容器内端口号),【Node Port】输入 34567(nodeip端口号)
点击中间选项【Selectors】(标签选择器),【Key】输入 app,【Value】输入 nginx
点击右下角【Create】
点击【nginx-dev-service】查看 service 是否已关联上 Pod

Kubernetes 使用 Rancher 管理_第18张图片

Kubernetes 使用 Rancher 管理_第19张图片

Kubernetes 使用 Rancher 管理_第20张图片

Kubernetes 使用 Rancher 管理_第21张图片

Kubernetes 使用 Rancher 管理_第22张图片

 

 点击 service 资源的节点端口 30080/TCP,可以访问内部的 nginx 页面了

Kubernetes 使用 Rancher 管理_第23张图片

 Kubernetes 使用 Rancher 管理_第24张图片

 

创建 ingress

点击左侧菜单【ingress】,再点击右侧【Create】
点击【Node Port】
【Namespace】下拉选择 dev,【Name】输入 nginx-dev-ingress
【Request Host】输入 www.xue666.com,【Path】选择 Prefix(前缀匹配)填入 / ,【Target Service】选择 nginx-dev-service,【Port】选择 80(刚刚创建的service的端口号)

点击右下角Edit as YAML,73行 修改    ingressClassName: nginx(指定ingressClass控制器)
点击右下角【Create】

Kubernetes 使用 Rancher 管理_第25张图片

Kubernetes 使用 Rancher 管理_第26张图片

Kubernetes 使用 Rancher 管理_第27张图片

点击【nginx-dev-ingress】查看 service 是否已关联上 Pod

Kubernetes 使用 Rancher 管理_第28张图片

编辑C:\Windows\System32\drivers\etc\hosts

192.168.80.101 www.xue666.com
#ip写安装了nginx-ingress-controller的主机

Kubernetes 使用 Rancher 管理_第29张图片

访问测试:域名+nodeport 

Kubernetes 使用 Rancher 管理_第30张图片

你可能感兴趣的:(kubernetes,容器,云原生,运维,linux,rancher)