RKE2部署k8s集群实战

2024-04-05 06:04

本文主要是介绍RKE2部署k8s集群实战,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

RKE2介绍

k8s集群搭建

搭建k8s集群

下载离线包

部署rke2-server

部署rke2-agent

部署helm

部署rancher


RKE2介绍

RKE2,也称为 RKE Government,是 Rancher 的下一代 Kubernetes 发行版。

官网地址:Introduction | RKE2

k8s集群搭建

搭建k8s集群

k8s版本为v1.28.3+rke2r2,runtime为containerd,使用rke2进行部署。

下载离线包

官网下载地址:https://github.com/rancher/rke2/releases/tag/v1.28.3%2Brke2r2

离线包分为x86和arm不同的架构,下载时根据现场环境进行下载。

部署rke2-server

将离线包下载到master节点。

# 本例中,master主机为x86架构,ip为192.168.100.101

# 将tar文件下载到/data

cd /data

tar -zxvf rke2-offline-v1.28.3.tar.gz

[root@master1 data]# cd rke2-offline/
[root@master1 rke2-offline]# ls
install.sh  rke2-images.linux-amd64.tar.zst  rke2.linux-amd64.tar.gz  sha256sum-amd64.txt
[root@master1 rke2-offline]# 

# 执行install脚本

INSTALL_RKE2_ARTIFACT_PATH=/data/rke2-offline sh install.sh

# 编写config.yaml文件(默认配置文件为/etc/rancher/rke2/config.yaml)

mkdir -p /etc/rancher/rke2

vim /etc/rancher/rke2/config.yaml

token: k8s-rke2-secret

node-name: k8s-rke2-server01

node-label:

  - "role=master"

# 启动服务rke2-server,默认会安装在/var/lib/kubelet和/var/lib/rancher

systemctl enable rke2-server

systemctl start rke2-server

# 如果现场的根目录比较小,可以改为/data/lib,方法如下

mkdir -p /data/lib /var/lib/kubelet

cd /data/lib/

mv /var/lib/kubelet .

mv /var/lib/rancher .

cd /var/lib/

ln -s /data/lib/rancher rancher

ln -s /data/lib/kubelet kubelet

# 查看日志

journalctl -u rke2-server.service -f

# 复制kubeconfig文件,复制常用工具

mkdir ~/.kube

ln -s /etc/rancher/rke2/rke2.yaml ~/.kube/config

chmod 600 ~/.kube/config

ln -s /var/lib/rancher/rke2/agent/etc/crictl.yaml /etc/crictl.yaml

ln -s /var/lib/rancher/rke2/bin/kubectl /usr/bin/kubectl

ln -s /var/lib/rancher/rke2/bin/crictl /usr/bin/crictl

# kubectl自动补全

echo 'source <(kubectl completion bash)' >> ~/.bashrc

source ~/.bashrc

# 常用的指令

kubectl get node

crictl ps

crictl images

至此,rke2-server部署完成。

部署rke2-agent

将离线包下载到worker节点;

如果有多个worker节点,每次节点均需要下载离线包。

# 本例中,worker主机为x86架构,

# 将tar文件下载到/data

cd /data

tar -zxvf rke2-offline-v1.28.3.tar.gz

[root@work1 data]# cd rke2-offline/
[root@work1 rke2-offline]# ls
install.sh  rke2-images.linux-amd64.tar.zst  rke2.linux-amd64.tar.gz  sha256sum-amd64.txt

# 执行install脚本

INSTALL_RKE2_TYPE="agent" INSTALL_RKE2_ARTIFACT_PATH=/data/rke2-offline sh install.sh

# 编写config.yaml文件(默认配置文件为/etc/rancher/rke2/config.yaml)

mkdir -p /etc/rancher/rke2

vim /etc/rancher/rke2/config.yaml

## server为master主机ip,端口为9345

server: https://192.168.100.101:9345

token: k8s-rke2-secret

node-name: k8s-rke2-agent01

node-label:

   - "role=agent"

# 启动服务rke2-agent,默认会安装在/var/lib/kubelet和/var/lib/rancher.

systemctl enable rke2-agent

systemctl start rke2-agent

# 如果现场的根目录比较小,可以改为/data/lib,方法如下

mkdir -p /data/lib /var/lib/kubelet

cd /data/lib/

mv /var/lib/kubelet .

mv /var/lib/rancher .

cd /var/lib/

ln -s /data/lib/rancher rancher

ln -s /data/lib/kubelet kubelet

# 查看日志

journalctl -u rke2-agent.service -f

# 在master节点查看

[root@master1 data]# kubectl get nodes
NAME                STATUS   ROLES                       AGE    VERSION
k8s-rke2-agent01    Ready    <none>                      3h8m   v1.28.3+rke2r2
k8s-rke2-server01   Ready    control-plane,etcd,master   4h2m   v1.27.12+rke2r1
[root@master1 data]# 
 

至此,rke2-agent部署完成。

部署helm

官网下载地址:Releases · helm/helm · GitHub

[root@master1 data]# tar -xvf helm-v3.12.3-linux-amd64.tar.gz
linux-amd64/
linux-amd64/LICENSE
linux-amd64/README.md
linux-amd64/helm
[root@master1 data]# mv linux-amd64/helm /usr/local/bin/
 

部署rancher

# 添加Helm repo

## Latest:建议用于试用最新功能

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

## Stable:建议用于生产环境

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

# 本次下载的为最新版2.8.1

helm search repo rancher -l

helm fetch rancher-latest/rancher --version=2.8.1

# 为Rancher创建命名空间

kubectl create namespace cattle-system

# 安装cert-manager

# 如果你手动安装了CRD,而不是在 Helm 安装命令中添加了 `--set installCRDs=true` 选项,你应该在升级 Helm Chart 之前升级 CRD 资源。
kubectl apply -f https://github.com/cert-manager/cert-manager/releases/download/v1.13.2/cert-manager.crds.yaml

# 添加 Jetstack Helm 仓库
helm repo add jetstack https://charts.jetstack.io

# 更新本地 Helm Chart 仓库缓存
helm repo update

# 安装 cert-manager Helm Chart
helm install cert-manager jetstack/cert-manager \
  --namespace cert-manager \
  --create-namespace \
  --version v1.13.2

# 安装rancher

# helm  install   自定义名称   chart名称   名称空间
helm install rancher rancher \
--namespace cattle-system \
--set hostname=rancher.test.com \
--set replicas=1 \
--set bootstrapPassword=admin


#等待 Rancher 运行,查看状态
NAME: rancher
LAST DEPLOYED: Thu Apr  4 13:55:25 2024
NAMESPACE: cattle-system
STATUS: deployed
REVISION: 1
TEST SUITE: None
NOTES:
Rancher Server has been installed.

## 浏览器打开

https://rancher.test.com

需配置本地hosts文件

至此,rancher部署完成。

这篇关于RKE2部署k8s集群实战的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/877797

相关文章

Spring Security基于数据库的ABAC属性权限模型实战开发教程

《SpringSecurity基于数据库的ABAC属性权限模型实战开发教程》:本文主要介绍SpringSecurity基于数据库的ABAC属性权限模型实战开发教程,本文给大家介绍的非常详细,对大... 目录1. 前言2. 权限决策依据RBACABAC综合对比3. 数据库表结构说明4. 实战开始5. MyBA

Redis分片集群的实现

《Redis分片集群的实现》Redis分片集群是一种将Redis数据库分散到多个节点上的方式,以提供更高的性能和可伸缩性,本文主要介绍了Redis分片集群的实现,具有一定的参考价值,感兴趣的可以了解一... 目录1. Redis Cluster的核心概念哈希槽(Hash Slots)主从复制与故障转移2.

Spring Boot + MyBatis Plus 高效开发实战从入门到进阶优化(推荐)

《SpringBoot+MyBatisPlus高效开发实战从入门到进阶优化(推荐)》本文将详细介绍SpringBoot+MyBatisPlus的完整开发流程,并深入剖析分页查询、批量操作、动... 目录Spring Boot + MyBATis Plus 高效开发实战:从入门到进阶优化1. MyBatis

MyBatis 动态 SQL 优化之标签的实战与技巧(常见用法)

《MyBatis动态SQL优化之标签的实战与技巧(常见用法)》本文通过详细的示例和实际应用场景,介绍了如何有效利用这些标签来优化MyBatis配置,提升开发效率,确保SQL的高效执行和安全性,感... 目录动态SQL详解一、动态SQL的核心概念1.1 什么是动态SQL?1.2 动态SQL的优点1.3 动态S

Pandas使用SQLite3实战

《Pandas使用SQLite3实战》本文主要介绍了Pandas使用SQLite3实战,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学... 目录1 环境准备2 从 SQLite3VlfrWQzgt 读取数据到 DataFrame基础用法:读

tomcat多实例部署的项目实践

《tomcat多实例部署的项目实践》Tomcat多实例是指在一台设备上运行多个Tomcat服务,这些Tomcat相互独立,本文主要介绍了tomcat多实例部署的项目实践,具有一定的参考价值,感兴趣的可... 目录1.创建项目目录,测试文China编程件2js.创建实例的安装目录3.准备实例的配置文件4.编辑实例的

SpringBoot配置Ollama实现本地部署DeepSeek

《SpringBoot配置Ollama实现本地部署DeepSeek》本文主要介绍了在本地环境中使用Ollama配置DeepSeek模型,并在IntelliJIDEA中创建一个Sprin... 目录前言详细步骤一、本地配置DeepSeek二、SpringBoot项目调用本地DeepSeek前言随着人工智能技

通过Docker Compose部署MySQL的详细教程

《通过DockerCompose部署MySQL的详细教程》DockerCompose作为Docker官方的容器编排工具,为MySQL数据库部署带来了显著优势,下面小编就来为大家详细介绍一... 目录一、docker Compose 部署 mysql 的优势二、环境准备与基础配置2.1 项目目录结构2.2 基

CentOS 7部署主域名服务器 DNS的方法

《CentOS7部署主域名服务器DNS的方法》文章详细介绍了在CentOS7上部署主域名服务器DNS的步骤,包括安装BIND服务、配置DNS服务、添加域名区域、创建区域文件、配置反向解析、检查配置... 目录1. 安装 BIND 服务和工具2.  配置 BIND 服务3 . 添加你的域名区域配置4.创建区域

Python实战之屏幕录制功能的实现

《Python实战之屏幕录制功能的实现》屏幕录制,即屏幕捕获,是指将计算机屏幕上的活动记录下来,生成视频文件,本文主要为大家介绍了如何使用Python实现这一功能,希望对大家有所帮助... 目录屏幕录制原理图像捕获音频捕获编码压缩输出保存完整的屏幕录制工具高级功能实时预览增加水印多平台支持屏幕录制原理屏幕