一、准备工作

系统:CentOS Linux release 7.6.1810 (Core),主节点10.18.97.186,从节点10.18.97.185,用harbor搭建的本地镜像源10.18.97.187

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
5、默认路由 (Default Network Route)

如果节点没有配置默认路由,则必须添加一个默认路由;即使是通过虚拟设备产生的“黑洞”路由(black-hole route)也可以。

K3s 需要默认路由以自动检测节点的主 IP,并确保 kube-proxy 的 ClusterIP 路由功能正常工作。可通过以下步骤添加 dummy 默认路由:

ip link add dummy0 type dummy

ip link set dummy0 up

ip addr add 203.0.113.254/31 dev dummy0

ip route add default via 203.0.113.255 dev dummy0 metric 1000

删除路由

# 删除添加的默认路由

sudo ip route del default via 203.0.113.255 dev dummy0 metric 1000

# 删除 dummy0 接口的 IP 地址(可选,删除接口前通常不需要单独这一步)

sudo ip addr del 203.0.113.254/31 dev dummy0

# 禁用 dummy0 接口

sudo ip link set dummy0 down

# 删除 dummy0 虚拟接口

sudo ip link delete dev dummy0 type dummy

二、K3s的安装

(1)主节点安装

将同一版本的 K3s 的安装脚本(k3s-install.sh)、K3s 的二进制文件(k3s)、K3s 依赖的镜像(k3s-airgap-images-amd64.tar)下载到了/root目录下。

1、导入镜像到 containerd 镜像列表
sudo mkdir -p /var/lib/rancher/k3s/agent/images/

sudo cp /root/k3s-airgap-images-amd64.tar /var/lib/rancher/k3s/agent/images/
2、将 K3s 安装脚本和 K3s 二进制文件移动到对应目录并授予可执行权限
sudo chmod a+x /root/k3s /root/k3s-install.sh

sudo cp /root/k3s /usr/local/bin/
3、更改配置文件
mkdir -p /etc/rancher/k3s/

vi  /etc/rancher/k3s/config.yaml

#内容(注意tls-san的要有想加入本节点其他server的ip才能使用高可用)

write-kubeconfig-mode: "0644" # 允许非root用户读取kubeconfig

tls-san:

  - "服务ip"

  - "从节点ip"

cluster-init: true

token: "123456"
4、安装 K3s
INSTALL_K3S_SKIP_DOWNLOAD=true  /root/k3s-install.sh
5、检验
export KUBECONFIG=/etc/rancher/k3s/k3s.yaml  # kubectl不能用时使用这条命令

6、配置本地镜像源

更改文件

sudo vi /etc/rancher/k3s/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 k3s
7、卸载
   sudo /usr/local/bin/k3s-agent-uninstall.sh

   bash /usr/local/bin/k3s-uninstall.sh
8、报错检查命令
journalctl -u k3s -f

(2)高可用安装,加入其他server

1.准备另一台主机,其他步骤与上面步骤一致,配置文件不同
mkdir -p /etc/rancher/k3s/

vi  /etc/rancher/k3s/config.yaml

内容

server: "https://10.18.97.186:6443"

write-kubeconfig-mode: "0644"

tls-san:

  - "10.18.97.186"

  - "10.18.97.185"

cluster-init: true

token: "123456”
2.检验

3.配置本地镜像

与上面相同

(3)agent节点加入

1.步骤与上面一致,安装命令加一些参数,不用配置文件
K3S_URL=https://10.18.97.186:6443 K3S_TOKEN=123456 INSTALL_K3S_SKIP_DOWNLOAD=true ./k3s-install.sh
2.检验

3.配置本地镜像

重启生效 systemctl restart k3s-agent

三、rancher的安装

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-system

1.在有网主机
helm repo add jetstack https://charts.jetstack.io

helm repo update

helm pull  cert-manager jetstack/cert-manager

(下载tar文件)

2.解压更改yaml文件,底行模式寻找关键字repository:后面添加本地镜像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

如果有问题可以执行 export KUBECONFIG=/etc/rancher/k3s/k3s.yaml再安装

Pod跑起来就可以了

5.检验:

6.卸载
helm uninstall cert-manager -n cert-manager

3.安装rancher

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跑起来,浏览器打开网站10.18.97.186.sslip.io

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

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐