# k3s
**Repository Path**: rancher_cn/k3s
## Basic Information
- **Project Name**: k3s
- **Description**: k3s国内部署物料,一键部署脚本
- **Primary Language**: Unknown
- **License**: Apache-2.0
- **Default Branch**: v1.30.6+k3s1
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 1
- **Forks**: 0
- **Created**: 2024-11-24
- **Last Updated**: 2025-06-02
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# K3s一键部署脚本
版本号:v1.30.6+k3s1
物料下载: https://www.tonyandmoney.cn/assets/k3s/v1_30_6/
如可上github可下载最新物料: https://github.com/k3s-io/k3s/releases/tag/v1.30.6%2Bk3s1
## k3s部署
### 说明
k3S部署极快,几分钟即可部署完一个k3s集群
### 1、安装docker
先自行百度安装,暂时必须,k3s默认容器是contained,非docker,本脚本使用docker作为容器的运行时,比较熟悉点
### 下载物料
- 下载 k3s-airgap-images-xxx.tar.gz 到[materials](materials),文件名称跟config.yaml配置项k3s_images_name保持一致即可
- 下载 sha256sum-xxx.txt 到[materials](materials)下,文件名与config.yaml中k3s_images_sha256保持一致
- 下载对应CPU架构的k3s文件到[materials](materials) 下并重命名为k3s
### 配置文件修改
按照提示修改文件
- 配置文件: [config.yaml](config.yaml)
- 任务脚本: [jobs](jobs) ,(按需,可不修改)
### 安装私有镜像中心
如果使用外置的镜像中心,可跳过该步骤,该任务会创建一个单节点的镜像中心服务registry:2,并将k3s所需的镜像推送到该服务
```shell
## windows下安装
.\tools\deploy-tools.exe --jobfile .\jobs\install_registry.yaml
## linux
chmod +x tools/deploy-tools
tools/deploy-tools --jobfile ./jobs/install_registry.yaml
```
### 安装K3s
```shell
## windows下安装
.\tools\deploy-tools.exe --jobfile .\jobs\install_k3s.yaml
## linux
chmod +x tools/deploy-tools
tools/deploy-tools --jobfile ./jobs/install_k3s.yaml
```
安装脚本不区分master和agent,按照规划配置好config.yaml中的主机标签tags即可。
如果有新增agent,可在config.yaml中添加主机后,再次执行该脚本(请勿删除temp下的文件,否则会重复执行脚本)。
- 如果某个任务执行完成,但是需要再次执行,可删除 temp/records.yaml中对应的记录
## Rancher
**版本:2.10.0**
### 安装准备
下载物料到materials下,下载地址: https://www.tonyandmoney.cn/assets/k3s/v1_30_6/rancher.v2.10.0.tar.gz
### 安装脚本
```shell
## windows下
.\tools\deploy-tools.exe --jobfile .\jobs\install_rancher.yaml
## linux下
./tools/deploy-tool --jobfile ./jobs/install_rancher.yaml
```
## Longhorn云原生存储
**版本:1.7.2**
### 安装准备
下载物料到materials: https://www.tonyandmoney.cn/assets/k3s/v1_30_6/longhorn-1.7.2.tar.gz
确保软件仓库源可以使用,需要安装部分常用软件,以下脚本中以存在,请按照服务器系统调整命令,位于[install_longhorn.yaml](jobs%2Finstall_longhorn.yaml)
```shell
apt install nfs-common -y
# 加载内核模块: dm_crypt,在/etc/modules-load.d/modules.conf添加一行dm_crypt
modprobe dm_crypt
# 停掉多路径Multipathd或者配置白名单
# 以上脚本中有涉及,但是不会因安装失败退出,请注意日志,手动修正
systemctl stop multipathd.socket
systemctl stop multipathd
systemctl disable multipathd.socket
systemctl disable multipathd
```
### 安装脚本
```shell
## windows下
.\tools\deploy-tools.exe --jobfile .\jobs\install_longhorn.yaml
## linux下
./tools/deploy-tool --jobfile ./jobs/install_longhorn.yaml
```
## 安装 kubernetes-dashboard
```shell
# 安装
helm install kubernetes-dashboard k3s/kubernetes-dashboard --namespace kubernetes-dashboard --create-namespace . -f ./values.yaml
# 卸载
helm upgrade kubernetes-dashboard k3s/kubernetes-dashboard --namespace kubernetes-dashboard --create-namespace .
```
## 常用操作
### helm保存chart
以Longhorn为例
```shell
## 添加仓库
helm repo add longhorn https://charts.longhorn.io
## 保存指定版本到本地
helm fetch longhorn/longhorn --version 1.7.2
## 从本地安装
helm install longhorn ./longhorn-1.7.2.tgz --namespace longhorn-system --create-namespace --version 1.7.2
```
## 问题记录
- 部署前在master上打了污点,flannel网关模式使用host-gw模式,部署Longhorn时longhorn-manager在agent节点上起不来,报proxy 127.0.0.1:6443 错误之类的
```shell
## 解决版本,将agent上的6443端口重定向到master节点
## 比如agent节点的pod 网段为:10.24.1.0/24,master的pod网段为10.24.0.0/24
iptables -t nat -A PREROUTING -p tcp --dport 6443 -j DNAT --to-destination 10.24.0.1:6443
## 确保 iptables FORWARD 链允许转发的流量
iptables -A FORWARD -p tcp -d 10.24.0.1 --dport 6443 -j ACCEPT
## 应用伪装规则以允许正确路由响应
iptables -t nat -A POSTROUTING -p tcp -d 10.24.0.1 --dport 6443 -j MASQUERADE
iptables -t nat -A POSTROUTING -p tcp -d 10.24.0.1 --dport 6443 -j SNAT --to 10.24.1.1
## 以上设置貌似没什么用,回头在研究下
```