• Rancher2.1安装部署


    基础环境配置

    1、操作系统选择

    • Ubuntu 16.04(64位 Server版)
    • Centos/RedHat Linux 7.5+(64位)

    2、Docker版本选择

    • 1.12.6
    • 1.13.1
    • 17.03.2

    3、主机名配置

    因为K8S的规定,主机名只支持包含 -.(中横线和点)两种特殊符号,并且主机名不能出现重复。

    4、配置Hosts

    配置每台主机的hosts(/etc/hosts),添加host_ip $hostname/etc/hosts文件中。

    5、CentOS关闭selinux

    sudo sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config

    6、关闭防火墙

    关闭防火墙

    1、Centos

    systemctl stop firewalld.service && systemctl disable firewalld.service

    2、Ubuntu

    ufw disable

    7、配置主机时间、时区、系统语言

    查看时区

    date -R 或者 timedatectl

    修改时区

    ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

    修改系统语言环境

    sudo echo 'LANG="en_US.UTF-8"' >> /etc/profile;source /etc/profile

    8、Kernel性能调优

    cat >> /etc/sysctl.conf<<EOF
    net.ipv4.ip_forward=1
    net.bridge.bridge-nf-call-iptables=1
    net.ipv4.neigh.default.gc_thresh1=4096
    net.ipv4.neigh.default.gc_thresh2=6144
    net.ipv4.neigh.default.gc_thresh3=8192
    EOF
    
    sysctl –p

    Docker安装配置

    1、各系统的安装方法

    Ubuntu安装方法

    1、修改系统源

    sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
    cat > /etc/apt/sources.list << EOF
    deb http://mirrors.aliyun.com/ubuntu/ xenial main
    deb-src http://mirrors.aliyun.com/ubuntu/ xenial main
    deb http://mirrors.aliyun.com/ubuntu/ xenial-updates main
    deb-src http://mirrors.aliyun.com/ubuntu/ xenial-updates main
    deb http://mirrors.aliyun.com/ubuntu/ xenial universe
    deb-src http://mirrors.aliyun.com/ubuntu/ xenial universe
    deb http://mirrors.aliyun.com/ubuntu/ xenial-updates universe
    deb-src http://mirrors.aliyun.com/ubuntu/ xenial-updates universe
    deb http://mirrors.aliyun.com/ubuntu/ xenial-security main
    deb-src http://mirrors.aliyun.com/ubuntu/ xenial-security main
    deb http://mirrors.aliyun.com/ubuntu/ xenial-security universe
    deb-src http://mirrors.aliyun.com/ubuntu/ xenial-security universe
    EOF

    2、Docker-ce 安装

    # 定义安装版本
    export docker_version=17.03.2
    # step 1: 安装必要的一些系统工具
    sudo apt-get update
    sudo apt-get -y install apt-transport-https ca-certificates curl software-properties-common bash-completion
    # step 2: 安装GPG证书
    sudo curl -fsSL http://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
    # Step 3: 写入软件源信息
    sudo add-apt-repository "deb [arch=amd64] http://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"
    # Step 4: 更新并安装 Docker-CE
    sudo apt-get -y update
    version=$(apt-cache madison docker-ce|grep ${docker_version}|awk '{print $3}')
    # --allow-downgrades 允许降级安装
    sudo apt-get -y install docker-ce=${version} --allow-downgrades
    # 设置开机启动
    sudo systemctl enable docker

    Centos 安装方法

    1、修改系统源

    sudo cp /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak
    cat > /etc/yum.repos.d/CentOS-Base.repo << EOF
    [base]
    name=CentOS-$releasever - Base - mirrors.aliyun.com
    failovermethod=priority
    baseurl=http://mirrors.aliyun.com/centos/$releasever/os/$basearch/
            http://mirrors.aliyuncs.com/centos/$releasever/os/$basearch/
            http://mirrors.cloud.aliyuncs.com/centos/$releasever/os/$basearch/
    gpgcheck=1
    gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7
    
    #released updates
    [updates]
    name=CentOS-$releasever - Updates - mirrors.aliyun.com
    failovermethod=priority
    baseurl=http://mirrors.aliyun.com/centos/$releasever/updates/$basearch/
            http://mirrors.aliyuncs.com/centos/$releasever/updates/$basearch/
            http://mirrors.cloud.aliyuncs.com/centos/$releasever/updates/$basearch/
    gpgcheck=1
    gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7
    
    #additional packages that may be useful
    [extras]
    name=CentOS-$releasever - Extras - mirrors.aliyun.com
    failovermethod=priority
    baseurl=http://mirrors.aliyun.com/centos/$releasever/extras/$basearch/
            http://mirrors.aliyuncs.com/centos/$releasever/extras/$basearch/
            http://mirrors.cloud.aliyuncs.com/centos/$releasever/extras/$basearch/
    gpgcheck=1
    gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7
    
    #additional packages that extend functionality of existing packages
    [centosplus]
    name=CentOS-$releasever - Plus - mirrors.aliyun.com
    failovermethod=priority
    baseurl=http://mirrors.aliyun.com/centos/$releasever/centosplus/$basearch/
            http://mirrors.aliyuncs.com/centos/$releasever/centosplus/$basearch/
            http://mirrors.cloud.aliyuncs.com/centos/$releasever/centosplus/$basearch/
    gpgcheck=1
    enabled=0
    gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7
    
    #contrib - packages by Centos Users
    [contrib]
    name=CentOS-$releasever - Contrib - mirrors.aliyun.com
    failovermethod=priority
    baseurl=http://mirrors.aliyun.com/centos/$releasever/contrib/$basearch/
            http://mirrors.aliyuncs.com/centos/$releasever/contrib/$basearch/
            http://mirrors.cloud.aliyuncs.com/centos/$releasever/contrib/$basearch/
    gpgcheck=1
    enabled=0
    gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7
    EOF

    2、安装Docker-ce

    # 添加用户(可选)
    sudo adduser `<user>`
    # 为新用户设置密码
    sudo passwd `<user>`
    # 为新用户添加sudo权限
    sudo echo '<user> ALL=(ALL) ALL' >> /etc/sudoers
    # 卸载旧版本Docker软件
    sudo yum remove docker 
                  docker-client 
                  docker-client-latest 
                  docker-common 
                  docker-latest 
                  docker-latest-logrotate 
                  docker-logrotate 
                  docker-selinux 
                  docker-engine-selinux 
                  docker-engine 
                  container*
    # 定义安装版本
    export docker_version=17.03.2
    # step 1: 安装必要的一些系统工具
    sudo yum update -y
    sudo yum install -y yum-utils device-mapper-persistent-data lvm2 bash-completion
    # 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 all
    version=$(yum list docker-ce.x86_64 --showduplicates | sort -r|grep ${docker_version}|awk '{print $2}')
    sudo yum -y install --setopt=obsoletes=0 docker-ce-${version} docker-ce-selinux-${version}
    # 如果已经安装高版本Docker,可进行降级安装(可选)
    yum downgrade --setopt=obsoletes=0 -y docker-ce-${version} docker-ce-selinux-${version}
    # 把当前用户加入docker组
    sudo usermod -aG docker `<new_user>`
    # 设置开机启动
    sudo systemctl enable docker

    2、Docker配置

    配置镜像加速地址

    可以配置多条,以数组的形式编写,地址需要添加协议头。编辑/etc/docker/daemon.json加入以下内容

    {
        "registry-mirrors": ["https://z34wtdhg.mirror.aliyuncs.com","https://$IP:$PROT"]
    }

    配置私有仓库

    Docker默认只信任TLS加密的仓库地址(https),所有非https仓库默认无法登陆也无法拉取镜像。insecure-registries字面意思为不安全的仓库,通过添加这个参数对非https仓库进行授信。可以设置多个insecure-registries地址,以数组形式书写,地址不能添加协议头(http)。编辑/etc/docker/daemon.json加入以下内容:

    {
        "insecure-registries":["harbor.httpshop.com","bh-harbor.suixingpay.com"]
    }

    配置Docker存储驱动

    存储驱动有很多种,例如:overlay、overlay2、devicemapper等,前两者是OverlayFS类型的,是一个新一代的联合文件系统,类似于AUFS,但速度更快,更加稳定。这里推荐新版的overlay2。

    要求:

    • overlay2: Linux内核版本4.0或更高版本,或使用内核版本3.10.0-514+的RHEL或CentOS
    • 支持的磁盘文件系统:ext4(仅限RHEL 7.1),xfs(RHEL7.2及更高版本),需要启用d_type=true

    编辑/etc/docker/daemon.json加入以下内容

    {
        "storage-driver": "overlay2",
        "storage-opts": ["overlay2.override_kernel_check=true"]
    }

    配置日志驱动

    容器在运行时会产生大量日志文件,很容易占满磁盘空间。通过配置日志驱动来限制文件大小与文件的数量。 >限制单个日志文件为100M,最多产生3个日志文件

    {
    "log-driver": "json-file",
    "log-opts": {
        "max-size": "100m",
        "max-file": "3"
        }
    }

    daemon.json的样例

    {
        "registry-mirrors": ["https://z34wtdhg.mirror.aliyuncs.com"],
        "insecure-registries":["harbor.httpshop.com","bh-harbor.suixingpay.com"],
        "storage-driver": "overlay2",
        "storage-opts": ["overlay2.override_kernel_check=true"]
    }
    {
    "log-driver": "json-file",
    "log-opts": {
        "max-size": "100m",
        "max-file": "3"
        }
    }

    单节点安装

    使用默认自签名证书

    默认情况下,Rancher会自动生成一个用于加密的自签名证书。从你的Linux主机运行Docker命令来安装Rancher,而不需要任何其他参数:

    docker run -d --restart=unless-stopped 
    -p 80:80 -p 443:443 
    -v /root/var/log/auditlog:/var/log/auditlog 
    -e AUDIT_LEVEL=3 
    rancher/rancher:latest

    HA集群安装

    前提条件

    • kubectl kubernetes客户端工具
    • rke 用于构建kubernetes集群
    • helm kubernetes包管理工具

    创建四层负载均衡器

    我们将使用Nginx作为四层负载均衡器,Nginx会将所有的连接转发到rancher节点之一。注意:不要使用任何rancher节点作为负载均衡器,会出现端口冲突。

    1、安装nginx

    需要定制的话,就自己源码安装即可,这里就使用yum或者apt-get

    yum install nginx

    2、编制nginx配置文件

    #复制下面的代码到文本编辑器,保存为nginx.conf。
    worker_processes 4;
    worker_rlimit_nofile 40000;
    
    events {
        worker_connections 8192;
    }
    
    http {
        server {
            listen         80;
            return 301 https://$host$request_uri;
        }
    }
    
    stream {
        upstream rancher_servers {
            least_conn;
            server <IP_NODE_1>:443 max_fails=3 fail_timeout=5s;
            server <IP_NODE_2>:443 max_fails=3 fail_timeout=5s;
            server <IP_NODE_3>:443 max_fails=3 fail_timeout=5s;
        }
        server {
            listen     443;
            proxy_pass rancher_servers;
        }
    }

    这里的IP_NODE_1、IP_NODE_2、IP_NODE_3替换成真实环境中的Rancher节点的IP地址。

    3、加载配置文件

    nginx -s reload

     RKE安装kubernetes集群

    下载rke工具

    wget https://github.com/rancher/rke/releases/download/v0.1.11/rke_linux-amd64
    mv rke_linux-amd64 rke && chmod 755 rke && mv rke /usr/local/bin
    rke --version

    修改hosts(所有节点)

    cat << EOF >>/etc/hosts
    > 10.10.3.201 rancher-master01
    > 10.10.3.202 rancher-master02
    > 10.10.3.204 rancher-master03
    > EOF

     免密操作

    ssh-keygen -t rsa
    ssh-copy-id -i .ssh/id_rsa.pub root@10.10.3.201
    ssh-copy-id -i .ssh/id_rsa.pub root@10.10.3.202
    ssh-copy-id -i .ssh/id_rsa.pub root@10.10.3.204 

    创建rancher-cluster.yml文件

    使用下面的示例创建rancher-cluster.yml文件,使用创建的3个节点的IP地址替换列表中的IP地址。

    nodes:
      - address: 10.10.3.201
        user: root
        role: [controlplane,worker,etcd]
      - address: 10.10.3.202
        user: root
        role: [controlplane,worker,etcd]
      - address: 10.10.3.204
        user: root
        role: [controlplane,worker,etcd]
    
    services:
      etcd:
        snapshot: true
        creation: 6h
        retention: 24h

     运行rke安装

    rke up --config ./rancher-cluster.yml

    测试集群

    安装完成后,会产生一个kube_config_rancher-cluster.yml文件,这个是集群的认证文件。

    mkdir ~/.kube
    cat kube_config_rancher-cluster.yml >> ~/.kube/config

    通过kubectl 测试连接集群,查看所有节点状态

    $ kubectl get nodes
    NAME          STATUS    AGE       VERSION
    10.10.3.201   Ready     19m       v1.11.3
    10.10.3.202   Ready     19m       v1.11.3
    10.10.3.204   Ready     19m       v1.11.3

    安装Helm

    配置Helm客户端访问权限

    Helm在集群上安装tiller服务以管理charts. 由于RKE默认启用RBAC, 因此我们需要使用kubectl来创建一个serviceaccountclusterrolebinding才能让tiller具有部署到集群的权限。

    kubectl -n kube-system create serviceaccount tiller
    kubectl create clusterrolebinding tiller --clusterrole cluster-admin --serviceaccount=kube-system:tiller

    安装Helm客户端

    二进制安装方法:

    1、下载预期的版本 releases

    2、解压缩

    tar zxvf helm-v2.11.0-linux-amd64.tar.gz

    3、把helm二进制文件拷贝到系统环境里

    mv  linux-amd64/helm /usr/bin/

    安装Helm Server(Tiller)

    Helm的服务器端部分Tiller,通常运行在Kubernetes集群内部。但是对于开发,它也可以在本地运行,并配置为与远程Kubernetes集群通信。

    快速集群内安装

    helm init --service-account tiller   --tiller-image registry.cn-hangzhou.aliyuncs.com/google_containers/tiller:v2.11.0 --stable-repo-url https://kubernetes.oss-cn-hangzhou.aliyuncs.com/charts

     安装Tiller金丝雀版本

    helm init --service-account tiller --canary-image

    Helm安装Rancher

    1、添加chart仓库

    使用helm repo add命令添加Rancher chart仓库地址

    helm repo add rancher-latest https://releases.rancher.com/server-charts/latest

     2、安装证书管理器

    从Helm stable目录安装cert-manager

    helm install stable/cert-manager 
      --name cert-manager 
      --namespace kube-system

    3、选择SSL配置方式并安装Rancher server

    Rancher server设计默认需要开启SSL/TLS配置来保证安全。

    helm install rancher-latest/rancher 
      --name rancher 
      --namespace cattle-system 
      --set hostname=rancher.httpshop.com

    hostname根据自己情况定义

    到此为止Rancher-server 已经安装完成。

    Rancher中安装kuberntes

    1、自定义节点创建集群

    主机类型:

    • 云主机
    • 内部虚拟机
    • 裸机服务器

    创建自定义集群

    1、从"集群"页面,单击"添加集群"。

    2、选择“CUSTOM”

    3、输入“集群名称”

    4、使用“成员角色”配置集群用户的授权

    5、使用“集群选项”,选择Docker版本、kubernetes版本、网络组件等相关配置,点击下一步。

    6、从主机角色列表中选择节点所要添加的角色。

    7、将屏幕上显示的命令复制到剪贴板。

    8、使用首选shell登录Linux主机,例如PuTTy或远程终端连接。运行复制到剪贴板的命令。

    9、在Linux主机上运行完命令后,单击“完成”

    2、导入kuebernetes集群

    您可以导入现有的Kubernetes集群,然后使用Rancher进行管理。

    前提

    如果现有Kubernetes集群已cluster-admin定义角色,则必须具有此cluster-admin权限才能将集群导入Rancher。要应用权限,您需要kubectl create clusterrolebinding cluster-admin-binding --clusterrole cluster-admin --user [USER_ACCOUNT]在运行kubectl命令之前运行以导入群集。

    1、从“ 群集”页面中,单击“ 添加群集”

    2、选择“Import”

    3、输入集群名称

    4、使用“ 成员角色”配置群集的用户授权。

    • 单击“ 添加成员”以添加可以访问群集的用户。
    • 使用“ 角色”下拉列表为每个用户设置权限。

    5、单击创建

    6、将显示的第一个命令复制到剪贴板。

    7、使用首选shell(例如PuTTy或远程终端连接)登录到其中一个群集节点。运行复制到剪贴板的命令。

    8、如果收到消息certificate signed by unknown authority,请将Rancher中显示的第二个命令复制到剪贴板。然后在群集节点上运行该命令。

    9、在Linux主机上运行完命令后,单击“完成”

  • 相关阅读:
    从头认识java-5.2 包(package)
    从头认识java-5.1 为什么需要访问权限?
    从头认识java-4.9 枚举类型
    从头认识java-4.8 数组的初始化(2)-可变参数列表
    从头认识java-4.8 数组的初始化(1)
    从头认识java-4.7 构造器初始化(3)
    从头认识java-4.7 构造器初始化(2)
    全局对象:数字对象
    JavaScript的数据类型
    全局对象:String对象
  • 原文地址:https://www.cnblogs.com/xzkzzz/p/9995956.html
Copyright © 2020-2023  润新知