部署Rancher2.9管理K8S1.26集群

文章目录

一、实验须知

1、Rancher简介

中文官方文档:

Rancher是一个开源的企业级多集群Kubernetes管理平台,实现了Kubernetes集群在混合云+本地数据中心的集中部署与管理,以确保集群的安全性,加速企业数字化转型。

Rancher特点如下:

  • 容器管理:Rancher 支持 K8S,允许用户通过 Web 界面集中管理多个 K8S集群,用户通过简单的几步就能够部署k8s资源;
  • 多云支持:Rancher 提供了对多个云提供商的支持,如 AWS、Azure、Google Cloud 等;
  • 高可用性:Rancher 高可用模式,确保平台本身的稳定性和容错性。在某些节点失败的情况下,Rancher仍然可以继续运行并提供服务;
  • 安全性:Rancher 提供了多层级的安全特性,包括用户认证、访问控制、镜像安全扫描等,帮助用户保护容器化应用程序的安全;
  • 资源管理:Rancher 允许用户对容器集群中的资源进行管理和调整,以确保应用程序的性能和稳定性;
  • 应用商店:Rancher 提供了应用商店(Catalog)功能,允许用户浏览和安装预定义的应用程序模板,简化了应用程序部署的过程。

本次实验所需离线文件如下:点击下载

2、当前实验环境

1、已存在K8S集群信息:

角色 IP地址 主机名称 集群版本
控制节点 16.32.15.200 master-1 v1.26.2
工作节点 16.32.15.201 node-1 v1.26.2
工作节点 16.32.15.202 node-2 v1.26.2

2、Rancher服务器信息:

角色 IP地址 主机名称 版本
Rancher 16.32.15.115 rancher v2.9.2

二、部署Rancher

1、服务器初始化操作

1、配置主机名+本地解析

bash 复制代码
hostnamectl set-hostname rancher && bash

添加本地hosts解析:

bash 复制代码
cat >> /etc/hosts << EOF
16.32.15.115 rancher
16.32.15.200 master-1
16.32.15.201 node-1
16.32.15.202 node-2
EOF

2、配置rancher到K8S主机互信

bash 复制代码
ssh-keygen

ssh-copy-id master-1
ssh-copy-id node-1
ssh-copy-id node-2

3、关闭防火墙

bash 复制代码
systemctl disable firewalld --now
setenforce 0
sed  -i -r 's/SELINUX=[ep].*/SELINUX=disabled/g' /etc/selinux/config
iptables -F

4、关闭swap分区

bash 复制代码
swapoff --all
sed -i -r '/swap/ s/^/#/' /etc/fstab

5、添加网桥过滤器和地址转发功能

bash 复制代码
cat >> /etc/sysctl.d/kubernetes.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/kubernetes.conf

加载网桥过滤器模块:

bash 复制代码
modprobe br_netfilter
lsmod | grep br_netfilter # 验证是否生效

6、时间同步,一定保证rancher服务器与K8S服务器时间一致!

同步时区:

bash 复制代码
timedatectl set-timezone Asia/Shanghai

同步时间:

bash 复制代码
yum -y install ntpdate
ntpdate ntp1.aliyun.com

定时同步时间:

bash 复制代码
echo "0 1 * * * ntpdate ntp1.aliyun.com" >> /var/spool/cron/root
crontab -l

7、安装Docker环境

bash 复制代码
curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
yum makecache

# yum-utils软件用于提供yum-config-manager程序
yum install -y yum-utils

# 使用yum-config-manager创建docker阿里存储库
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

yum install docker-ce-20.10.6 docker-ce-cli-20.10.6 -y

配置docker国内加速器:

bash 复制代码
mkdir /etc/docker
cat <<EOF > /etc/docker/daemon.json
{
 "registry-mirrors": [
"https://vm1wbfhf.mirror.aliyuncs.com",
"http://f1361db2.m.daocloud.io",
"https://hub-mirror.c.163.com",
"https://docker.mirrors.ustc.edu.cn",
"https://mirror.baidubce.com",
"https://ustc-edu-cn.mirror.aliyuncs.com",
"https://registry.cn-hangzhou.aliyuncs.com",
"https://ccr.ccs.tencentyun.com",
"https://hub.daocloud.io",
"https://docker.shootchat.top",
"https://do.nark.eu.org",
"https://dockerproxy.com",
"https://docker.m.daocloud.io",
"https://dockerhub.timeweb.cloud",
"https://docker.shootchat.top",
"https://do.nark.eu.org"],
"exec-opts": ["native.cgroupdriver=systemd"]
}
EOF

启动并加入自启动:

bash 复制代码
systemctl enable docker --now
systemctl status docker

8、安装docker-compose环境

bash 复制代码
curl -L "https://github.com/docker/compose/releases/download/v2.10.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

chmod +x /usr/local/bin/docker-compose

查看版本:

bash 复制代码
docker-compose --version

2、部署Rancher

1、下载镜像

bash 复制代码
docker pull rancher/rancher:v2.9.1

2、创建docker-compose文件

bash 复制代码
mkdir ~/docker-compose/rancher -p
cat > ~/docker-compose/rancher/docker-compose.yaml << EOF
version: '3.8'
services:
  rancher:
    image: rancher/rancher:v2.9.1
    restart: unless-stopped
    ports:
      - "80:80"
      - "443:443"
    privileged: true
EOF

3、启动服务

bash 复制代码
cd ~/docker-compose/rancher
docker-compose up -d
docker-compose logs -f 

3、登入Rancher平台

1、获取临时密码

bash 复制代码
docker logs rancher  2>&1 | grep "Bootstrap Password:"|awk '{print $NF}'
nxkd6bphsmcbcmq2ld6749jzmgn8cslffgx9fggsntjqswwzwgd5s8

2、登入Rancher

浏览器访问:https://16.32.15.115/

设置一个新密码:

最终页面如下:

三、Rancher对接K8S集群

选择导入已有集群:



在K8S控制节点中执行:

bash 复制代码
curl --insecure -sfL https://16.32.15.115/v3/import/2lp7hxrrvdhl5lgwr7dpbz5lv7bc6lq7rffhpd7zp4p626j56b577b_c-m-9m57bbmf.yaml | kubectl apply -f -

查看rancher-agent是否部署成功:

bash 复制代码
kubectl get pods -n cattle-system -o wide

helm的不用管,本次用不到!

四、通过Rancher仪表盘部署Nginx服务

1、创建命名空间

可以针对命名空间做一些限制,如下图,由于仅仅只是实验,我没有做任何限制,实际根据环境决定!

2、创建Deployment

填写容器基本信息:

给Pod打标签:

完成后,点击创建:

查看资源是否创建成功:

3、创建Service



添加控制器,关联Pod:

查看控制器管理Pod信息:

现在任意Node节点IP:30088都可以访问到Nginx页面了,如下图:

相关推荐
年薪丰厚1 小时前
如何在K8S集群中查看和操作Pod内的文件?
docker·云原生·容器·kubernetes·k8s·container
zhangj11251 小时前
K8S Ingress 服务配置步骤说明
云原生·容器·kubernetes
岁月变迁呀1 小时前
kubeadm搭建k8s集群
云原生·容器·kubernetes
墨水\\1 小时前
二进制部署k8s
云原生·容器·kubernetes
Source、1 小时前
k8s-metrics-server
云原生·容器·kubernetes
上海运维Q先生1 小时前
面试题整理15----K8s常见的网络插件有哪些
运维·网络·kubernetes
颜淡慕潇1 小时前
【K8S问题系列 |19 】如何解决 Pod 无法挂载 PVC问题
后端·云原生·容器·kubernetes
ProtonBase1 小时前
如何从 0 到 1 ,打造全新一代分布式数据架构
java·网络·数据库·数据仓库·分布式·云原生·架构
大熊程序猿3 小时前
K8s证书过期
云原生·容器·kubernetes
摸鱼也很难6 小时前
Docker 镜像加速和配置的分享 && 云服务器搭建beef-xss
运维·docker·容器