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

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
ansible install docker

安装 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,多等一会儿,就可以正常访问了

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

Comments

No comments yet. Why don’t you start the discussion?

发表评论