`

RancherV2.5.10+K8S部署文档

    博客分类:
  • K8S
 
阅读更多

1. RancherV2.5.10+K8S部署文档

 

作者 版本 修改内容 发布日期

 

一. 环境说明

1. rancher简介

Rancher 是为使用容器的公司打造的容器管理平台。Rancher 简化了使用 Kubernetes 的流程,开发者可以随处运行 Kubernetes(Run Kubernetes Everywhere),满足 IT 需求规范,赋能 DevOps 团队。 rancher1.x 支持docker compose、swarm、kubernates等集成,镜像名为rancher/server。

rancher2.15支持kubernates,镜像名为rancher/rancher。

 

2.环境部署说明

主机名 IP地址 系统版本 内核版本

kmaster01 10.82.232.39 CentOS7.4 3.10.0-693.el7.x86_64

knode01 10.82.232.42 Centos7.4 3.10.0-693.el7.x86_64

 

3.软件版本

软件名 版本 安装方式 安装主机

docker V19.3.9 源码安装 所有机器

k8s v1.18.20 rancher拉取镜 所有主机

 

二. 服务部署

1. 安装DOCKER

基础环境准备

# 创建目录 (根据磁盘大小创建目录)

mkdir -p /app/appdeploy

 

# 下载docker安装包

cd /app/appdeploy 

https://download.docker.com/linux/static/stable/x86_64/docker-19.03.9.tgz

 

# 解压

tar -xf  docker-19.03..9.tgz

 

# 复制执行文件

 

cp /app/appdeploy/docker/*   /usr/bin/

 

# 验证安装版本

 

docker --version

 

 

 

配置systemd启动

vim /usr/lib/systemd/system/docker.service

 

[Unit]

Description=Docker Application Container Engine

Documentation=https://docs.docker.com

After=network-online.target firewalld.service

Wants=network-online.target

[Service]

Type=notify

ExecStart=/usr/bin/dockerd

ExecReload=/bin/kill -s HUP $MAINPID

LimitNOFILE=infinity

LimitNPROC=infinity

LimitCORE=infinity

TimeoutStartSec=0

Delegate=yes

KillMode=process

Restart=on-failure

StartLimitBurst=3

StartLimitInterval=60s

[Install]

WantedBy=multi-user.target

 

#执行启动

systemctl daemon-reload

systemctl restart docker

systemctl enable docker

 

DOCKER基础配置

 

# 配置docker镜像源

vim /etc/docker/daemon.json

 

{

  "registry-mirrors": ["https://97bsbqhh.mirror.aliyuncs.com"],

  "insecure-registries":["10.82.244.40"],

  "data-root": "/app/appdeploy/docker/data" 

}

 

 

# 创建docker数据存储目录(避免docker过大引起默认路径空间不够)

 

mkdir -p /app/appdeploy/docker/data

 

 

# 重启docker

systemctl daemon-reload

systemctl restart docker

 

# 配置docker公司私有镜像源

docker login 10.82.244.40

 

注: 提示账号密码地方,输入自己的工号及密码

 

 

2. 基础镜像部署到私有仓库

Rancher 镜像导入

# 由于公司服务器没有网络,需要先在自己本地虚拟机里面把所有镜像拉下来

1. 下载rancher需要的镜像列表及脚本 (官方已提供)

https://github.com/rancher/rancher/releases/download/v2.5.10/rancher-images.txt

https://github.com/rancher/rancher/releases/download/v2.5.10/rancher-save-images.sh

https://github.com/rancher/rancher/releases/download/v2.5.10/rancher-load-images.sh

 

2. 本地虚拟机使用脚本拉取镜像,以上三个文件同一个目录下

sh rancher-save-images.sh --image-list rancher-images.txt

 

注: 时间会很长,拉取有150多个镜像,保存完成以后会生成一个 rancher-images.tar.gz 

 

3.把生成的镜像上传到kmatser机器(rancher-images.tar.gz)

 

注: 由于内网不能直接上传,需使用公司提供的ftp上传下载,方式如下:

 

## 公司内网FTP 使用方式

http://ftwk.sf-express.com/bin/view/IT%E5%9F%BA%E7%A1%80%E6%9E%B6%E6%9E%84/%E7%B3%BB%E7%BB%9F%E8%BF%90%E7%BB%B4/%E6%AD%A6%E6%B1%89%E7%BD%91%E7%BB%9C%E9%97%B4%E6%95%B0%E6%8D%AE%E4%BC%A0%E8%BE%93%E8%A7%84%E5%88%99%E4%B8%8E%E4%BD%BF%E7%94%A8%E6%8C%87%E5%BC%95/

 

4. 在kmaster机器加载镜像

docker load -i rancher-images.tar.gz

 

# 导入完毕以后,查看镜像

docker  image ls

 

# 查看镜像中是否包含flannel-0.15.1版本及rke-1.75版本,如果没有自行下载导入

docker load -i flannel_v0.15.1.tar 

docker load -i  rke-tools_v1.75.tar

 

 

推送rancher 镜像到私有仓库

1. 登录http://10.82.244.40/harbor/sign-in ,使用自己的工号及密码

2. 创建公共镜像仓库rancher

3. 编写传送脚本

cat rancher-push-images.sh

#!/bin/bash 

## 镜像上传说明

# 须要先在镜像仓库中建立 rancher 项目

# 根据实际状况更改如下私有仓库地址

 

# 定义日志

workdir=`pwd`

log_file=${workdir}/sync_images_$(date +"%Y-%m-%d").log

 

logger()

{

    log=$1

    cur_time='['$(date +"%Y-%m-%d %H:%M:%S")']'

    echo ${cur_time} ${log} | tee -a ${log_file}

}

 

images_hub() {

 

    while true; do

        read -p "输入镜像仓库地址(不加http/https): " registry

        read -p "输入镜像仓库用户名: " registry_user

        read -p "输入镜像仓库用户密码: " registry_password

        echo "您设置的仓库地址为: ${registry},用户名: ${registry_user},密码: xxx"

        read -p "是否确认(Y/N): " confirm

 

        if [ $confirm != Y ] && [ $confirm != y ] && [ $confirm == '' ]; then

            echo "输入不能为空,从新输入"

        else

            break

        fi

    done

}

 

images_hub

 

echo "镜像仓库 $(docker login -u ${registry_user} -p ${registry_password} ${registry})"

 

images=$(docker images -a | grep -v TAG | awk '{print $1 ":" $2}')

namespace=rancher

 

docker_push() {

    for imgs in $(echo ${images}); do

        n=$(echo ${imgs} | awk -F"/" '{print NF-1}')

        #若是镜像名中没有/,那么此镜像必定是library仓库的镜像;

        if [ ${n} -eq 0 ]; then

            img_tag=${imgs}

            #namespace=rancher

            #重命名镜像

            docker tag ${imgs} ${registry}/${namespace}/${img_tag}

            #删除原始镜像

            #docker rmi ${imgs}

            #上传镜像

            docker push ${registry}/${namespace}/${img_tag}

        #若是镜像名中有一个/,那么/左侧为项目名,右侧为镜像名和tag

        elif [ ${n} -eq 1 ]; then

            img_tag=$(echo ${imgs} | awk -F"/" '{print $2}')

            #namespace=$(echo ${imgs} | awk -F"/" '{print $1}')

            #重命名镜像

            docker tag ${imgs} ${registry}/${namespace}/${img_tag}

            #删除旧镜像

            #docker rmi ${imgs}

            #上传镜像

            docker push ${registry}/${namespace}/${img_tag}

        #若是镜像名中有两个/,

        elif [ ${n} -eq 2 ]; then

            img_tag=$(echo ${imgs} | awk -F"/" '{print $3}')

            #namespace=$(echo ${imgs} | awk -F"/" '{print $2}')

            #重命名镜像

            docker tag ${imgs} ${registry}/${namespace}/${img_tag}

            #删除旧镜像

            #docker rmi ${imgs}

            #上传镜像

            docker push ${registry}/${namespace}/${img_tag}

        else

            #标准镜像为四层结构,即:仓库地址/项目名/镜像名:tag,如不符合此标准,即为非有效镜像。

            echo "No available images"

        fi

    done

}

 

docker_push

 

 

4. 执行脚本推送

sh rancher-push-images.sh rancher

注: 推送完成可以去镜像仓库看到镜像

 

3.安装RANCHER

安装rancher

# Kmater 机器安装

 

mkdir -p /app/appdeploy/rancher/

 

docker run -d --privileged  --restart=unless-stopped -p 8880:80 -p 8843:443 -e CATTLE_SYSTEM_DEFAULT_REGISTRY=10.82.244.40 -e CATTLE_SYSTEM_CATALOG=bundled -v /app/appdeploy/rancher/rancher:/var/lib/rancher -v /app/appdeploy/rancher/auditlog:/var/log/auditlog 10.82.244.40/rancher/rancher:v2.5.10

 

 

# 完成安装以后浏览器输入登录

https://10.82.232.39:8843/

 

# 登录界面设置密码选择集群模式(由于公司google浏览器登录有问题,请使用edge)

 

# 创建集群sftest (并配置为仓库为私有仓库)

 

安装K8S

# 安装kmaster节点

 

选择集群-Registration Cmd->(勾选所有) -> 复制执行命令

 

在kmaster节点上执行:

sudo docker run -d --privileged --restart=unless-stopped --net=host -v /etc/kubernetes:/etc/kubernetes -v /var/run:/var/run  10.82.244.40/rancher/rancher-agent:v2.5.10 --server https://10.82.232.39:8843 --token 5dkz8p6zqtbw2bblts594tcwzz5259rglzjc88gzvspzcs4wjhwrzx --ca-checksum c20103b4e741187ddc5f089f48a6a1fe7807b7c2d7a90c7154a7d7516c7606b4 --etcd --controlplane --worker                

 

# 安装work节点

选择集群-Registration Cmd->(勾选所有) -> 复制执行命令

在knode节点上执行:

sudo docker run -d --privileged --restart=unless-stopped --net=host -v /etc/kubernetes:/etc/kubernetes -v /var/run:/var/run  10.82.244.40/rancher/rancher-agent:v2.5.10 --server https://10.82.232.39:8843 --token 5dkz8p6zqtbw2bblts594tcwzz5259rglzjc88gzvspzcs4wjhwrzx --ca-checksum c20103b4e741187ddc5f089f48a6a1fe7807b7c2d7a90c7154a7d7516c7606b4 --worker                

 

等待安装完成,可以看到正常节点

 

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics