• Rancher学习


    一、理论基础:

    1、Docker:

    Docker是一个容器引擎,容器是由Docker创建的。

    2、Docker-Compose:

    Docker-Compose是用来管理容器的,有点像容器的管家,想象一下当Docker中有成百上千的容器需要启动时,如果一

    个一个的启动费时费力。有了Docker-Compose只需要编写一个文件,执行一些这个文件,Docker就会按照声明的配置去

    把所有的容器启动起来,Docker-Compose只能管理当前主机上的Docker,不能启动其他主机上的Docker容器。

    3、Docker Swarm:

    Docker Swarm是一款用来管理多主机上的Docker容器的工具,可以负责启动容器、监控容器状态,如果容器的状态

    不正常它会重新启动一个新的容器来提供服务,同时也提供服务之间的负载均衡,而这些是Docker-Compose做不到的。

    4、Kubernetes:

    Kubernetes本身的角色定位和Docker Swarm是相同的,Kubernetes是谷歌公司根据自身多年的运维经验研发的一款跨

    主机的容器管理平台。

    5、Rancher:

    ​Rancher是更上层的管理框架,更像是一个微容器云的PAAS管理平台,可以帮助企业在生产环境中运行和管理Docker

    和Kubernetes,而无需从头开始构建容器服务平台,只需512M RAM即可运行。Rancher简化了使用Kubernetes的流

    程,开发者可以随处运行Kubernetes(Run Kubernetes Everywhere),增强DevOps团队的能力。可以把Rancher看做是

    相比于Kubernetes更上层的管理平台,对Kubernetes进行了功能的扩展与实现了和Kubernetes集群交互的一些便捷工

    具,包括执行命令行、管理多个Kubernetes集群、查看Kubernetes集群节点的运行状态等。

    二、搭建Rancher:

    1、服务器资源划分:

    IP 配置 作用
    192.168.1.90 2C/4G/40G rancher-server、harbor、nfs
    192.168.1.91 2C/4G/40G etcd、control
    192.168.1.92 2C/4G/40G rancher-agent(worker)
    192.168.1.93 2C/4G/40G rancher-agent(worker

    2、拓扑图:

    3、搭建Rancher平台:

    1. 初始化centos7:

      # 1、设置网卡信息
      #    vim /etc/sysconfig/network-scripts/ifcfg-enp0s3
      TYPE=Ethernet
      BOOTPROTO=static                         # 设置静态手动分配ip
      DEFROUTE=yes
      PEERDNS=yes
      PEERROUTES=yes
      IPV4_FAILURE_FATAL=no
      IPV6INIT=yes
      IPV6_AUTOCONF=yes
      IPV6_DEFROUTE=yes
      IPV6_PEERDNS=yes
      IPV6_PEERROUTES=yes
      IPV6_FAILURE_FATAL=no
      IPV6_ADDR_GEN_MODE=stable-privacy
      NAME=enp0s3
      UUID=f60b3b48-1d0d-46b1-ab4e-7d6e27f59d8e
      DEVICE=enp0s3
      ONBOOT=yes                              # 系统启动时是否激活网卡 yes表示激活网卡
      IPADDR=192.168.1.90                     # 系统固定ip
      NETMASK=255.255.255.0                   # 子网掩码
      GATEWAY=192.168.1.1                     # 网关
      DNS=8.8.8.8                             # DNS
      # 2、重启network
      systemctl restart network
      # 3、配置主机名
      hostnamectl set-hostname distributed-env-90
      hostnamectl set-hostname distributed-env-91
      hostnamectl set-hostname distributed-env-92
      hostnamectl set-hostname distributed-env-93
      hostnamectl set-hostname distributed-env-94
      # 4、yum源更新
      yum -y update
      # 5、时间钟同步
      yum install ntpdate -y  
      ntpdate time.windows.com
      # 6、关闭SELINUX
      sed -i 's/enforcing/disabled/' /etc/selinux/config   # 永久关闭selinux
      setenforce 0                                         # 临时关闭selinux
      # 7、关闭系统防火墙
      systemctl stop firewalld                             # 关闭防火墙
      systemctl disable firewalld                          # 禁用防火墙
      # 8、关闭Swap分区
      sed -ri 's/.*swap.*/#&/' /etc/fstab                 # 永久关闭swap分区
      swapoff -a                                          # 临时关闭swap分区
      
    2. 安装docker、docker-compose:

      # 1、安装docker yum源
      yum -y install yum-utils
      yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
      # 2、安装docker
      yum install -y docker-ce
      # 3、设置docker开机自启动
      systemctl enable docker
      # 4、启动docker服务
      systemctl start docker
      # 5、修改docker镜像仓库
      #    vim /etc/docker/daemon.json
      {
        "registry-mirrors": ["https://d3mf5ikh.mirror.aliyuncs.com/"]
      }
      # 6、重启docker服务
      systemctl restart docker
      # 7、下载docker-compose
      sudo curl -L https://github.com/docker/compose/releases/download/1.29.1/docker-compose-Linux-x86_64 -o /usr/local/bin/docker-compose
      # 8、配置docker-compose二进制文件可执行权限
      sudo chmod +x /usr/local/bin/docker-compose
      
    3. 安装harbor、配置私服(192.168.1.90):

      # 1、下载harbor安装包
      wget https://github.com/goharbor/harbor/releases/download/v2.2.1/harbor-offline-installer-v2.2.1.tgz
      # 2、加压harbor安装包
      tar -zxvf harbor-offline-installer-v2.2.1.tgz
      # 3、修改harbor.yml配置信息
      #    vim harbor.yml
      hostname: 192.168.0.94               # 配置成本机ip
      http:
        port: 80                           # 默认端口号80
      harbor_admin_password: Harbon12345   # 默认管理员登录密码
      # 4、执行prepare
      ./prepare
      # 5、安装harbo
      sh install.sh
      # 6、配置docker私服(在需要使用私服的机器上配置)
      #    vim /etc/docker/daemon.json
      {
        "registry-mirrors": ["https://d3mf5ikh.mirror.aliyuncs.com"],
        "insecure-registries": ["192.168.1.94"]
      }
      # 7、重启docker服务
      systemctl restart docker
      
    4. 准备NFS(192.168.1.90):

      # 下载NFS
      yum install -y nfs-common nfs-utils rpcbind
      # 分配权限
      mkdir /nfsdata && chmod 666 /nfsdata && chown nfsnobody /nfsdata
      # 配置挂载
      vim /etc/exports
      /nfsdata *(rw,no_root_squash,no_all_squash,sync)
      # 启动
      systemctl start rpcbind && systemctl start nfs
      
    5. 安装Rancher Server(192.168.1.90):

      # 1、设置网卡转发
      #    vim /etc/sysctl.conf
      net.ipv4.ip_forward=1
      # 重启网卡服务
      systemctl restart network
      # 查看网卡转发是否配置成功
      sysctl net.ipv4.ip_forward
      # 2、启动rancher-server
      docker run -d --restart=unless-stopped 
      -p 8888:80 -p 8443:443 
      -e CATTLE_SYSTEM_CATALOG-bundled 
      -e AUDIT_LEVEL=3 
      --privileged 
      rancher/rancher:latest
      

    三、使用Rancher搭建K8s集群:

    1、设置Rancher登录密码(仅限第一次登录):

    2、登录Rancher:

    3、创建K8s集群:

    在192.168.1.91机器上安装Etcd、Control Plane

    sudo docker run -d --privileged --restart=unless-stopped --net=host -v /etc/kubernetes:/etc/kubernetes -v /var/run:/var/run  rancher/rancher-agent:v2.5.7 --server https://192.168.1.90:8443 --token krp7hvb299qpnd9kdv9d8jj5j2tggpq982rjs87hd6lkhst2m2ghc9 --ca-checksum a3e9ed2c5b550f67f4e5012d8cdccbf49a292acc5757802f777fe557159e351a --etcd --controlplane
    

    在192.168.1.92~93机器上安装Worker

    sudo docker run -d --privileged --restart=unless-stopped --net=host -v /etc/kubernetes:/etc/kubernetes -v /var/run:/var/run  rancher/rancher-agent:v2.5.7 --server https://192.168.1.90:8443 --token krp7hvb299qpnd9kdv9d8jj5j2tggpq982rjs87hd6lkhst2m2ghc9 --ca-checksum a3e9ed2c5b550f67f4e5012d8cdccbf49a292acc5757802f777fe557159e351a --worker
    

    根据网络及服务器配置情况,集群安装过程中可能会比较耗时。

    4、测试K8s集群——部署Nginx:

    输入应用名称、Docker镜像构点击保存。

    Nginx容器启动后,如何访问?

    通过生成的随机端口即可访问部署的nginx容器,如下:

    5、PVC挂载:

    PVC挂载可以实现每一个Pod容器内特定的目录下的数据同步到指定的外部存储,使用场景最多的就是同步日志数据。

    1、先添存储-->持久卷(PV):

    2、添加PVC:

    3、将nginx容器的某个目录挂载到PVC存储:

    验证容器挂载PVC是否成功:

    在命令行执行如下命令:

    cd /data
    touch a 
    

    在启动nfs服务的节点进入/nfsdata目录下查看:

    四、Spring Cloud应用部署到K8S集群中:

    1、编译源码:

    mvn clean package -Dmaven.test.skip=true
    

    2、构建docker镜像:

    docker build -t gateway-service .
    

    3、给镜像打标签:

    docker tag gateway-service 192.168.1.90/pub/gateway-service:1.0
    

    4、将镜像推送到docker私服:

    docker login 192.168.1.90
    docker push 192.168.1.90/pub/gateway-service:1.0
    

    5、部署应用:

    访问部署的Spring Boot应用:

  • 相关阅读:
    【LeetCode】-- 73. Set Matrix Zeroes
    (第三场) A PACM Team 【dp,五维背包】
    POJ 1745 【0/1 背包】
    (第三场) H Diff-prime Pairs 【数论-素数线性筛法+YY】
    POJ 2299 【树状数组 离散化】
    树状数组 && 线段树应用 -- 求逆序数
    HDU 1698 【线段树,区间修改 + 维护区间和】
    HDU 1166 【线段树 || 树状数组,单点修改 维护区间和】
    (第二场)D Money 【dp贪心】
    (第二场)A Run 【动态规划】
  • 原文地址:https://www.cnblogs.com/xiaoshuzhagen/p/14722427.html
Copyright © 2020-2023  润新知