使用 Base64 解码 JWT Playload 数据不完整
· ☕ 2 分钟
在对 JWT 进行 Base64 解码时,发现 JSON 数据不完整。本文主要介绍相关知识点并解决这个问题。 1. JWT 简介 JWT 通过在 Header 中设置 Authorization: Bearer <token> 进行认证的传递。 JWT Token 是一个 . 连接的 Base64 编码字符串,类似这样 Header.Payload.Signature ,有三部分组成: Header ,定义 Token 类型和加密算法 1 2 3 4 { "alg": "HS256", "typ": "JWT" } Payload ,负载信息,通

Kubernetes 批量操作命令
· ☕ 1 分钟
1. 批量删除 Evicted 状态的 Pod 1 kubectl get pods --all-namespaces -o wide | grep Evicted | awk '{print $1,$2}' | xargs -L1 kubectl delete pod -n 2. 批量删除指定空间指定状态的 Pod 根据 field-selectors ,可以删除指定空间指定状态的 Pod 。 1 kubectl get pods --field-selector=status.phase!=Running -n default | cut -d' ' -f 1 | xargs kubectl delete pod -n default

为什么要使用远端构建
· ☕ 2 分钟
1. 提高自动化水平 远端构建通常需要借助一定的 CI 工具,比如 Github Actions 、Travis CI 等。如果是内网环境,可以借助 GitLab CI ,添加一个 CI 节点进行自动化构建,可以参考 我的 GitLab 文档 。 自动化的好处不言而喻,能规范流程、节约大量时间,具有明显的收益。 2. 有利于其他人参与

Kubernetes 调度器之亲和性
· ☕ 3 分钟
1. Kubernetes 中的调度器 kube-scheduler 是 Kubernetes 中决定 Pending 状态的 Pod 运行在哪个 Node 的组件,被称之为调度器。 Kubernetes 中内置了大量的调度策略,也提供了一些高级调度策略(nodeAffinity、podAffinity 等),以供用户使用,基本能够满足绝大部分的业务需求。 前面的文档 Kubernetes 之 L

一个完整的 Git 提交流程
· ☕ 1 分钟
这也是一个给开源项目提交 PR 的完整 Git 流程。 1. 本地配置 提交用户信息 1 2 git config --global user.name "username" git config --global user.email "[email protected]" GPG 配置 参考:GPG 验证提交 2. 克隆代码 首先 fork 原仓库 克隆 fork 的仓库代码 1 git clone https://github.com/yourname/django-xss-cleaner.git 添加原仓库 1 git remote add upstream https://github.com/shaowenchen/django-xss-cleaner.git 查看本地配置的远程源 1 2 3 4 git remote -v origin xxx upstream xxx 3. 日常开发 拉取最新