Rancher是一个开源的容器管理平台,它提供了一套强大的工具和界面,用于简化容器的部署、管理和监控。作为一个集成的容器管理平台,Rancher有以下主要特点和功能:
1. 跨平台支持:Rancher可以在各种基础设施环境中运行,包括公共云、私有云、裸机或虚拟机。它能够支持多种容器编排引擎,如Kubernetes、Docker Swarm等。
2. 易用的用户界面:Rancher提供了直观友好的Web界面,让用户可以轻松地管理容器、集群和应用程序。用户可以通过图形化界面进行操作,而无需深入了解底层技术细节。
3. 集群管理:Rancher支持创建、配置和管理多个容器集群,帮助用户轻松构建高可用、可扩展的容器环境。
4. 服务编排:Rancher提供了灵活的服务编排功能,让用户可以轻松定义、部署和扩展复杂的应用程序服务。
5. 监控与日志:Rancher内置了监控和日志功能,可以实时查看容器和集群的性能指标、日志信息,及时发现并解决问题。
6. 安全性:Rancher提供了对容器和集群的安全管理功能,包括身份认证、访问控制、网络隔离等,保障应用程序和数据的安全。
总的来说,Rancher是一个功能强大、易于使用的容器管理平台,帮助用户简化容器化应用的部署和管理,提高生产效率和可靠性。
一、基础环境准备
事先准备三台机器,1台安装rancher,其余的两台等待做集群配置。
#配置主机名:
hostnamectl set-hostname rancher
hostnamectl set-hostname master
hostnamectl set-hostname node1
#配置 hosts 文件:
#打开/etc/hosts 文件,新增加如下几行(三台都执行):
192.168.59.223 rancher
192.168.59.234 master
192.168.59.171 node1
#配置 rancher 到 k8s 主机互信
#生成 ssh 密钥对
ssh-keygen #一路回车,不输入密码
#把密钥传给对应的几台机器(三台都执行)
ssh-copy-id rancher
ssh-copy-id master
ssh-copy-id node1
#关闭防火墙(三台都执行)
systemctl stop firewalld
systemctl disable firewalld
#关闭swap交换空间(三台都执行)
swapoff -a
#关闭 selinux(三台都执行)
setenforce 0
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
#安装相关依赖包
yum install -y 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 zlibdevel python-devel epel-release openssh-server socat ipvsadm conntrack ntpdate telnet
#配置时间同步
ntpdate cn.pool.ntp.org
crontab -e
* */1 * * * /usr/sbin/ntpdate cn.pool.ntp.org
#安装软件
#内核参数修改:br_netfilter 模块用于将桥接流量转发至 iptables 链,br_netfilter 内核参数需要开启转发。
modprobe br_netfilter
cat > /etc/sysctl.d/k8s.conf <<EOF
net.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
二、在 rancher 机器上配置 安装docker
# 更新源
sudo yum install -y yum-utils
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
# 安装
sudo yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
# 启动docker
systemctl start docker
#systemctl daemon-reload
#systemctl restart docker
#systemctl status docker
三、下载Rancher镜像并安装
管理已有的K8S集群需要根据版本下载对应docker镜像
docker pull rancher/rancher:v2.5.13
如果镜像拉取的非常慢,可以进行以下修改(离线镜像可不设置)
vim /etc/docker/daemon.json
{
"registry-mirrors":[
"https://9cpn8tt6.mirror.aliyuncs.com",
"https://registry.docker-cn.com"
]
}
vi /etc/resolv.conf
把这里的114开头的替换为阿里云的DNS地址(223.5.5.5),关闭保存
# 然后重启docker
systemctl restart docker
#查看docker的状态
ps -ef|grep docker
启动rancher
docker run -d --name=rancher --restart=unless-stopped -p 80:80 -p 443:443 --privileged rancher/rancher:v2.5.13
四、访问和设置
使用https访问
#https://ip:端口
为默认的admin用户设置密码
登录后的首页面如下所示
现在我们来添加一个新的K8S集群
选择自定义
填好集群名称,其他参数默认即可,点击下一步进入添加主机的页面,勾选角色Etcd、Control和worker
从节点选worker节点即可。
待两个状态都为active就可以了。
上述的用rancher重新部署一个2节点的K8S集群。如有部署好的集群,可以直接导入集群。
FAQ
#清理冗余镜像
docker stop $(docker ps -aq)
docker rm $(docker ps -aq)
docker system prune -f
docker volume rm $(docker volume ls -q)
docker image rm $(docker image ls -q)
rm -rf /etc/ceph \
/etc/cni \
/etc/kubernetes \
/opt/cni \
/opt/rke \
/run/secrets/kubernetes.io \
/run/calico \
/run/flannel \
/var/lib/calico \
/var/lib/etcd \
/var/lib/cni \
/var/lib/kubelet \
/var/lib/rancher/rke/log \
/var/log/containers \
/var/log/pods \
/var/run/calico
查看安装成功后的镜像
[root@localhost~]# docker images
[root@localhost~]# docker container ls