feat: readme
This commit is contained in:
@@ -1,4 +1,5 @@
|
|||||||
# nfs系统创建指南
|
# nfs系统创建指南
|
||||||
|
|
||||||
意在创建一个可共享、跨节点可用的存储系统,供k3s、kubernetes使用的文件系统
|
意在创建一个可共享、跨节点可用的存储系统,供k3s、kubernetes使用的文件系统
|
||||||
|
|
||||||
**安装nfs-kernel**
|
**安装nfs-kernel**
|
||||||
@@ -17,6 +18,7 @@ chmod -R 777 /data/nfs
|
|||||||
```
|
```
|
||||||
|
|
||||||
**编辑配置文件**
|
**编辑配置文件**
|
||||||
|
|
||||||
向/etc/exports文件中追加以下内容
|
向/etc/exports文件中追加以下内容
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|||||||
46
nginx-ingress常见问题.md
Normal file
46
nginx-ingress常见问题.md
Normal file
@@ -0,0 +1,46 @@
|
|||||||
|
# nginx-ingress常见问题
|
||||||
|
|
||||||
|
nginx-ingress相比较与traefik-ingress,对开发者而言貌似少了一些亲和力
|
||||||
|
|
||||||
|
很多东西都要自己配置
|
||||||
|
|
||||||
|
|
||||||
|
**413报错**
|
||||||
|
|
||||||
|
就是上传的文件大小超过限制的报错
|
||||||
|
|
||||||
|
今天在捣鼓自己的仓库的时候发现的,命名中转服务器设置了
|
||||||
|
```
|
||||||
|
client_max_body_size 0;
|
||||||
|
```
|
||||||
|
但是还是出现413的报错,那么问题就出在集群的nginx-ingress了
|
||||||
|
|
||||||
|
查看日志定位了问题
|
||||||
|
|
||||||
|
2025/10/16 08:08:59 [error] 4876#4876: *2094938 client intended to send too large body: 288100865 bytes, client: 10.0.0.1, server:....
|
||||||
|
|
||||||
|
于是去网上查找解决方案:
|
||||||
|
|
||||||
|
### 配置ingress
|
||||||
|
```
|
||||||
|
apiVersion: networking.k8s.io/v1
|
||||||
|
kind: Ingress
|
||||||
|
metadata:
|
||||||
|
name: gitea
|
||||||
|
annotations:
|
||||||
|
nginx.ingress.kubernetes.io/proxy-body-size: "500m"
|
||||||
|
```
|
||||||
|
|
||||||
|
给对应服务的ingress添加annotation: nginx.ingress.kubernetes.io/proxy-body-size: "500m"
|
||||||
|
|
||||||
|
个人认为这是比较好的方法,对上传文件大小做更细的划分
|
||||||
|
|
||||||
|
还有一种配置全局的:
|
||||||
|
|
||||||
|
### 配置configmap
|
||||||
|
```
|
||||||
|
data:
|
||||||
|
proxy-body-size: 500m
|
||||||
|
```
|
||||||
|
找到对应的configmap,根据[官方文档](https://kubernetes.github.io/ingress-nginx/user-guide/nginx-configuration/configmap/#proxy-body-size)中的表述,解决413报错需要配置proxy-body-size,覆盖原有默认配置,默认值只有1M
|
||||||
|
|
||||||
@@ -1,9 +1,12 @@
|
|||||||
# rke2集群搭建指南
|
# rke2集群搭建指南
|
||||||
|
|
||||||
rke2仅支持单宿主机单节点,否则会出现一堆问题
|
rke2仅支持单宿主机单节点,否则会出现一堆问题
|
||||||
|
|
||||||
|
|
||||||
**前期准备**
|
**前期准备**
|
||||||
|
|
||||||
根据官方文档,进行kubectl工具安装
|
根据官方文档,进行kubectl工具安装
|
||||||
|
|
||||||
依次执行:
|
依次执行:
|
||||||
```
|
```
|
||||||
curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"
|
curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"
|
||||||
@@ -14,6 +17,7 @@ sudo install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl //安装kube
|
|||||||
安装完成后,可以执行kubectl version --client 查看当前版本
|
安装完成后,可以执行kubectl version --client 查看当前版本
|
||||||
|
|
||||||
根据官方文档,进行rke2的安装
|
根据官方文档,进行rke2的安装
|
||||||
|
|
||||||
执行:
|
执行:
|
||||||
```
|
```
|
||||||
curl -sfL https://get.rke2.io | sh -
|
curl -sfL https://get.rke2.io | sh -
|
||||||
@@ -26,30 +30,42 @@ curl -sfL https://rancher-mirror.rancher.cn/rke2/install.sh | INSTALL_RKE2_MIRRO
|
|||||||
#### 关键
|
#### 关键
|
||||||
|
|
||||||
**如果你需要使用非localhost访问集群kubernetes api,需要添加--tls-san {machine.ip}**
|
**如果你需要使用非localhost访问集群kubernetes api,需要添加--tls-san {machine.ip}**
|
||||||
|
|
||||||
我是这样操作的:
|
我是这样操作的:
|
||||||
|
|
||||||
首先运行
|
首先运行
|
||||||
```
|
```
|
||||||
systemctl enable rke2-server
|
systemctl enable rke2-server
|
||||||
```
|
```
|
||||||
不出意外,应该会输出service文件位置,例如我的:
|
不出意外,应该会输出service文件位置,例如我的:
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
使用nano打开,找到execstart命令组的rke2 server
|
使用nano打开,找到execstart命令组的rke2 server
|
||||||
|
|
||||||
追加内容 --tls-san {machine.ip}
|
追加内容 --tls-san {machine.ip}
|
||||||
|
|
||||||
例如这样:
|
例如这样:
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
保存退出
|
保存退出
|
||||||
|
|
||||||
**关于镜像拉取**
|
**关于镜像拉取**
|
||||||
个人认为躲不掉,配置以下环境变量的事情
|
个人认为躲不掉,配置以下环境变量的事情
|
||||||
|
|
||||||
根据.service文件可以得知,systemd启动rke2-server时会读取以下目录的环境变量:
|
根据.service文件可以得知,systemd启动rke2-server时会读取以下目录的环境变量:
|
||||||
|
|
||||||
EnvironmentFile=-/etc/default/%N
|
EnvironmentFile=-/etc/default/%N
|
||||||
|
|
||||||
EnvironmentFile=-/etc/sysconfig/%N
|
EnvironmentFile=-/etc/sysconfig/%N
|
||||||
|
|
||||||
EnvironmentFile=-/usr/local/lib/systemd/system/%N.env
|
EnvironmentFile=-/usr/local/lib/systemd/system/%N.env
|
||||||
|
|
||||||
%N为服务名
|
%N为服务名
|
||||||
|
|
||||||
于是可以直接创建环境变量文件,这里我选择了nano /etc/sysconfig/rke2-server(文件夹可能提示不存在,创建一个即可)
|
于是可以直接创建环境变量文件,这里我选择了nano /etc/sysconfig/rke2-server(文件夹可能提示不存在,创建一个即可)
|
||||||
|
|
||||||
添加如下内容:
|
添加如下内容:
|
||||||
```
|
```
|
||||||
HTTP_PROXY=http://127.0.0.1:7897
|
HTTP_PROXY=http://127.0.0.1:7897
|
||||||
@@ -71,7 +87,9 @@ systemctl start rke2-server
|
|||||||
```
|
```
|
||||||
|
|
||||||
等待一段时间,成功后在/etc/rancher/rke2目录下有rke2.yaml,这个文件相当于集群最高管理员的密钥
|
等待一段时间,成功后在/etc/rancher/rke2目录下有rke2.yaml,这个文件相当于集群最高管理员的密钥
|
||||||
|
|
||||||
可以直接使用rke2自带的kubectl,也可以用全局的;
|
可以直接使用rke2自带的kubectl,也可以用全局的;
|
||||||
|
|
||||||
全局的话有两个办法:一个是全局变量的形式,另一个是直接创建或追加集群、用户内容到~/.kube/config
|
全局的话有两个办法:一个是全局变量的形式,另一个是直接创建或追加集群、用户内容到~/.kube/config
|
||||||
|
|
||||||
至此,rke2集群便可以正常运行了
|
至此,rke2集群便可以正常运行了
|
||||||
@@ -2,9 +2,11 @@
|
|||||||
|
|
||||||
**背景**
|
**背景**
|
||||||
博主使用的架构是
|
博主使用的架构是
|
||||||
|
|
||||||
用户-->中转服务器nginx反代-->wireguard-->rke2集群网关nginx
|
用户-->中转服务器nginx反代-->wireguard-->rke2集群网关nginx
|
||||||
|
|
||||||
因为有中转,tls握手需要在nginx实现一次;
|
因为有中转,tls握手需要在nginx实现一次;
|
||||||
|
|
||||||
因为有wireguard(自己会加密),所以tls可以终止与中转服务器nginx;
|
因为有wireguard(自己会加密),所以tls可以终止与中转服务器nginx;
|
||||||
|
|
||||||
通过搜索资料得知,这样也可以实现自动化,利用scp和ssh,创建一个pod监听tls证书生成
|
通过搜索资料得知,这样也可以实现自动化,利用scp和ssh,创建一个pod监听tls证书生成
|
||||||
@@ -12,6 +14,7 @@
|
|||||||
然后分成nginx需要的pem和key,连同server配置块一同上传到中转服务器
|
然后分成nginx需要的pem和key,连同server配置块一同上传到中转服务器
|
||||||
|
|
||||||
scp需要登录用户对文件夹有写入权限,这一点有时候比较难注意到
|
scp需要登录用户对文件夹有写入权限,这一点有时候比较难注意到
|
||||||
|
|
||||||
因此推荐使用sudo tee的方式,这样可以在服务器配置该用户sudo某些指令不需要使用密码,ssh连接使用bash,更加方便
|
因此推荐使用sudo tee的方式,这样可以在服务器配置该用户sudo某些指令不需要使用密码,ssh连接使用bash,更加方便
|
||||||
|
|
||||||
|
|
||||||
@@ -19,6 +22,7 @@ scp需要登录用户对文件夹有写入权限,这一点有时候比较难
|
|||||||
使用预先创建的ssh密钥或者让pod自己生成ssh密钥
|
使用预先创建的ssh密钥或者让pod自己生成ssh密钥
|
||||||
|
|
||||||
自己创建的密钥,打包进入容器后记得设置权限(私钥600,公钥644),否则ssh-server不会使用
|
自己创建的密钥,打包进入容器后记得设置权限(私钥600,公钥644),否则ssh-server不会使用
|
||||||
|
|
||||||
上传例如这样:
|
上传例如这样:
|
||||||
```
|
```
|
||||||
ssh_command = [
|
ssh_command = [
|
||||||
|
|||||||
Reference in New Issue
Block a user