DevOps丨Rancher2安装

74 阅读5分钟

设置k8s安装前的计算机环境

如果有多台实例,需要在每个系统中做一下配置

1. 升级Linux内核到最新版

Centos7为例,依次运行以下命令:

#导入ELRepo仓库的公钥
rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
#为yum安装ELRepo仓库
rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-3.el7.elrepo.noarch.rpm
#查看可用版本
yum --disablerepo="*" --enablerepo="elrepo-kernel" list available
#安装最新内核
yum --enablerepo=elrepo-kernel install kernel-ml
# 查看当前可用内核
sudo awk -F' '$1=="menuentry " {print i++ " : " $2}' /etc/grub2.cfg 
# 升级最新版本内核
grub2-set-default 0
# 重启系统
reboot

升级完成,可以通过uname -r命令进项验证版本。

2. 设置时间同步

kubernetes要求集群中的节点时间必须精确一致,您可以同时运行一下date命令,检查一下几台机器的时间是否正常。如果正常,则可以跳过此步。
如果时间有异常,或者为了更稳妥一点,您可以设置一下时间同步。

yum install -y ntpdate #下载ntpdate
ntpdate ntp1.aliyun.com #更新系统时间

3. hostname设置

vim /etc/hostname 删除原有内容,输入主机名保存退出即可。

4. hosts设置(多台实例需要)

vim /etc/hosts 即可设置hosts。K8S集群一般包含多台计算机,hosts的内容应该包含集群内的所有机器。如:

image.png

5. 关闭防火墙

# 关闭防火墙
systemctl stop firewalld
# 关闭防火墙开机启动
systemctl disable firewalld

6. 禁用selinux

selinux是linux系统下的一个安全服务,如果不关闭它,在安装集群中会产生各种各样的奇葩问题。

临时关闭:输入命令sudo setenforce 0。但重启系统后还会开启。
永久关闭(推荐):输入命令vi /etc/selinux/config,将SELINUX=enforcing改为SELINUX=disabled,然后保存退出。

image.png

7. 禁用swap分区

  • swap分区指的是虚拟内存分区,它的作用是在物理内存使用完之后,将磁盘空间虚拟成内存来使用
  • 启用swap设备会对系统的性能产生非常负面的影响,因此kubernetes要求每个节点都要禁用swap设备
  • 但是如果因为某些原因确实不能关闭swap分区,就需要在集群安装过程中通过明确的参数进行配置说明
# 临时
swapoff -a 
# 永久(推荐)
sed -ri 's/.*swap.*/#&/' /etc/fstab    

确认swap已经关闭

free -m

image.png

若swap行都显示 0 则表示关闭成功

8. 配置linux的内核参数

这步在部署rancher的时候是必须的配置,不然启动会报错

  • 添加网桥过滤和地址转发功能,编辑/etc/sysctl.d/kubernetes.conf文件,添加如下配置:
sudo vi /etc/sysctl.d/kubernetes.conf
#添加如下内容
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1

重新加载配置,加载网桥过滤模块

bash
复制代码
modprobe br_netfilter && sysctl -p /etc/sysctl.d/kubernetes.conf

查看网桥过滤模块是否加载成功

lsmod | grep br_netfilter

image.png

9.配置iptables和ipvs功能

配置iptables(必须配置,不然k3s启动报错)

Add both modules to the file

sudo cat<<EOF >/etc/modules-load.d/modules.conf
iptable_nat
iptable_filter
EOF

and reboot your host"

sudo reboot

在kubernetes中service有两种代理模型,一种是基于iptables的,一种是基于ipvs的

两者比较的话,ipvs的性能明显要高一些,但是如果要使用它,需要手动载入ipvs模块

  • 安装ipset和ipvsadm
yum install ipset ipvsadmin -y
  • 添加需要加载的模块写入脚本文件
cat > /etc/sysconfig/modules/ipvs.modules <<EOF
#!/bin/bash
modprobe -- ip_vs
modprobe -- ip_vs_rr
modprobe -- ip_vs_wrr
modprobe -- ip_vs_sh
modprobe -- nf_conntrack
EOF
  • 为脚本文件添加执行权限
chmod +x /etc/sysconfig/modules/ipvs.modules
  • 执行脚本文件
/bin/bash /etc/sysconfig/modules/ipvs.modules
  • 查看对应的模块是否加载成功
lsmod | grep -e -ip_vs -e nf_conntrack

image.png

10. 重启服务器

上面步骤完成之后,需要重新启动linux系统: reboot

安装docker

Docker官方和国内daocloud都提供了一键安装的脚本,使得Docker的安装更加便捷。

官方

curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun

国内

curl -sSL https://get.daocloud.io/docker | sh

执行上述任一条命令,耐心等待即可完成Docker的安装。

如果是特殊版本的系统,比如:alinux,请按照官方的安装教程进行安装:docs.docker.com/engine/inst…

启动命令sudo systemctl start docker
设置docker开机启动 sudo systemctl enable docker

通过运行hello-world镜像来验证是否正确安装了Docker

// 拉取镜像
sudo docker pull hello-world
// 执行hello-world
sudo docker run hello-world

如下所示,安装启动成功

image.png

部署rancher

安装rancher

docker run -d  --name rancher --restart=unless-stopped --privileged   -p 80:80 -p 443:443   -v /opt/docker/rancher/core:/var/lib/rancher/   -v /opt/docker/rancher/auditlog:/var/log/auditlog  -v /opt/docker/rancher/ca-certificates:/var/lib/ca-certificates --cgroupns host  rancher/rancher:v2.7.0

登录配置rancher

  1. 访问https://<部署主机的ip> ,进入rancher管理页面

image.png

可以看到rancher的引导信息,提示你需要进行如下操作

# 找到您的容器ID
docker ps
# 找到密码
docker logs  ${container-id}  2>&1 | grep "Bootstrap Password:"

然后将查询到的字符串复制到Password文本框中,点击Log in with Local User。

image.png

如图所示,你可以自定义密码,然后勾选第二个箭头,完成点击继续。

image.png

按照如图的操作,可以设置为中文语言。

登录后直接修改密码,点击继续。
image.png上图就是进入后的默认页面

image.png
不同版本调整中文的页面不一样,具体请根据自己的版本可以百度或者去官网查看。
image.pngimage.png

设置管理员账号

在这里插入图片描述在这里插入图片描述

利用新账号,也就是管理员账号登录。

创建k8s集群

  1. 点击箭头处的创建。

image.png

  1. 点击自定义。

image.png

  1. 填写集群名字,并选择版本。

下面的配置如果不清楚,最好默认

image.png

4.在“Advanced Options”中进行高级设置,比如:选择是否启用Nginx Ingress,我这里选择没有开启,主要是用不上。是否开启请根据您的需求来定。这个设置项后续可以点击rancher界面中此集群的升级按钮进行重新选择。

image.png

5.点击“Next”后,进入添加主机命令页面。

image.png

6.点选Etcd,Control Plan两个选项,然后复制下方的命令,到master节点执行。
点选Worker选项,然后复制下方的命令,到node节点执行。

image.png

当集群前面的状态变成Active时,就表示集群部署完成,可以点击集群的名称,进入集群详情页。

image.png

7.使用kubectl获取所有节点状态

image.png

至此,集群安装完毕!!!