使用kubeadm部署的集群证书过期后处理
之前使用kubeadm部署的集群,突然有一天执行kubectl get pod 提示:
1Unable to connect to the server: x509: certificate has expired or is not yet valid: current time 2024-03-04T14:26:31+08:00 is after 2024-02-27T08:36:50Z
意思是证书有效期到 2024-02-27T08:36:50Z, 已经超过了证书有效期了。
查看证书有效期123456789101112131415161718192021[root@ALSHBSITL00061 kubernetes]# kubeadm certs check-expiration[check-expiration] Reading configuration from the cluster...[check-expiration] FYI: You can look at this config file with 'kubectl -n kube-system g ...
Windows修改用户名
之前windows10在安装过程中如果不使用微软账号登录的话,创建一个本地账户,那么创建好的用户名就是个人文件夹的名字。如果设置了中文,那么个人文件夹名字就是中文,后续会有软件兼容性问题,可以通过修改注册表来修改文件夹名字。
修改用户名首先要区分一下什么是用户名
上面这些都不是用户名,而是显示出来的用户名,也就是用户名全名。可以在 lusrmgr.msc 或 control userpasswords2 或 netplwiz 查看:
通过上图发现,我的用户名应该是 ooo
修改用户名可以直接在 lusrmgr.msc 进行修改,包括显示的全名,如果你只是想修改显示出来的名字,到这里就可以了。
修改个人文件夹路径danger 修改个人文件夹路径需要慎重!有部分已安装软件引用的还是旧的路径,这样会造成各种报错,可能需要卸载重新安装才能正常使用。
当前我的文件夹名字是 测试, 如图:
修改系统定义的路径打开注册表编辑器,定位到 计算机\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList ...
通过docker容器查看run命令
公司有一台服务器上运行着一个服务,通过 docker start 启动,已经没有文档记录如何搭建的了。现在需要迁移,记录一下获取docker run命令的方法
通过模版处理 docker inspect 的数据来获取使用 runlike 来获取模版文件来自https://gist.githubusercontent.com/efrecon/8ce9c75d518b6eb863f667442d7bc679/raw/run.tpl
假设容器名是mysql, 命令后面可以跟容器名或者容器id。命令如下:
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811 ...
Grafana 监控面板配置
安装 grafanaoss:开源版本
enterprise: 商业版本
https://grafana.com/grafana/download?pg=get&plcmt=selfmanaged-box1-cta1&edition=oss
添加数据源以 grafana 10.3.3 为例, 在 connections –> Data sources 中新增:
面板配置可以手动配置,也可以在 grafana 官网下载别人配置好的模板:https://grafana.com/grafana/dashboards/, 复制 ID 或者下载 json 文件到本地
然后在面板上面,点击 + , 选择 import dashboard 使用 json 文件导入或者直接输入面板 id 进行导入。
导入后便能看到基础的图形。
做变量筛选比如我们的监控会区分环境, 比如开发环境 dev,生产环境 prod, 现在需要在 grafana 的面板上做一个筛选框,这里是原始的数据:比如我们需要取 env 的值
在面板的设置–变量中, 添加一个变量, 变量名可以自定义, 在此面板的查询 ...
Django RestFramework 使用 JWT 认证
JWT 的优点优点:无状态,服务端不保存 token缺点:生成的 token 在有效期内一直有效,无论用户注销、修改密码。(可以通过存 redis,通过代码进行删除 redis 里的 token 解决。)
开始使用配置setting.py 里面设置默认值
12345678910REST_FRAMEWORK = {'DEFAULT_AUTHENTICATION_CLASSES': ( 'rest_framework_jwt.authentication.JSONWebTokenAuthentication', ),}JWT_AUTH = { 'JWT_EXPIRATION_DELTA': datetime.timedelta(days=7), # Token 过期时间为一周 'JWT_AUTH_HEADER_PREFIX': 'JWT', # Token的头为:JWT 'JWT_ALLOW_REFRESH ...
fail2ban配合cloudflare cdn使用
Cloudflare 是一家全球最著名的 CDN 加速服务商,提供了免费和付费的网站加速和保护服务。即使是免费版,也提供了比较全面和强大的功能,非常不错。
通过使用 Cloudflare CDN 服务提供的全球节点,一方面可以提高网站响应速度和性能,节省源站资源;另一方面也可以保护站点抵御攻击,保证网站长期稳定在线。
fail2ban是一个开源工具, 它通过分析日志, 将不满足要求的访问(比如cc攻击、对网站进行扫描等)的ip获取到, 通过自带防火墙(iptables等)进行封禁.
问题一: 如何让fail2ban获取真实IP
想要通过fail2ban来封禁ip, 那么先要获取到用户(或黑客)的ip, 如果不进行处理, 那么大概率你获取到的是cloudflare请求你用的ip, 封禁这个ip是没有意义的…
我的服务架构是 cloudflare –> nginx –> 后端服务
在nginx上面配置
123456789101112131415server { ... # 这里设置一下Real_IP变量, 用于存储真实IP set $Real_IP $http ...
制作macOS启动盘和dmg镜像
下载macOS安装文件参考苹果官方文档: https://support.apple.com/zh-cn/102662, 使用 App Store 下载即可。下载完成后会显示在应用程序里面
制作dmg磁盘镜像直接写入到u盘或移动硬盘创建一个空白的dmg镜像
打开「磁盘工具」,在顶部菜单选择「文件」>「新建映像」>「空白映像」,然后如下图:
「大小」的设置,根据安装镜像大小, 再增加2GB, 我这里粗略设置为 15 GB;「格式」设置为「Mac OS扩展(日志式)」;「分区」为设置为「单个分区 - GUID分区图」;「映像格式」为「读/写」;
挂载这个磁盘镜像, 直接双击即可自动挂载。
数据写入到dmg磁盘
参考: https://support.apple.com/zh-cn/101578
12# 根据你的系统版本和磁盘挂载位置自行修改sudo /Applications/Install\ macOS\ Ventura.app/Contents/Resources/createinstallmedia --volume /Volumes/MyVolume
写入 ...
macOS常用操作记录
在终端中使用code命令启动vscode先安装code:打开VSCode -> 查看 -> 命令面板 -> 输入shell command –> 点击 Shell Command: Install 'code' command in PATH
然后在终端中可以使用 code 命令打开vscode了, 或者 code . 打开当前目录
常用命令
用途
code
打开vscode
code .
vscode打开当前目录
code /Users/iuxt/code
打开指定的目录
防止自动睡眠在显示器 高级里面 打开 使用电源适配器供电且显示器关闭时, 防止自动进入睡眠选项。
提示 程序损坏,需要移动到废纸篓或者提示应用未验证等, 可以到访达里, 找到应用程序, 按下control键点击, 选择打开
或者去除苹果的quarantine属性
1sudo xattr -r -d com.apple.quarantine /Applications/WebStrom.app
常见的系统文件位置
...
shell脚本获取自身的信息
写shell脚本, 有时候需要获取一些信息, 比如这个脚本的名字,脚本所在的目录,脚本的绝对路径, 这个脚本的pid, 参数等。
变量
说明
$0
脚本自身的路径(执行的时候调用路径)
$1
第一个参数
$?
上一个脚本的返回值,0为正常
$*
所有的参数
$#
参数的个数
$$
当前脚本的pid
$_
上一条命令的参数
获取脚本的文件名$0 是脚本的路径,这个路径有可能是相对路径,那么可以使用dirname和basename配合来获取脚本绝对路径
12345# 脚本所在的目录的绝对路径echo "$(cd $(dirname $0); pwd)"# 脚本的文件名echo $(basename $0)
获取脚本的绝对路径12345# 获取脚本的绝对路径DIR=$(cd $(dirname $0); pwd)FILE=$(basename $0)echo "${DIR}/${FILE}"
进入临时目录12# $_ 指的是上一个命令的参数,这个里面指的就是tempm ...
Linux大文件分割与合并
服务器上有个文件需要下载到本地, 但是文件较大, 我们都是通过jumpserver连接的, 通过jumpserver下载难免会遇到网络波动等导致下载失败, 我们可以通过分割大文件成一个个小文件, 然后下载后再在本地合并. 用到的命令是split
split分割大文件1split -b 1024M -d -a 3 2023.tar.gz tmp.
参数说明:
参数
说明
-b
指定每个文件的大小, 支持K M G
-d
指定后缀编码为数字,默认编码为字母
-a
指定后缀长度,3表示3位数, 比如上面的命令, 生成的文件就是 tmp.000 …
./tmp.
这个是生成的文件名前面的部分
如果报错 split: output file suffixes exhausted 说明后缀不够用了, 比如参数 -a 1 支持的后缀为 0 - 9 , 如果文件太大, 超过了9, 就会报这个错.
使用cat合并大文件1cat tmp.* > 2023.tar.gz
合并完成再验证一下MD5值, 和服务器做下对比即可.
1md5sum 2023.tar ...