diff --git a/nfs系统创建指南.md b/nfs系统创建指南.md index af38478..99fd4d2 100644 --- a/nfs系统创建指南.md +++ b/nfs系统创建指南.md @@ -1,4 +1,5 @@ # nfs系统创建指南 + 意在创建一个可共享、跨节点可用的存储系统,供k3s、kubernetes使用的文件系统 **安装nfs-kernel** @@ -17,6 +18,7 @@ chmod -R 777 /data/nfs ``` **编辑配置文件** + 向/etc/exports文件中追加以下内容 ``` diff --git a/nginx-ingress常见问题.md b/nginx-ingress常见问题.md new file mode 100644 index 0000000..11a397a --- /dev/null +++ b/nginx-ingress常见问题.md @@ -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 + diff --git a/readme.md b/readme.md new file mode 100644 index 0000000..ffb99f5 --- /dev/null +++ b/readme.md @@ -0,0 +1,5 @@ +# DOC + +### 这里存放一些指南以及debug的经验 + +**不定期更新** \ No newline at end of file diff --git a/rke2集群搭建指南.md b/rke2集群搭建指南.md index 9583399..e5ab225 100644 --- a/rke2集群搭建指南.md +++ b/rke2集群搭建指南.md @@ -1,9 +1,12 @@ # rke2集群搭建指南 + rke2仅支持单宿主机单节点,否则会出现一堆问题 **前期准备** + 根据官方文档,进行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 查看当前版本 根据官方文档,进行rke2的安装 + 执行: ``` 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}** + 我是这样操作的: + 首先运行 ``` systemctl enable rke2-server ``` 不出意外,应该会输出service文件位置,例如我的: + ![alt text](./images/image1.png) 使用nano打开,找到execstart命令组的rke2 server + 追加内容 --tls-san {machine.ip} + 例如这样: + ![alt text](./images/image2.png) + 保存退出 **关于镜像拉取** 个人认为躲不掉,配置以下环境变量的事情 + 根据.service文件可以得知,systemd启动rke2-server时会读取以下目录的环境变量: + EnvironmentFile=-/etc/default/%N + EnvironmentFile=-/etc/sysconfig/%N + EnvironmentFile=-/usr/local/lib/systemd/system/%N.env %N为服务名 于是可以直接创建环境变量文件,这里我选择了nano /etc/sysconfig/rke2-server(文件夹可能提示不存在,创建一个即可) + 添加如下内容: ``` HTTP_PROXY=http://127.0.0.1:7897 @@ -71,7 +87,9 @@ systemctl start rke2-server ``` 等待一段时间,成功后在/etc/rancher/rke2目录下有rke2.yaml,这个文件相当于集群最高管理员的密钥 + 可以直接使用rke2自带的kubectl,也可以用全局的; + 全局的话有两个办法:一个是全局变量的形式,另一个是直接创建或追加集群、用户内容到~/.kube/config 至此,rke2集群便可以正常运行了 \ No newline at end of file diff --git a/利用scp和ssh实现中转服务器证书配置自动同步.md b/利用scp和ssh实现中转服务器证书配置自动同步.md index d1624a2..3a56b89 100644 --- a/利用scp和ssh实现中转服务器证书配置自动同步.md +++ b/利用scp和ssh实现中转服务器证书配置自动同步.md @@ -2,9 +2,11 @@ **背景** 博主使用的架构是 + 用户-->中转服务器nginx反代-->wireguard-->rke2集群网关nginx 因为有中转,tls握手需要在nginx实现一次; + 因为有wireguard(自己会加密),所以tls可以终止与中转服务器nginx; 通过搜索资料得知,这样也可以实现自动化,利用scp和ssh,创建一个pod监听tls证书生成 @@ -12,6 +14,7 @@ 然后分成nginx需要的pem和key,连同server配置块一同上传到中转服务器 scp需要登录用户对文件夹有写入权限,这一点有时候比较难注意到 + 因此推荐使用sudo tee的方式,这样可以在服务器配置该用户sudo某些指令不需要使用密码,ssh连接使用bash,更加方便 @@ -19,6 +22,7 @@ scp需要登录用户对文件夹有写入权限,这一点有时候比较难 使用预先创建的ssh密钥或者让pod自己生成ssh密钥 自己创建的密钥,打包进入容器后记得设置权限(私钥600,公钥644),否则ssh-server不会使用 + 上传例如这样: ``` ssh_command = [