Rancher简介
Rancher是一个开源的企业级多集群Kubernetes管理平台,实现了Kubernetes集群在混合云+本地数据中心的集中部署与管理,以确保集群的安全性,加速企业数字化转型。超过45,000家企业每天使用Rancher快速创新
Rancher和kubernetes的区别
Rancher和kubernetes都是作为容器的调度与编排系统。但是rancher不仅能够管理应用容器,更重要的一点是能够管理k8s集群。Rancher2.x底层基于k8s调度引擎,通过Rancher的封装,用户可以在熟悉kubernetes的情况下,轻松通过Rancher来部署容器到k8s集群当中
Rancher官方文档:https://docs.rancher.cn/
安装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
安装 rancher
由于我之前使用ansible一键安装了kubernetes v1.25.0版本,在安装rancher时根据rancher官方支持的版本选择安装v2.7.1,下面链接是rancher支持的kubernetes版本,请根据你实际安装的版本进行选择
https://www.suse.com/zh-cn/suse-rancher/support-matrix/all-supported-versions/rancher-v2-7-6/
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,多等一会儿,就可以正常访问了
点击左下角可以切换中英文
获取密码
[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 服务器url设置界面
勾选协议之后,点击继续,出现Rancher首页
通过 Rancher 管理已存在的kubernetes集群
导入已存在集群
选择导入的集群,出现下面界面
选择通用,进入通用界面
集群名称:zhpengfei,点击创建
注意:此处的命令是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集群