一、目标

离线安装rke2高可用集群,并部署rancher

二、环境准备

主节点:10.18.97.185

从节点:10.18.97.186

agnt节点:192.168.200.6

harbor:10.18.97.187

网络: 可以互相ping通

设备:ctenos7.6 

三、准备工作

1、NetworkManager

在 /etc/NetworkManager/conf.d 中创建名为 rke2-canal.conf 的配置文件,内容如下:

vi /etc/NetworkManager/conf.d/rke2-canal.conf

[keyfile]

unmanaged-devices=interface-name:cali*;interface-name:flannel*

systemctl reload NetworkManager

2、关闭防火墙 (必须)

systemctl stop firewalld && systemctl disable firewalld

3、关闭setlinux (必须)

setenforce 0

sed -i 's/enforcing/disabled/' /etc/selinux/config

4、其他步骤

1.
cat << EOF | tee /etc/modules-load.d/k8s.conf

overlay

br_netfilter

EOF
2.手动执行加载文件  
modprobe overlay

modprobe br_netfilter
3.
cat << EOF | tee /etc/modules-load.d/k8s.conf

net.bridge.bridge-nf-call-ip6tables =1  

net.bridge.bridge-nf-call-iptables =1

net.ipv4.ip_forward =1  

EOF
4.
sysctl --system
5.配置 ipvsadm 模块
cat << EOF | tee /etc/modules-load.d/ipvs.conf

ip_vs

ip_vs_rr

ip_vs_wrr

ip_vs_sh

nf_conntrack

EOF
6.
cat << EOF | tee ipvs.sh

#!/bin/bash

modprobe ip_vs

modprobe ip_vs_rr

modprobe ip_vs_wrr

modprobe ip_vs_sh

modprobe nf_conntrack

EOF
7.
sh ipvs.sh

四、rke2离线安装

1.准备好以下文件

下载地址:

curl -OLs https://github.com/rancher/rke2/releases/download/v1.21.5%2Brke2r2/rke2-images.linux-amd64.tar.zst

curl -OLs https://github.com/rancher/rke2/releases/download/v1.21.5%2Brke2r2/rke2.linux-amd64.tar.gz

curl -OLs https://github.com/rancher/rke2/releases/download/v1.21.5%2Brke2r2/sha256sum-amd64.txt

curl -sfL https://get.rke2.io --output install.sh

2.把上述文件放在一个文件里,进入文件

3.开始安装

mkdir -p /var/lib/rancher/rke2/agent/images/

cp rke2-images-core.linux-amd64.tar.gz /var/lib/rancher/rke2/agent/images/

cp rke2-images.linux-amd64.tar.gz /var/lib/rancher/rke2/agent/images/

cp rke2.linux-amd64.tar.gz /var/lib/rancher/rke2/agent/images/

cp rke2.linux-amd64 /usr/local/bin/rke2

chmod +x /usr/local/bin/rke2

mkdir -p  /root/v1.30.14+rke2r1/

cp sha256sum-amd64.txt /root/v1.30.14+rke2r1/

cp rke2.linux-amd64.tar.gz /root/v1.30.14+rke2r1/

INSTALL_RKE2_ARTIFACT_PATH=/root/v1.30.14+rke2r1 sh install.sh

    4.安装完成,配置config文件

    mkdir -p /etc/rancher/rke2/
    
    vi /etc/rancher/rke2/config.yaml

    写入以下内容

    token:  “my_token" #可自行设置
    
    tls-san: "主机ip"
    
    system-default-registry: "10.18.97.187"   #本地镜像源
    
    node-taint:
    
      - "CriticalAddonsOnly=true:NoExecute"  #设置污点,可不写
    
    node-label:   #标签
    
      - "node=Master"

    5.启动

    systemctl enable rke2-server.service
    systemctl restart rke2-server.service

      6.可能启动会有问题,可用使用命令排错

      journalctl -u rke2-server.service -f
      
      systemctl status rke2-server.service

      7.会出现执行kubectl等命令失效问题

      解决方法

      当前会话生效

      export PATH=/var/lib/rancher/rke2/bin:$PATH
      
      export KUBECONFIG=/etc/rancher/rke2/rke2.yaml
      
      ln -s /var/lib/rancher/rke2/agent/etc/crictl.yaml  /etc/crictl.yaml
      
      ln -s /var/lib/rancher/rke2/bin/kubectl /usr/bin/kubectl

      永久生效:

      vi /etc/profile

      后面添加

      export PATH=/var/lib/rancher/rke2/bin:$PATH
      
      export KUBECONFIG=/etc/rancher/rke2/rke2.yaml

      生效

      source /etc/profile

        检验

        8.配置私有镜像仓库

        vi  /etc/rancher/rke2/registries.yaml
        mirrors:
        
          10.18.97.187:
        
            endpoint:
        
              - "http://10.18.97.187"
        
        configs:
        
          "10.18.97.187":
        
            tls:
        
              insecure_skip_verify: true

        重启生效

        systemctl restart rke2-server.service

          五、rke2高可用

          1.其他server节点

          准备另一台主机,其他配置步骤与上述相同,config文件不同

          mkdir -p /etc/rancher/rke2/

          在主server节点上查看token:

          cat  /var/lib/rancher/rke2/server/node-token

          编辑文件

          vi /etc/rancher/rke2/config.yaml

          文件内容:

          ​
          server: https://10.18.97.185:9345   #serverip
          
          token: "server节点的token"
          
          tls-san: "server的ip"
          
          tls-san: "主机IP"
          
          system-default-registry: "10.18.97.187"
          
          node-label:
          
            - "node=rancher186"
          
          ​

          启动服务

            systemctl enable rke2-server.service
            
            systemctl restart rke2-server.service

              2.agent节点

              1、准备另一台主机,其他配置步骤与上述相同,安装命令和config文件不同

              安装命令:

              INSTALL_RKE2_TYPE="agent" INSTALL_RKE2_ARTIFACT_PATH=/root/v1.30.14+rke2r1 sh /install.sh
              
              mkdir -p /etc/rancher/rke2/
              
               vi /etc/rancher/rke2/config.yaml

              文件内容:

              ​
              server: https://server 的ip:9345
              
              token: “your servertoken”

              启动服务

              systemctl enable rke2-agent.service
              
              systemctl restart rke2-agent.service

              3.卸载rke2

              1.RPM 方法

              /usr/bin/rke2-uninstall.sh

              2.Tarball 方法

              sudo /usr/local/bin/rke2-killall.sh
              
              sudo /usr/local/bin/rke2-uninstall.sh
              
              sudo rm -rf /etc/rancher/rke2/
              
              sudo rm -rf /var/lib/rancher/rke2/
              
              sudo rm -f /etc/systemd/system/rke2*.service
              
              rm -rf  /etc/rancher/rke2/

              六、安装rancher

              1.准备工作

              (1)安装helm(离线)
              #获取软件
              
              wget https://get.helm.sh/helm-v3.13.2-linux-amd64.tar.gz(在有网主机上下载,传到目的主机)
              
              #解压软件
              
              tar -zxvf helm-v3.13.2-linux-amd64.tar.gz
              
              #加入环境变量
              
              mv linux-amd64/helm /usr/local/bin/helm

              验证

              helm version

              (2)安装cert(离线)

              1.在有网主机

              helm repo add jetstack https://charts.jetstack.io
              
              helm repo update

              可用

              helm pull  cert-manager jetstack/cert-manager 

              (下载tar文件)

              2.解压更改yaml文件,底行模式寻找关键字repository:后面添加本地镜像10.18.97.187/ ip(五次)

              vi  cert-manager/va*.yaml

              3.创建命名空间

              kubectl create namespace cert-manager

              4.安装

              helm install cert-manager ./cert-manager-v1.11.0.tgz --namespace cert-manager --set image.repository=10.18.97.187/quay.io/jetstack/cert-manager-controller --set webhook.image.repository=10.18.97.187/quay.io/jetstack/cert-manager-webhook --set cainjector.image.repository=10.18.97.187/quay.io/jetstack/cert-manager-cainjector --set startupapicheck.image.repository=10.18.97.187/quay.io/jetstack/cert-manager-ctl --set installCRDs=true

              5.检验:

              6.卸载

              helm uninstall cert-manager -n cert-manager

                2.安装rencher

                1.有网主机上
                #添加rencher仓库
                
                helm repo add rancher-stable https://releases.rancher.com/server-charts/stable
                
                #更新索引
                
                helm repo update
                
                #查找rancher(可忽略)
                
                helm search repo rancher
                2.拉取到本地
                helm pull rancher-stable/rancher --version=v2.11.3

                (tgz压缩包)

                传送到离线主机

                3.解压
                tar -zxf rancher-2.11.3.tgz
                4.更改yaml文件
                cd rancher/
                
                sudo vi values.yaml

                用底行模式寻找/ repository:  rancherImage 在对应位置加上10.18.97.187/(本地镜像源)

                5.创建命名空间
                kubectl create namespace cattle-system
                6.安装
                helm install rancher --namespace cattle-system --set hostname=10.18.97.186.sslip.io --set replicas=1 --set systemDefaultRegistry=10.18.97.187 --set bootstrapPassword=1qaz@WSX ./rancher
                7. 等待pod跑起来,浏览器打开网站

                  8.卸载rancher
                  helm uninstall rancher -n cattle-system

                  Logo

                  开源鸿蒙跨平台开发社区汇聚开发者与厂商,共建“一次开发,多端部署”的开源生态,致力于降低跨端开发门槛,推动万物智联创新。

                  更多推荐