首页 > 其他分享 >基于rancher部署k8s

基于rancher部署k8s

时间:2024-07-29 11:28:08浏览次数:16  
标签:rke2 kube 部署 system server Running rancher k8s

一、基础环境说明
节点名 节点ip 角色 操作系统
node1 10.42.8.13 control-plane,etcd,master CentOS7.9
node2 10.42.8.14 control-plane,etcd,master CentOS7.9
node3 10.42.8.15 control-plane,etcd,master CentOS7.9
二、k8s节点机基础环境设置

1、设置 hostname(三台节点分别执行)

node1

hostnamectl set-hostname node1

node2

hostnamectl set-hostname node2

node3

hostnamectl set-hostname node3

2、设置 /etc/hosts(三台节点都执行)

cat < /etc/hosts
10.42.8.13 node1
10.42.8.14 node2
10.42.8.15 node3
EOF

3、设置 iptables(三台节点都执行)

iptables -P FORWARD ACCEPT

4、关闭 swap(三台节点都执行)

swapoff -a

防止开机自动挂载 swap 分区(将 /etc/fstab 中的内容注释掉)

sed -i '/ swap / s/^(.*)$/#\1/g' /etc/fstab

5、关闭 selinux(三台节点都执行)

将 selinux 由 enforcing 改为 disabled 。注意下面命令中 disabled 前面是数字 1,不是小写的英文字母 l

sed -ri 's#(SELINUX=).*#\1disabled#' /etc/selinux/config

临时关闭 enforce

setenforce 0

验证 enforce 是否已关闭:如关闭,应返回结果:Disabled

getenforce

6、将 NetworkManager 配置为忽略 calico/flannel 相关的网络接口(三台节点都执行)

cat > /etc/NetworkManager/conf.d/rke2-canal.conf <<EOF
[keyfile]
unmanaged-devices=interface-name:cali;interface-name:flannel
EOF

6、关闭并禁用firewalld和NetworkManager(三台节点都执行)

systemctl stop firewalld && systemctl disable firewalld
systemctl stop NetworkManager && systemctl disable NetworkManager

7、修改内核参数(三台节点都执行)

cat > /etc/sysctl.d/k8s.conf <<EOF
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1
vm.max_map_count = 262144
vm.swappiness=0
EOF
三、rke2部署k8s

参考文档:https://ranchermanager.docs.rancher.com/zh/how-to-guides/new-user-guides/kubernetes-cluster-setup/rke2-for-rancher

1、配置rke2配置文件

说明:token可自定义字符串,但注意所有节点的token要一样

在node1上执行

mkdir -p /etc/rancher/rke2/
cat > /etc/rancher/rke2/config.yaml <<EOF
token: K108a91d54650d8ggiegn923ijgg2a9be9d1483fc932e2221f0750f14::server:57f9a32eee46999c96e936927d09af9b
tls-san: 10.42.8.13
system-default-registry: "registry.cn-hangzhou.aliyuncs.com"
cluster-cidr: 10.251.0.0/16
service-cidr: 10.252.0.0/16

ingress:
provider: nginx
options:
config-snipper: |
# 启用 snippet
enable-snippet-annotation: "true"
EOF

在node2和node3上执行

mkdir -p /etc/rancher/rke2/
cat > /etc/rancher/rke2/config.yaml <<EOF
server: https://10.42.8.13:9345
token: K108a91d54650d8ggiegn923ijgg2a9be9d1483fc932e2221f0750f14::server:57f9a32eee46999c96e936927d09af9b
tls-san: 10.42.8.13
system-default-registry: "registry.cn-hangzhou.aliyuncs.com"
cluster-cidr: 10.251.0.0/16
service-cidr: 10.252.0.0/16
EOF

2、安装并启用rke2(三个节点都执行)。特别说明:需要等node1启动成功rke2-server后,才能在node2和node3上执行

curl -sfL https://rancher-mirror.rancher.cn/rke2/install.sh | INSTALL_RKE2_MIRROR=cn INSTALL_RKE2_VERSION=v1.25.12+rke2r1 sh -
systemctl enable rke2-server && systemctl start rke2-server

3、软连接集群配置文件和操作工具(只需在node1上执行)

ln -s /var/lib/rancher/rke2/bin/kubectl /usr/local/bin/kubectl
ln -s /var/lib/rancher/rke2/bin/crictl /usr/local/bin/crictl
ln -s /var/lib/rancher/rke2/bin/ctr /usr/local/bin/ctr
ln -s /etc/rancher/rke2/rke2.yaml ~/.kube/config

4、设置crictl的默认socket(只需在node1上执行)

说明:这里是rke2的一个bug,默认设置的socket是unix:///run/containerd/containerd.sock,而实际的确是:unix:///run/k3s/containerd/containerd.sock

cat > /etc/crictl.yaml <<EOF
runtime-endpoint: unix:///run/k3s/containerd/containerd.sock
image-endpoint: unix:///run/k3s/containerd/containerd.sock
timeout: 10
debug: false
EOF

5、crt工具使用时,先设置alias别名

说明:这里是rke2的一个bug,默认设置的socket是unix:///run/containerd/containerd.sock,而实际的确是:unix:///run/k3s/containerd/containerd.sock

cat >> ~/.bashrc <<EOF
alias ctr='ctr --address=/run/k3s/containerd/containerd.sock'
EOF

source ~/.bashrc

6、至此,k8s部署完成,检查node和pod是否正常运行

[root@node1 ~]# kubectl get no
NAME STATUS ROLES AGE VERSION
node1 Ready control-plane,etcd,master 22d v1.25.12+rke2r1
node2   Ready control-plane,etcd,master 21d v1.25.12+rke2r1
node3   Ready control-plane,etcd,master 21d v1.25.12+rke2r1
[root@node1 ~]#
[root@node1 ~]# kubectl get pod -A
NAMESPACE NAME READY STATUS RESTARTS AGE
kube-system cloud-controller-manager-rke2-server-1 1/1 Running 0 2m28s
kube-system cloud-controller-manager-rke2-server-2 1/1 Running 0 61s
kube-system cloud-controller-manager-rke2-server-3 1/1 Running 0 49s
kube-system etcd-rke2-server-1 1/1 Running 0 2m13s
kube-system etcd-rke2-server-2 1/1 Running 0 87s
kube-system etcd-rke2-server-3 1/1 Running 0 56s
kube-system helm-install-rke2-canal-hs6sx 0/1 Completed 0 2m17s
kube-system helm-install-rke2-coredns-xmzm8 0/1 Completed 0 2m17s
kube-system helm-install-rke2-ingress-nginx-flwnl 0/1 Completed 0 2m17s
kube-system helm-install-rke2-metrics-server-7sggn 0/1 Completed 0 2m17s
kube-system kube-apiserver-rke2-server-1 1/1 Running 0 116s
kube-system kube-apiserver-rke2-server-2 1/1 Running 0 66s
kube-system kube-apiserver-rke2-server-3 1/1 Running 0 48s
kube-system kube-controller-manager-rke2-server-1 1/1 Running 0 2m30s
kube-system kube-controller-manager-rke2-server-2 1/1 Running 0 57s
kube-system kube-controller-manager-rke2-server-3 1/1 Running 0 42s
kube-system kube-proxy-rke2-server-1 1/1 Running 0 2m25s
kube-system kube-proxy-rke2-server-2 1/1 Running 0 59s
kube-system kube-proxy-rke2-server-3 1/1 Running 0 85s
kube-system kube-scheduler-rke2-server-1 1/1 Running 0 2m30s
kube-system kube-scheduler-rke2-server-2 1/1 Running 0 57s
kube-system kube-scheduler-rke2-server-3 1/1 Running 0 42s
kube-system rke2-canal-b9lvm 2/2 Running 0 91s
kube-system rke2-canal-khwp2 2/2 Running 0 2m5s
kube-system rke2-canal-swfmq 2/2 Running 0 105s
kube-system rke2-coredns-rke2-coredns-547d5499cb-6tvwb 1/1 Running 0 92s
kube-system rke2-coredns-rke2-coredns-547d5499cb-rdttj 1/1 Running 0 2m8s
kube-system rke2-coredns-rke2-coredns-autoscaler-65c9bb465d-85sq5 1/1 Running 0 2m8s
kube-system rke2-ingress-nginx-controller-69qxc 1/1 Running 0 52s
kube-system rke2-ingress-nginx-controller-7hprp 1/1 Running 0 52s
kube-system rke2-ingress-nginx-controller-x658h 1/1 Running 0 52s
kube-system rke2-metrics-server-6564db4569-vdfkn 1/1 Running 0 66s
四、安装 Rancher Helm Chart(仅在node1上执行)

1、安装helm

curl https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 | bash

2、添加 Helm Chart 仓库

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

3、为 Rancher 创建命名空间

kubectl create namespace cattle-system

4、添加rancher所需的secret,注意秘钥文件路径,可自定义,需要先把秘钥文件上传到对应的目录下

kubectl -n cattle-system create secret tls tls-rancher-ingress --cert=/opt/work/ssl_cert/skyeye.crt --key=/opt/work/ssl_cert/skyeye.key

5、通过 Helm 安装 Rancher

helm install rancher rancher-stable/rancher --namespace cattle-system --version v2.7.5 --set hostname=rancher.platform.com --set bootstrapPassword=admin --set ingress.tls.source=secret

6、至此,rancher部署完成,rancher登录页为:https://rancher.platform.com

标签:rke2,kube,部署,system,server,Running,rancher,k8s
From: https://www.cnblogs.com/gatling/p/18311188

相关文章

  • RocketMQ命令介绍及RocketMQ的可视化工具部署
    前言上篇文章我们介绍了RocketMQ集群的搭建,但是我们只能通过命令来查看集群情况。所以,这篇文章我们主要介绍RocketMQ的可视化平台。RocketMQ的可视化工具主要用于监控和管理RocketMQ集群,帮助我们更加直观地了解RocketMQ的运行状态和性能指标。mqadmin工具RocketMQ官方......
  • kibana8.x版本部署
    目录安装配置创建用户下载安装包账号密码方式连接ESes生成kibana_system用户密码修改配置文件使用system启动登录验证开启https生成kibana证书和私钥拷贝证书至kibana生成crt文件修改配置文件重启服务访问验证安装配置创建用户useraddkibana下载安装包wgethttps://artifac......
  • elasticsearch8单机/集群部署
    目录一、ES8单节点部署集群架构1.环境准备2.创建用户和目录3.下载解压安装包3.1下载es83.2解压安装3.3授权目录4.修改配置文件5.使用system启动es5.1使用oracle-jdk启动(二选一)6.查看日志7.访问验证8.重置elastic密码8.1重置随机密码8.2自定义密码9.jvm内存调整9.1重启验证......
  • 仿微信im源码开源部署/社交聊天即时通讯im源码[PHP+uniapp]/直播+PC+安卓+IOS
    在数字化时代,即时通讯(InstantMessaging,IM)已成为人们日常生活中不可或缺的一部分,无论是工作协作、社交互动还是日常交流,IM应用都扮演着至关重要的角色。从早期的ICQ、MSN到如今的微信、WhatsApp、Telegram等,IM技术不断演进,为用户提供了更加丰富、便捷、安全的沟通体验。本文旨在......
  • ragflow 启动unbuntu下部署
    #ragflow网址demo网址:https://demo.ragflow.io/介绍网址:https://mp.weixin.qq.com/s/zNnL0LXC2yYT-QZhDkOITA#官网说明项目地址:https://github.com/infiniflow/ragflow项目官网:https://ragflow.io在线Demo:https://demo.ragflow.io#本地部署说明##本人部署环境说明正常使......
  • Mocreak Office Installer(Office安装部署工具) v2.3.0.703 中文绿色版
    概述Mocreak是一款一键自动化下载、安装、部署正版Office的办公增强工具。该工具完全免费、无广告、绿色、无毒、简约、高效、安全。软件特点一键快速下载、安装、部署最新版MicrosoftOffice软件。提供简约、高效,且可自定义的图形界面,提升部署效率。支持将Office安装......
  • 构建大规模账号池与本地部署:GitHub爬虫项目详解
    账号池搭建必要性常见登录方式:基于Session+Cookie的登录基于JWT的登录:登录生成JWT字符串账号池存储cookie或者JWT字符串方便后续发请求爬取数据本地部署conda建立一个虚拟环境condacreate-nnew_envpython=3.x#替换x为你需要的Python版本激活新建环......
  • Archery Docker部署
    SQL审核平台是企业中不可或缺的,保障业务迭代过程中安全高效,并且留存方便内部审核。Archery平台满足以上要求,并且可以轻松接入lark,非常方便一、环境准备1.1、配置Docker代理(可选)部署使用Docker方式部署,现在拉取镜像很多源已经无法使用,有代理的情况下可以为Docker配置我使用了g......
  • linux服务器使用docker部署ES相关记录
    ES/可视化工具Kibana/ik分词器最好使用相同版本部署,实在找不到资源可基于ES版本,其余可向下兼容找最高版本docker创建网络因为我们还需要部署kibana容器,因此需要让es和kibana容器互联。这里先创建一个网络:dockernetworkcreatees-netES配置文件夹数据卷挂载:需先复制config......
  • 使用 Docker Compose 部署 RabbitMQ 的一些经验与踩坑记录
    前言RabbitMQ是一个功能强大的开源消息队列系统,它实现了高效的消息通信和异步处理。本文主要介绍其基于Docker-Compose的部署安装和一些使用的经验。特点成熟,稳定消息持久化灵活的消息路由高性能,高可用性,可扩展性高支持插件系统:RabbitMQ具有丰富的插件系统,可以通......