kubernetes(三)-Rancher管理k8s集群

1、Rancher 简介 k3s

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

官网:https://docs.rancher.cn/

2、Rancher 和 k8s 的区别

Rancher 和 k8s 都是用来作为容器的调度与编排系统。但是 rancher 不仅能够管理应用容器,更重要的一点是能够管理 k8s 集群。 Rancher2.x 底层基于 k8s 调度引擎,通过 Rancher 的封装,用户可以在不熟悉 k8s 概念的情况下轻松的通过 Rancher 来部署容器到k8s集群当中。

3、Rancher 安装及配置

|---------------|---------|-----------|
| IP | 主机名 | 用途 |
| 192.168.10.11 | master | 控制节点 |
| 192.168.10.20 | node01 | 工作节点 |
| 192.168.10.21 | node02 | 工作节点 |
| 192.168.10.65 | rancher | Rancher节点 |

3.1 k8s集群安装部署

参考kubernetes中安装集群部分

3.2 安装 rancher

① 准备新环境,安装docker 环境,注意与集群docker版本保持一致

复制代码
//所有节点,关闭防火墙规则,关闭selinux,关闭swap交换
systemctl stop firewalld
systemctl disable firewalld
setenforce 0
sed -i 's/enforcing/disabled/' /etc/selinux/config
iptables -F && iptables -t nat -F && iptables -t mangle -F && iptables -X
swapoff -a						#交换分区必须要关闭
sed -ri 's/.*swap.*/#&/' /etc/fstab		#永久关闭swap分区,&符号在sed命令中代表上次匹配的结果
#加载 ip_vs 模块
for i in $(ls /usr/lib/modules/$(uname -r)/kernel/net/netfilter/ipvs|grep -o "^[^.]*");do echo $i; /sbin/modinfo -F filename $i >/dev/null 2>&1 && /sbin/modprobe $i;done

//调整内核参数
cat > /etc/sysctl.d/kubernetes.conf << EOF
#开启网桥模式,可将网桥的流量传递给iptables链
net.bridge.bridge-nf-call-ip6tables=1
net.bridge.bridge-nf-call-iptables=1
#关闭ipv6协议
net.ipv6.conf.all.disable_ipv6=1
net.ipv4.ip_forward=1
EOF

//生效参数
sysctl --system  

-------------------- 节点安装docker --------------------
yum install -y yum-utils device-mapper-persistent-data lvm2 
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo 
yum install -y docker-ce-20.10.18 docker-ce-cli-10.10.18 containerd.io

mkdir /etc/docker
cat > /etc/docker/daemon.json <<EOF
{
  "registry-mirrors": ["https://0a40cefd360026b40f39c00627fa6f20.mirror.swr.myhuaweicloud.com"],
  "exec-opts": ["native.cgroupdriver=systemd"],
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "100m"
  }
}
EOF


systemctl daemon-reload
systemctl restart docker.service
systemctl enable docker.service 

docker info | grep "Cgroup Driver"
Cgroup Driver: systemd

② 安装rancher

复制代码
#在 master01 节点下载 rancher-agent 镜像
docker pull rancher/rancher-agent:v2.5.7

#在 rancher 节点下载 rancher 镜像
docker pull rancher/rancher:v2.5.7

docker run -d --restart=unless-stopped -p 80:80 -p 443:443 --privileged --name rancher rancher/rancher:v2.5.7
#--restart=unless-stopped 表示在容器退出时总是重启容器,但是不考虑在Docker守护进程启动时就已经停止了的容器

3.3 登录 Rancher 平台

需要先等一会儿,再浏览器访问 http://192.168.10.65 ,第一次登录需要设置密码。由于未使用授信证书,会有报警,忽略即可登录后如是英文页面,可点击右下角语言选项选择中文

3.4 Rancher 管理已存在的 k8s 集群

选择【添加集群】,点击【导入】

【集群名称】设置为 k8s-cluster,点击【创建】

选择复制第三条命令绕过证书检查导入 k8s 集群

#在 k8s 控制节点 master01 上执行刚才复制的命令,如第一次执行报错,再执行一次即可

4、Rancher 部署监控系统

点击【启用监控以查看实时监控】

【监控组件版本】选择 0.2.1,其他的默认即可

点击【启用监控】,启动监控时间可能比较长,需要等待10分钟左右

5、使用 Rancher 仪表盘管理 k8s 集群

//以创建 nginx 服务为例

点击【仪表盘】进入 k8s 集群仪表盘界面

#创建名称空间 namespace

点击左侧菜单【Namespaces】,再点击右侧【Create】

【Name】输入 dev,【Description】选填可自定义

点击右下角【Create】

#创建 Deployment 资源

点击左侧菜单【Deployments】,再点击右侧【Create】

【Namespace】下拉选择 dev,【Name】输入 nginx-dev,【Replicas】输入 3

点击中间选项【Container】,【Container Image】输入 nginx:1.14,【Pull Policy】选择 IfNotPresent

在【Pod Labels】下点击【Add Lable】,【Key】输入 app,【Value】输入 nginx

点击中间选项【Labels and Annotations】,点击【Add Label】,【Key】输入 app,【Value】输入 nginx,点击右下角【Create】

#创建 service

点击左侧菜单【Services】,再点击右侧【Create】

点击【Node Port】

【Namespace】下拉选择 dev,【Name】输入 nginx-dev

【Port Name】输入 nginx,【Listening Port】输入 80,【Target Port】输入 80,【Node Port】输入 30180

点击中间选项【Selectors】,【Key】输入 app,【Value】输入 nginx

点击右下角【Create】

点击【nginx-dev】查看 service 是否已关联上 Pod

#点击 service 资源的节点端口 30180/TCP,可以访问内部的 nginx 页面了

相关推荐
浮生若梦l2 小时前
docker部署springboot项目记录
spring boot·docker·容器
祁思妙想2 小时前
使用Docker部署Python前后端项目
运维·docker·容器
C_心欲无痕2 小时前
Docker 本地部署 SSR 前端项目实战指南
前端·docker·容器
robch2 小时前
k8s service deployment pod 的 label
云原生·容器·kubernetes
海鸥812 小时前
k8s中items.key的解析和实例
java·docker·kubernetes
C_心欲无痕3 小时前
Docker 网络:默认三大模式
网络·docker·容器
Crazy________3 小时前
Kubernetes探针实战和生命周期
linux·服务器·网络·kubernetes
黎陌MLing13 小时前
docker安装管理TDengine
docker·容器·tdengine
❀͜͡傀儡师14 小时前
docker部署Arcane容器可视化管理平台
运维·docker·容器