Rancher安装使用

Rancher安装使用

CPU 内存 硬盘 角色 主机名称 ip地址
2Core 4G 50G rancher rancher 192.168.77.150
2Core 4G 50G master k8s-master-01 192.168.77.151
2Core 4G 50G worker k8s-node-02 192.168.77.152
2Core 4G 50G worker k8s-node-03 192.168.77.153

安装docker

安装Docker(所有的节点都要执行)

下面是阿里云官网提供的安装的方式

查看可以安装的docker的版本

1
yum list docker-ce.x86_64 --showduplicates |sort -r

配置docker安装

1
2
3
4
5
6
7
8
9
10
# step 1: 安装必要的一些系统工具
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
# Step 2: 添加软件源信息
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# Step 3: 更新并安装 Docker-CE
sudo yum makecache fast
sudo yum -y install docker-ce
# Step 4: 开启Docker服务
sudo service docker start

配置镜像加速器

1
2
3
4
5
6
7
8
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://rv0ikufp.mirror.aliyuncs.com"] # 配置自己的阿里云容器镜像站
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

配置开启自启动

1
systemctl enable docker;systemctl start docker

修改cgroup 方式

1
2
3
4
vim /etc/docker/daemon.json 中添加如下内容
{
"exec-opts":["native.cgroupdriver=systemd"]
}

主机配置

主机名配置

所有主机均需要配置对应主机名称

1
2
3
hostnamectl set-hostname k8s-master01 
或者
nmtui-hostname 设置主机名称

主机ip地址配置

所有的主机地址都应该是一个静态的ip

/etc/sysconfig/network-scripts/ifcfg-ens33
1
vim /etc/sysconfig/network-scripts/ifcfg-ens33

k8s-master01的ip地址配置 其他的以此类推

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="static"
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="ens33"
UUID="f693d834-f55e-4c2e-8329-957cc221303d"
DEVICE="ens33"
ONBOOT="yes"
IPADDR="192.168.77.150"
GATEWAY="192.168.77.2"
DNS1="119.29.29.29"

主机名和IP地址解析

所有的集群主机都需要配置 vim /etc/hosts 追加如下配置

1
2
3
4
5
192.168.77.150 rancher
192.168.77.151 k8s-master-01
192.168.77.152 k8s-node-02
192.168.77.153 k8s-node-03

时间同步配置(所有节点)

同步时间服务器需要安装ntpdate

1
yum install ntpdate
1
2
3
# which ntpdate  查看
crontab -e
0 */1 * * * ntpdate time1.aliyun.com #每隔一小时同步一下阿里云服务器

关闭swap分区(所有节点都要执行)

因为关闭后,可以提高k8s的性能。且初始化master节点的时候不会报错

1
2
3
4
5
6
7
8
9
10
11
12
vi /etc/fstab
#
# /etc/fstab
# Created by anaconda on Mon Oct 3 15:41:00 2022
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/mapper/centos-root / xfs defaults 0 0
UUID=715915d4-5b52-469f-a69d-f92410a28415 /boot xfs defaults 0 0
#/dev/mapper/centos-swap swap swap defaults 0 0 swap前加个#号

下载rancher

1
docker pull rancher/rancher:v2.5.2-linux-amd64

创建rancher的主机目录

1
2
3
mkdir  -p /mnt/d/rancher_data 

docker run -itd --privileged -p 80:80 -p 443:443 -v /mnt/d/rancher_data:/var/lib/rancher/ --restart=always --name rancher-server rancher/rancher:v2.5.2-linux-amd64

访问rancher首页

1
https://192.168.77.150/

第一次进入rancher的首页面,页面是英文的,需要进行设置登陆密码

image-20221028212856603

创建集群

image-20221028223437497

进入如下页面,选择自定义

image-20221028223527824

添加一些配置之后,直接下一步

image-20221028223650812

可能出现的错误

这个不用管,一会儿就消失了,这是rancher的最后一个注册过程,根据自己的电脑配置情况,几分钟之后,就可以了

image-20221028221832111

添加其他的节点

image-20221028222147641

点击编辑集群->选择worker->复制命令在需要添加的节点上执行-> 点击ok->node节点不需要etcd和control了

image-20221028222253323

如下所示:

image-20221028222519527

等待一段时间之后,效果图如下:

image-20221028223237457

部署应用

选择操作的集群->default项目 ->部署应用

image-20221028223928072

进行一些初始化操作

image-20221028224200291

数据卷配置

映射主机目录

image-20221028224311400

image-20221028224445433

上面的意思就是容器内的路径,映射到宿主机的data目录下面 —>其他操作—>点击启动

image-20221028224638120

image-20221028224719795

nginx首页成功访问截图

image-20221028225017174

kubectl 安装

3.0 安装kubectl 客户端工具

1
2
3
4
在k8s-master01上操作
wget https://storage.googleapis.com/kubernetes-release/release/v1.21.9/bin/linux/amd64/kubectl
chmod +x kubectl
mv kubectl /usr/local/bin/kubectl

image-20221028225924758

上面发现还是运行不了,需要下载kubeconfig文件,然后执行如下操作

在安装好的kubectl的机器上配置kubeconfig,将复制的文件内容全部保存到config文件中

1
2
3
4
mkdir ~/.kube
vim ~/.kube/config # 添加k8s集群中的kubeconfig文件到该文件中,保存之后继续执行
kubectl get nodes

image-20221028230301543

完整过程如下所示:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
[root@k8s-master-01 ~]# chmod +x kubectl
[root@k8s-master-01 ~]# mv kubectl /usr/local/bin/kubectl
[root@k8s-master-01 ~]# kubectl get pods
The connection to the server localhost:8080 was refused - did you specify the right host or port?
[root@k8s-master-01 ~]# mkdir ~/.kube
您在 /var/spool/mail/root 中有邮件
[root@k8s-master-01 ~]# vim ~/.kube/config
[root@k8s-master-01 ~]# kubectl get nodes
NAME STATUS ROLES AGE VERSION
k8s-master-01 Ready controlplane,etcd,worker 48m v1.19.15
k8s-node-02 Ready worker 34m v1.19.15
k8s-node-03 Ready worker 34m v1.19.15
[root@k8s-master-01 ~]#