通过安装 Rancher 管理已有的kubernetes集群

Rancher简介

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

Rancher和kubernetes的区别

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

Rancher官方文档:

安装rancher

初始化环境

由于是新机器,安装rancher之前,我先使用ansible一键初始化基础环境,即docker一键安装配置

- name: 配置hosts   template: src=hosts.j2 dest=/etc/hosts - name: SELINUX=disabled   selinux: state=disabled - name: firewalld stop   shell: systemctl stop firewalld;systemctl disable firewalld - name: swapoff   shell: swapoff -a;sed -i 's@^/dev/mapper/cl_fedora-swap none                    swap    defaults        0 0@#&@' /etc/fstab - name:   shell: modprobe br_netfilter;echo "modprobe br_netfilter" >> /etc/profile - name:   copy: src=kubernetes.conf dest=/etc/sysctl.d/kubernetes.conf - name:   yum: name=yum-utils state=latest - name:   shell: yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo - name:   shell: yum install -y  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 libaio-devel wget vim ncurses-devel autoconf automake zlib-devel epel-release openssh-server socat  ipvsadm conntrack  telnet ipvsadm - name: 配置时间同步   shell: yum install -y chrony - name: 修改chrony配置   shell: sed -i 's/#pool 2.centos.pool.ntp.org iburst/server ntp1.aliyun.com iburst\nserver ntp2.aliyun.com iburst\nserver ntp3.aliyun.com iburst/g' /etc/chrony.conf - name: restart chrony   service: name=chronyd state=restarted - name: enable chronyd   shell: systemctl enable chronyd - name:  安装docker-ce   yum: name=docker-ce state=present - name: 目录不存在则创建   file: path=/etc/docker state=directory - name: 配置docker镜像加速   copy: src=daemon.json dest=/etc/docker/daemon.json   notify: restart docker - name: 启动docker并开机自动启动   shell: systemctl enable docker --now
ansible install docker

安装 rancher

由于我之前,在安装rancher时根据rancher官方支持的版本选择安装v2.7.1,下面链接是rancher支持的kubernetes版本,请根据你实际安装的版本进行选择

docker run -d --restart=unless-stopped -p 80:80 -p 443:443 --name rancher --privileged rancher/rancher:v2.7.1

访问 Rancher:https://172.16.37.133

如果访问不了,docker logs查看容器,发现报K3错误[FATAL] k3s exited with: exit status 2的话,更新下面这两张表

modprobe ip_tables modprobe iptable_filter docker restart rancher

重启rancher,多等一会儿,就可以正常访问了

rancher界面

点击左下角可以切换中英文

获取密码

[root@rancher ~]# docker logs  rancher  2>&1 | grep "Bootstrap Password:" 2023/09/04 08:45:27 [INFO] Bootstrap Password: 6v9h4rmh5nrz9bdtp6ftcrnrfwx5sccphz8bd6xpng7f9vx52p6kzs

如果忘记密码或者报错重启后不知道密码,执行以下命令,重置密码

docker exec -ti rancher reset-password

此时,帐号密码为:(admin / nLB-GCBExOZzbl7q3-Q4 )

设置密码

设置rancher密码

设置密码后-继续,来到Rancher 服务器url设置界面

设置rancherurl

勾选协议之后,点击继续,出现Rancher首页

rancher首页

通过 Rancher 管理已存在的kubernetes集群

导入已存在集群

rancher导入已有的kubernetes集群

选择导入的集群,出现下面界面

通用

选择通用,进入通用界面

集群名称:zhpengfei,点击创建

设置通用名称
rancher命令

注意:此处的命令是rancher随机生成的

[root@master01 roles]# curl --insecure -sfL https://172.16.37.133/v3/import/hqtmbvdcn9xqv84cvwxjz8vhpxw9qvmvhtrjtwkmhxbr9pkx7hjh7b_c-m-n5b4pz7n.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-d96ba7e created clusterrole.rbac.authorization.k8s.io/cattle-admin created Warning: spec.template.spec.affinity.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms[0].matchExpressions[0].key: beta.kubernetes.io/os is deprecated since v1.14; use "kubernetes.io/os" instead deployment.apps/cattle-cluster-agent created service/cattle-cluster-agent created
集群节点
成功导入

已经成功导入了现有的kubernetes集群