杨梅冲
每天在想什么呢?

一、Rancher介绍

1.1 Rancher简介

Rancher 是一个开源的企业级多集群 Kubernetes 管理平台,实现了 Kubernetes 集群在混合云+本地 数据中心的集中部署与管理,以确保集群的安全性,加速企业数字化转型。超过 40,000 家企业每天使用 Rancher 快速创新

Rancher 官方文档: https://docs.rancher.cn/

1.2 Rancher和k8s的区别

        Rancher 和 k8s 都是用来作为容器的调度与编排系统。但是 rancher 不仅能够管理应用容器,更重要 的一点是能够管理 k8s 集群。Rancher2.x 底层基于 k8s 调度引擎,通过 Rancher 的封装,用户可以在不 熟悉 k8s 概念的情况下轻松的通过 Rancher 来部署容器到 k8s 集群当中。

1.3 Rancher使用案例

(1) 中保银行

        在使用 Rancher 平台之前,中银保险也尝试过使用原生的一些 Kubernetes 平台,但是这些平台学习 使用成本高昂、运行维护特别复杂。尤其是当我公司使用多种混合云环境的时候,一个个 Kubernetes 集 群就变成了一个个技术孤岛,反而加重了公司信息化转型的压力。Rancher 平台的采用有效地解决了之前 平台使用中所存在的问题,提升我公司测试业务平台的运行维护效率

(2) 蔚来汽车数字运营中国

        Rancher 友好的图形化管理界面和资源创建的易用性、多集群管理能力、AD 认证和权限管理集成、应 用商店功能等各种能力,帮助我们简化了容器化应用的部署,得以方便地进行多云 Kubernetes 管理和权 限控制,提高了应用交付的效率。感谢 Rancher 团队,期待 Rancher 中国团队进一步优化功能,推进 Rancher 在国内的大量落地。

(3) 上汽集团

        Rancher 2.x 是数据中心级别的管理平台,拥有多云管理的能力,符合未来企业上云的架构规划演 进;Rancher 的开源产品模式降低了技术人员的使用成本,在兼顾原生 Kubernetes 的同时,为开发人员 提供了丰富的 API 与系统功能,提高了开发生产效率。同时,Rancher 专业的容器产品团队,架起了开源 产品与生产业务的桥梁,在微服务、应用容器化、DevOps、业务上云等技术领域为上汽集团提供了可靠的 支持。

二、安装Rancher

2.1 初始化实验环境
主机名 IP 环境 功能
rancher 192.168.10.14 6核6G Centos7.9 rancher2.5.7
master 192.168.10.10 4核6G Centos7.9 kubelet-1.20.7
node1 192.168.10.11 2核4G Centos7.9  
node2 192.168.10.12 2核4G Centos7.9  

 

 

 

 

 

 

1.修改主机名
hostnamectl set-hostname rancher

2.配置hosts文件
192.168.10.10 master
192.168.10.11 node1
192.168.10.12 node2
192.168.10.14 rancher

3.ssh信任
ssh-copy-id master
ssh-copy-id node1
ssh-copy-id node2

4.关闭防火墙和selinux
systemctl stop firewalld ; systemctl disable firewalld
setenforce 0
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config

5.关闭swap分区
swapoff -a
注销/etc/fstab关于swap分区

6.内核参数修改
modprobe br_netfilter
echo "modprobe br_netfilter" >> /etc/profile
cat > /etc/sysctl.d/k8s.conf << EOFnet.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1
EOF
sysctl -p /etc/sysctl.d/k8s.conf 7.配置阿里云镜像 wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo 8.安装docker-ce yum install -y yum-utils device-mapper-persistent-data lvm2 wget net-tools nfs-utils lrzsz gcc gcc-c++ make cmake libxml2-devel openssl-devel curl curl-devel unzip sudo ntp libaio-devel wget vim ncurses-devel autoconf automake zlib-devel python-devel epel-release openssh-server socat ipvsadm conntrack ntpdate yum install docker-ce docker-ce-cli containerd.io -y systemctl start docker && systemctl enable docker.service 9.修改 docker 配置文件,配置镜像加速器 vim /etc/docker/daemon.json { "registry-mirrors":["https://pft7f97f.mirror.aliyuncs.com", "https://rsbud4vc.mirror.aliyuncs.com","https://registry.docker-cn.com","https://docker.mirrors.ustc.edu.cn","https://dockerhub.azk8s.cn","http://hub-mirror.c.163.com","http://qtid6917.mirror.aliyuncs.com", "https://rncxm540.mirror.aliyuncs.com"], "exec-opts": ["native.cgroupdriver
=systemd"] } systemctl daemon-reload && systemctl restart docker && systemctl status docker

11.时间同步
ntpdate time1.aliyun.com
2.2 安装Rancher
[root@rancher ~]# docker load -i rancher-2.5.10.tar.gz

[root@rancher ~]# docker run -d --restart=unless-stopped -p 80:80 -p 443:443 --privileged rancher/rancher:v2.5.10

注:unless-stopped,在容器退出时总是重启容器,但是不考虑在 Docker 守护进程启动时就已经停止了的容器

CONTAINER ID   IMAGE                     COMMAND           CREATED         STATUS         PORTS                                                                      NAMES
f952690f98dd   rancher/rancher:v2.5.10   "entrypoint.sh"   3 seconds ago   Up 2 seconds   0.0.0.0:80->80/tcp, :::80->80/tcp, 0.0.0.0:443->443/tcp, :::443->443/tcp   condescending_spence
2.3 登录Rancher平台

https://192.168.10.14/

 

 

 

 右下角可以修改为中文: admin:admin@123

Add cluster--导入集群---名称

# 在master上执行2次,第一次报错,第二次就行了
[root@master ~]# curl --insecure -sfL https://192.168.10.14/v3/import/6sqdq4kfcmkpf9tm4cjgjrhq7xbpsdzdn2w9ds4nhpknvrqp2xhj2s_c-vxfgn.yaml | kubectl apply -f -
error: no objects passed to apply

[root@master ~]# curl --insecure -sfL https://192.168.10.14/v3/import/6sqdq4kfcmkpf9tm4cjgjrhq7xbpsdzdn2w9ds4nhpknvrqp2xhj2s_c-vxfgn.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-9c7274e created
clusterrole.rbac.authorization.k8s.io/cattle-admin created
deployment.apps/cattle-cluster-agent created

 

 

 显示pending状态需要在k8s控制节点和工作节点导入

docker load rancher-agent-2-5-10.tar.gz

 执行docker exec -ti <容器id> reset-password 重置密码

 

 三、通过Rancher部署监控系统

3.1 启用Rancher集群级别监控

#把 prometheus-grafana.tar.gz 镜像压缩包上传node节点,然后解压

[root@node1 ~]#  docker load -i prometheus-grafana.tar.gz
Loaded image: rancher/grafana-grafana:7.1.5
Loaded image: rancher/istio-kubectl:1.5.10
Loaded image: rancher/prom-node-exporter:v1.0.1
Loaded image: rancher/coreos-kube-state-metrics:v1.9.7
Loaded image: kubernetesui/dashboard:v2.0.0
Loaded image: rancher/jimmidyson-configmap-reload:v0.3.0
Loaded image: rancher/prometheus-auth:v0.2.1
Loaded image: rancher/library-nginx:1.19.2-alpine
Loaded image: rancher/prom-prometheus:v2.18.2
Loaded image: rancher/coreos-prometheus-config-reloader:v0.39.0
Loaded image: rancher/coreos-prometheus-operator:v0.39.0
Loaded image: kubernetesui/metrics-scraper:v1.0.4

#在开启监控的时候默认会拉取一些镜像,速度较慢,所以大家先把安装监控需要的镜像解压 启动监控时间可能比较长,需要等 10-20 分钟 在 rancher 主页面,点击集群名称:master

选择监控组件版本---------》启用监控-------》保存

显示监控API未就绪,需要等待10-20分钟,才能就绪

在事件里可以查看监控的安装过程

过10-20分钟后,监控API已经就绪了,那就刷新当前页面,监控部署完成后就可以看到我们的监控信息了

 

 

 

 

 点开集群监控----选择Grafana

 

 3.2 查看Grafana监控

通过右边的Grafana可以进入到grafana监控页面中

 

 四、通过Rancher仪表盘管理k8s集群:部署tomcat服务

所有节点导入tomcat镜像
docker load -i tomcat.tar.gz
4.1 通过页面创建名称空间namespace

打开rancher主页面,点击仪表盘

 

 

 

[root@master ~]# kubectl get ns
NAME                STATUS   AGE
cattle-prometheus   Active   28m
cattle-system       Active   89m
default             Active   7d20h
devlopment          Active   25h
fleet-system        Active   76m
jenkins-k8s         Active   30h
kube-node-lease     Active   7d20h
kube-public         Active   7d20h
kube-system         Active   7d20h
production          Active   25h
qatest              Active   25h
simon               Active   2m18s
4.2 创建deployment资源

指定容器名称、标签、镜像名称、副本数

 

 

 

 

 

[root@master ~]# kubectl get pods -n simon -o wide
NAME                      READY   STATUS    RESTARTS   AGE   IP               NODE    NOMINATED NODE   READINESS GATES
tomcat-5d6d8b69bf-2xnws   1/1     Running   0          86s   10.244.166.137   node1   <none>           <none>
tomcat-5d6d8b69bf-fz7xv   1/1     Running   0          86s   10.244.166.138   node1   <none>           <none>
4.3 创建Service资源

把k8s集群内部的tomcat暴露出来可以让外部访问

 

 

 访问:http://192.168.10.11:30180/

 

posted on 2022-08-19 16:46  杨梅冲  阅读(663)  评论(0编辑  收藏  举报