chore: 基于应用商店的部署文档
diff --git "a/deploy-manifests/charts/1.2.0000.\350\256\244\350\257\201\346\216\210\346\235\203\346\234\215\345\212\241\345\256\211\350\243\205\351\203\250\347\275\262\346\211\213\345\206\214\357\274\210\345\237\272\344\272\216\345\272\224\347\224\250\345\225\206\345\272\227\357\274\211.md" "b/deploy-manifests/charts/1.2.0000.\350\256\244\350\257\201\346\216\210\346\235\203\346\234\215\345\212\241\345\256\211\350\243\205\351\203\250\347\275\262\346\211\213\345\206\214\357\274\210\345\237\272\344\272\216\345\272\224\347\224\250\345\225\206\345\272\227\357\274\211.md"
index 3c4def5..5331b46 100644
--- "a/deploy-manifests/charts/1.2.0000.\350\256\244\350\257\201\346\216\210\346\235\203\346\234\215\345\212\241\345\256\211\350\243\205\351\203\250\347\275\262\346\211\213\345\206\214\357\274\210\345\237\272\344\272\216\345\272\224\347\224\250\345\225\206\345\272\227\357\274\211.md"
+++ "b/deploy-manifests/charts/1.2.0000.\350\256\244\350\257\201\346\216\210\346\235\203\346\234\215\345\212\241\345\256\211\350\243\205\351\203\250\347\275\262\346\211\213\345\206\214\357\274\210\345\237\272\344\272\216\345\272\224\347\224\250\345\225\206\345\272\227\357\274\211.md"
@@ -8,7 +8,7 @@
版本 | 作者 | 日期 | 备注
- | - | - | -
-v1 | 刘洪青 | 2020-06-10 | 初稿
+v1 | 刘洪青 | 2021-05-15 | 初稿
[TOC]
@@ -264,7 +264,7 @@
v4认证迁移数据 | tmp_data
命令:
- **请修改命令中的 `your_password` 为实际的数据库帐号的密码**
+ **请修改命令中的 `your_password` 为实际的数据库用户的密码**
```
create user 'agent_service'@'%' identified with mysql_native_password by 'your_password';
@@ -375,34 +375,295 @@
#### minio
-模式: standalone
+命名空间: authx-minio
-Access Key: 1y8N@8R@a_2u
-Secret Key: 8pxlIe9#lN7Q
+* MINIO配置
+ 模式: standalone
-域名: authx-minio.paas.xxx.edu.cn
+ Access Key: `1y8N@8R@a_2u`
+ Secret Key: `8pxlIe9#lN7Q`
+
+ 域名: `authx-minio.paas.xxx.edu.cn` ,请修改为实际的学校域名
+
+ Default storageClass: <请选择存储类>
#### agent-service
+命名空间: agent-service
+* 外部MYSQL-连接配置
+ 外部MySQL host: <请填写数据库服务的IP地址>
+ 外部MySQL port: <请填写数据库服务的端口>
+
+* AGENT SERVICE - MYSQL数据库配置
+ 用户名: `agent_service` ,固定值
+ 密码: <请填写创建的数据库用户的密码>
+ 数据库名: `agent_service` ,固定值
+
+* 文件服务设置
+ Minio Url: `http://minio.authx-minio.svc.cluster.local:9000` ,若 minio 的命名空间有调整,请修改
+ Minio Access Key: `1y8N@8R@a_2u`
+ Minio Secret Key: `8pxlIe9#lN7Q`
+
+* 邮箱服务配置
+ 邮件发送模式: smtp
+ SMTP Host:
+ SMTP Port:
+ SMTP Secure Mode:
+ SMTP 用户名:
+ SMTP 密码:
+ SMTP 发件人名称:
+
+* 短信服务配置
+ 短信发送模式: aliyun 对接阿里云的短信服务
+ 阿里云短信接口地域: cn-hangzhou
+ 阿里云短信接口Access Key:
+ 阿里云短信接口Access Secret:
#### authx-service
+命名空间: authx-service
+
+* MYSQL服务 - 服务地址
+ MySQL服务 host: <请填写数据库服务的IP地址>
+ MySQL服务 port: <请填写数据库服务的端口>
+
+* REDIS配置 - 安全配置
+ Redis密码: `OEt1d29zbE9pdXc3SA==`
+
+ Default Storage Class: <请选择存储类>
+
+* RABBITMQ配置 - 安全配置
+ 用户名: guest
+ 密码: guest
+
+* 简易监控设置 - 用户密码
+ 用户名: sbaadmin
+ 密码: nimdaabs
+
+
+* 依赖服务 - 文件服务设置
+
+ Minio外网地址: `http://authx-minio.paas.<school>.edu.cn` ,请设置为 minio 的外网地址
+
+* 依赖服务 - 认证设置
+
+ CAS认证地址: `http://cas.paas.<school>.edu.cn/cas` ,请设置为 cas 认证的外网地址
+
+* 依赖服务 - POA 设置
+
+ POA网关地址: `http://poa.paas.<school>.edu.cn` ,请设置为 poa 网关的外网地址
+ POA SA地址: `http://poa-sa.paas.<school>.edu.cn` ,请设置为 poa-sa 管理接口的地址(也可使用 k8s 内部地址)
+
+* 依赖服务 - CAS SERVER
+
+ CAS内部地址: `http://cas-server-webapp.cas-server.svc.cluster.local:8080/cas` ,固定值,若 cas-server 的命名空间有调整,请修改
+ CAS SA API内部地址: `http://cas-server-sa.cas-server.svc.cluster.local:8080` ,固定值,若 cas-server 的命名空间有调整,请修改
+
+* 依赖服务 - AGENT SERVICE
+
+ Agent Service API内部地址: `http://agent-service.agent-service.svc.cluster.local:8080` ,固定值,若 agent-service 的命名空间有调整,请修改
+
+ Agent Service 文件上传路径: `/api/v1/tpas/file/minio` ,一般不用修改
+ Agent Service 邮件发送路径: `/api/v1/tpas/mail/smtp` ,一般不用修改
+ Agent Service 短信发送路径: `/api/v1/tpas/sms/aliyun` , 若不使用阿里云短信服务,须修改
+
+
+* 用户服务 - MYSQL数据库配置
+
+ 用户名: `user` ,固定值
+ 密码: <请填写创建的数据库用户的密码>
+ 数据库名: `user` ,固定值
+
+* 授权服务 - MYSQL数据库配置
+
+ 用户名: `user_authz` ,固定值
+ 密码: <请填写创建的数据库用户的密码>
+ 数据库名: `user_authz` ,固定值
+
+* 安全中心 - 域名配置
+
+ 域名: `security-center.paas.<school>.edu.cn` ,请修改为实际的学校域名
#### jobs-server
+命名空间: jobs-server
+
+* 外部RABBITMQ - 连接配置
+
+ 外部RabbitMQ host: `authx-service-rabbitmq.authx-service.svc.cluster.local` ,连接 authx-service 的rabbitmq, 若 authx-service 的命名空间有调整,请修改
+ 外部RabbitMQ port: 5672
+
+* RABBITMQ配置 - 安全配置
+
+ 用户名: guest
+ 密码: guest
+
+* 用户数据 - 数据源配置
+
+ JDBC URL: `jdbc:mysql://authx-service-mysql-server.authx-service.svc.cluster.local:3306/user?serverTimezone=Asia/Shanghai` ,连接 authx-service 的mysql,若 authx-service 的命名空间有调整,请修改
+ JDBC用户名: user
+ JDBC密码: <请填写创建的数据库用户的密码>
+
+* 用户数据 - API设置
+
+ GOA API地址: `http://authx-service-user-data-service-goa.authx-service.svc.cluster.local:8080` ,固定值,若 authx-service 的命名空间有调整,请修改
#### cas-server
+命名空间: cas-server
+
+* 外部MYSQL-连接配置
+ 外部MySQL host: <请填写数据库服务的IP地址>
+ 外部MySQL port: <请填写数据库服务的端口>
+
+* REDIS配置 - 安全配置
+ Redis密码: `OEt1d29zbE9pdXc3SA==`
+
+ Default Storage Class: <请选择存储类>
+
+* RABBITMQ配置 - 安全配置
+ 用户名: guest
+ 密码: guest
+
+
+* 依赖服务 - 用户服务
+
+ 用户数据API内部地址: `http://authx-service-user-data-service-goa.authx-service.svc.cluster.local:8080` ,固定值,若 authx-service 的命名空间有调整,请修改
+
+* 依赖服务 - 授权服务
+
+ 用户授权API内部地址: `http://authx-service-user-authz-service-sa.authx-service.svc.cluster.local:8080` ,固定值,若 authx-service 的命名空间有调整,请修改
+
+* 依赖服务 - AGENT SERVICE
+
+ Agent Service 内部地址: `http://agent-service.agent-service.svc.cluster.local:8080` ,固定值,若 agent-service 的命名空间有调整,请修改
+
+ Agent Service文件服务API路径: `/api/v1/tpas/file/minio` ,一般不用修改
+ Agent Service短信发送API路径: `/api/v1/tpas/sms/aliyun/send` , 若不使用阿里云短信服务,须修改
+
+* 依赖服务 - TOKEN SERVER
+
+ Token Server 内部地址: `http://token-server.token-server.svc.cluster.local:8080` ,固定值,若 token-server 的命名空间有调整,请修改
+
+
+* CAS 认证 - MYSQL数据库配置
+ 用户名: `cas_server` ,固定值
+ 密码: <请填写创建的数据库用户的密码>
+ 数据库名: `cas_server` ,固定值
+
+* SCHEME设置 - 持久卷
+
+ Default Storage Class: <请选择存储类>
+
+* WEBAPP设置-域名配置
+
+ 域名: `cas.paas.<school>.edu.cn` ,请修改为实际的学校域名
+
+* WEBAPP设置-图片验证码
+
+ 启用图片验证码: 是 or 否
+
+* WEBAPP设置-动态密码
+
+ 动态密码短信标题: 认证中心,固定值
+ 动态密码短信模板: 请修改为合适的短信模板
+
+* WEBAPP设置-JWT
+
+ 参考 certs/jwt/readme.md 生成公私钥pem,修改相关配置(请使用与 token-server 一致的公私钥)
+
+ JWT私钥:
+ JWT公钥:
+
+* DATAX设置-参数配置
+
+ 数据源JdbcUrl: `jdbc:mysql://authx-service-mysql-server.authx-service.svc.cluster.local:3306/user?serverTimezone=Asia/Shanghai` ,连接 authx-service 的mysql,若 authx-service 的命名空间有调整,请修改
+ 数据源用户名: user
+ 数据源密码: <请填写创建的数据库用户的密码>
#### token-server
+命名空间: token-server
+
+* 外部MYSQL-连接配置
+ 外部MySQL host: <请填写数据库服务的IP地址>
+ 外部MySQL port: <请填写数据库服务的端口>
+
+* REDIS配置 - 安全配置
+ Redis密码: `OEt1d29zbE9pdXc3SA==`
+
+ Default Storage Class: <请选择存储类>
+* 依赖服务 - 用户服务
+ 用户数据API内部地址: `http://authx-service-user-data-service-goa.authx-service.svc.cluster.local:8080` ,固定值,若 authx-service 的命名空间有调整,请修改
+
+* 依赖服务 - AGENT SERVICE
+
+ Agent Service 内部地址: `http://agent-service.agent-service.svc.cluster.local:8080` ,固定值,若 agent-service 的命名空间有调整,请修改
+
+ Agent Service短信发送API路径: `/api/v1/tpas/sms/aliyun/send` , 若不使用阿里云短信服务,须修改
+
+* 依赖服务 - CAS SERVER
+
+ CAS SA API内部地址: `http://cas-server-sa.cas-server.svc.cluster.local:8080` ,固定值,若 cas-server 的命名空间有调整,请修改
+
+
+* TOKEN SERVER - MYSQL数据库配置
+ 用户名: `token_server` ,固定值
+ 密码: <请填写创建的数据库用户的密码>
+ 数据库名: `token_server` ,固定值
+
+* TOKEN SERVER设置-域名配置
+
+ 域名: `token.paas.<school>.edu.cn` ,请修改为实际的学校域名
+
+* TOKEN SERVER设置-动态密码
+
+ 动态密码短信标题: 认证中心,固定值
+ 动态密码短信模板: 请修改为合适的短信模板
+
+* TOKEN SERVER设置-JWT
+
+ 参考 certs/jwt/readme.md 生成公私钥pem,修改相关配置(请使用与 cas-server 一致的公私钥)
+
+ JWT私钥:
+ JWT公钥:
+
+
+* TOKEN SERVER设置-平台OPEN API
+
+ Platform OpenAPI地址: `https://poa.paas.<school>.edu.cn` ,请设置为 poa 网关的外网地址
+ Platform OpenAPI Client Id: 从 POA 进行申请
+ Platform OpenAPI Client Secret: 从 POA 进行申请
+
+* TOKEN SERVER设置-消息服务
+
+ 是否开启消息服务-个推: true or false
+ 消息服务应用ID: 从 消息服务 进行申请
+
+
+* TOKEN SERVER设置-人脸服务配置
+ 可与 新开普人脸平台 或 百度人脸服务 进行对接
+
+ 人脸登录类型: aiface: 新开普人脸, aipface: 百度人脸
+
+ **以下配置从 新开普人脸平台 申请**
+ 新开普人脸登录Url:
+ 新开普人脸登录App Key:
+ 新开普人脸登录App Secret:
+ 新开普人脸登录Secret Key:
+ 新开普人脸登录Term Code:
+
+ **以下配置从 百度开放平台 申请**
+ 百度人脸登录App Id:
+ 百度人脸登录Api Key:
+ 百度人脸登录Secret Key:
diff --git a/deploy-manifests/charts/certs/jwt/jwt_private_key.pem b/deploy-manifests/charts/certs/jwt/jwt_private_key.pem
new file mode 100644
index 0000000..e1c0db0
--- /dev/null
+++ b/deploy-manifests/charts/certs/jwt/jwt_private_key.pem
@@ -0,0 +1,27 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIIEogIBAAKCAQEAyor3CX6A6U4EoSHawtALiJoB0CkJnb/wmVkcVT5EmNupGVrV
+SeJo80ZAxsgd9S1CZVXxTXtJ7XjsqnzR64Qvrn+tdvj9Ck5k/6Tnp6HoKU/AQxA3
+tQ5Zqw6D6ihPOyVV4z4cdK5wjzEBNPhJuTjjzP4VQ4h4VseWNbfhXGK3vSes8oNn
+5Wwor9r1UbEJP/ZMHrDJxAcwe0GPvebAqEp4O5ZcTtWnq+/qkoUB6z/52EnCMlto
+PmuMC+o3fWdICBf4q70oSDClfuhLVi4mRT2K5UUH8fsxEe6oPtkvk9vVCCOZRmo0
+MXpXZiIqdZOtgcBzn/0mzoNd58KxeIy0ginjfwIDAQABAoIBAFbVhx3B54Cemyt9
+uS0mRpuU80wMG/xOqtcDtjrxjDVAj1m4cJLRh48swl62sulHMx0A4IgIYGR4IHbj
+NphTPqIASR0lmE6P14smZs6egksbzuCxlkCAW38TpQiBqZ5A3najTU3U75rkNpFA
+FVNciYV8NR+T5YvG26ZCJFMYW4+zLJnEmUuF2qo9Y4TlqAc7dUmRKR4A2eJvDBDA
+X4y7vv0kACFhnSZsgDXbFN1f3/w5nIEqru6ExWGYhBciak0cglRyZsiKgDgLah5C
+pyXBn3rq8FCLl+TVanWIY/yTPt5PJVw0cqMgtEAA4Z30fObl1fzp1wlQQvBgAbjD
++A2oh8kCgYEA48I7W1W/40Lq9iWLEg0tLGSN0uF/dvYFlOugMgpZ1DW0SFXDeC8o
+Z6fPnf5vfqFVepA340w57hM+01h6/eERXHnHYr3oc8UR3UZUafiIZrQrc7LT4UuX
+9FOv3ufQq8sYMVfoeYw1LLKJM3c9Wy7JwvPlYCjS9o1V6pLi5Bd0aoUCgYEA46hN
+fOlV96Ho+WJZi5qouC1RRVc6V++XTowBXPpHv0j15tdaO5Y9Tja/rfWSnMLz8fY+
+Tj1yWo22hNkMdSl80zykE+OBnaTr4rLTiUEjacdntNCuEp/+27CavvlCexbZkfoi
+b32Ktbltc+bWlSI4eYYcBbSAVt/L6DXIIQl1bzMCgYAFMEaT5RczATJDG0XYym4O
+BdhpRnPV7PLhmqCSo0O6nuKVh0altUVRXzROoB5AH0LIQQLU7cagEtYqkGh04iy4
+E5okOLlT8dhfVxvTMjNBS7d1skw7ZLJ4gXOPO264iy7o6NzF8BjCBOs1PfEq45z7
+EP1XvHZZ4YxkhKYglhwz1QKBgGcDZiTKlMrb6cbG2QwRrJzCbM76nHzj/kxdj9RZ
+sBN/WT3eXocuAYmdvnhh8bibgrUPHrxak58kFt3gNQHjBweynfAd9y21TcOj9ZJa
+9kJMJ8Iq10m4OiOAs1UNBycZfNPQIrreTODUChHy91A+Tt22cIGoXpZw6ByoEWnZ
+lNj/AoGADQW8aQ09UnciVBbisyef3FDwRczp93jRkaP0Xo10gouUqXfTqE8A4enW
+335O6VFi2B/wRSC1vfkS/LoTLfJnU1lYAyqza3WS3VlATbG/PUrfcfycJbnKoG07
+839BtIf2Yhjc8j4YBgAUa5VlWCHUvCi3U2FJLzx7BALcUfpMEwI=
+-----END RSA PRIVATE KEY-----
diff --git a/deploy-manifests/charts/certs/jwt/jwt_private_key_pkcs8.pem b/deploy-manifests/charts/certs/jwt/jwt_private_key_pkcs8.pem
new file mode 100644
index 0000000..4c9e224
--- /dev/null
+++ b/deploy-manifests/charts/certs/jwt/jwt_private_key_pkcs8.pem
@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQDKivcJfoDpTgSh
+IdrC0AuImgHQKQmdv/CZWRxVPkSY26kZWtVJ4mjzRkDGyB31LUJlVfFNe0nteOyq
+fNHrhC+uf612+P0KTmT/pOenoegpT8BDEDe1DlmrDoPqKE87JVXjPhx0rnCPMQE0
++Em5OOPM/hVDiHhWx5Y1t+FcYre9J6zyg2flbCiv2vVRsQk/9kwesMnEBzB7QY+9
+5sCoSng7llxO1aer7+qShQHrP/nYScIyW2g+a4wL6jd9Z0gIF/irvShIMKV+6EtW
+LiZFPYrlRQfx+zER7qg+2S+T29UII5lGajQxeldmIip1k62BwHOf/SbOg13nwrF4
+jLSCKeN/AgMBAAECggEAVtWHHcHngJ6bK325LSZGm5TzTAwb/E6q1wO2OvGMNUCP
+WbhwktGHjyzCXray6UczHQDgiAhgZHggduM2mFM+ogBJHSWYTo/XiyZmzp6CSxvO
+4LGWQIBbfxOlCIGpnkDedqNNTdTvmuQ2kUAVU1yJhXw1H5Pli8bbpkIkUxhbj7Ms
+mcSZS4Xaqj1jhOWoBzt1SZEpHgDZ4m8MEMBfjLu+/SQAIWGdJmyANdsU3V/f/Dmc
+gSqu7oTFYZiEFyJqTRyCVHJmyIqAOAtqHkKnJcGfeurwUIuX5NVqdYhj/JM+3k8l
+XDRyoyC0QADhnfR85uXV/OnXCVBC8GABuMP4DaiHyQKBgQDjwjtbVb/jQur2JYsS
+DS0sZI3S4X929gWU66AyClnUNbRIVcN4Lyhnp8+d/m9+oVV6kDfjTDnuEz7TWHr9
+4RFcecdivehzxRHdRlRp+IhmtCtzstPhS5f0U6/e59CryxgxV+h5jDUssokzdz1b
+LsnC8+VgKNL2jVXqkuLkF3RqhQKBgQDjqE186VX3oej5YlmLmqi4LVFFVzpX75dO
+jAFc+ke/SPXm11o7lj1ONr+t9ZKcwvPx9j5OPXJajbaE2Qx1KXzTPKQT44GdpOvi
+stOJQSNpx2e00K4Sn/7bsJq++UJ7FtmR+iJvfYq1uW1z5taVIjh5hhwFtIBW38vo
+NcghCXVvMwKBgAUwRpPlFzMBMkMbRdjKbg4F2GlGc9Xs8uGaoJKjQ7qe4pWHRqW1
+RVFfNE6gHkAfQshBAtTtxqAS1iqQaHTiLLgTmiQ4uVPx2F9XG9MyM0FLt3WyTDtk
+sniBc487briLLujo3MXwGMIE6zU98SrjnPsQ/Ve8dlnhjGSEpiCWHDPVAoGAZwNm
+JMqUytvpxsbZDBGsnMJszvqcfOP+TF2P1FmwE39ZPd5ehy4BiZ2+eGHxuJuCtQ8e
+vFqTnyQW3eA1AeMHB7Kd8B33LbVNw6P1klr2QkwnwirXSbg6I4CzVQ0HJxl809Ai
+ut5M4NQKEfL3UD5O3bZwgahelnDoHKgRadmU2P8CgYANBbxpDT1SdyJUFuKzJ5/c
+UPBFzOn3eNGRo/RejXSCi5Spd9OoTwDh6dbffk7pUWLYH/BFILW9+RL8uhMt8mdT
+WVgDKrNrdZLdWUBNsb89St9x/JwlucqgbTvzf0G0h/ZiGNzyPhgGABRrlWVYIdS8
+KLdTYUkvPHsEAtxR+kwTAg==
+-----END PRIVATE KEY-----
diff --git a/deploy-manifests/charts/certs/jwt/jwt_public_key.pem b/deploy-manifests/charts/certs/jwt/jwt_public_key.pem
new file mode 100644
index 0000000..7523d69
--- /dev/null
+++ b/deploy-manifests/charts/certs/jwt/jwt_public_key.pem
@@ -0,0 +1,9 @@
+-----BEGIN PUBLIC KEY-----
+MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAyor3CX6A6U4EoSHawtAL
+iJoB0CkJnb/wmVkcVT5EmNupGVrVSeJo80ZAxsgd9S1CZVXxTXtJ7XjsqnzR64Qv
+rn+tdvj9Ck5k/6Tnp6HoKU/AQxA3tQ5Zqw6D6ihPOyVV4z4cdK5wjzEBNPhJuTjj
+zP4VQ4h4VseWNbfhXGK3vSes8oNn5Wwor9r1UbEJP/ZMHrDJxAcwe0GPvebAqEp4
+O5ZcTtWnq+/qkoUB6z/52EnCMltoPmuMC+o3fWdICBf4q70oSDClfuhLVi4mRT2K
+5UUH8fsxEe6oPtkvk9vVCCOZRmo0MXpXZiIqdZOtgcBzn/0mzoNd58KxeIy0ginj
+fwIDAQAB
+-----END PUBLIC KEY-----
diff --git a/deploy-manifests/charts/certs/jwt/readme.md b/deploy-manifests/charts/certs/jwt/readme.md
new file mode 100644
index 0000000..81ac267
--- /dev/null
+++ b/deploy-manifests/charts/certs/jwt/readme.md
@@ -0,0 +1,98 @@
+# readme.md
+
+
+## 使用 openssl 生成 公私钥
+
+
+1. 生成私钥 App Private Key
+
+必须为 RSA2(SHA256)
+
+```bash
+openssl genrsa -out jwt_private_key.pem 2048
+```
+
+2. 将私钥转换为 PKCS8 格式
+
+```bash
+openssl pkcs8 -topk8 -inform PEM -in jwt_private_key.pem -outform PEM -nocrypt -out jwt_private_key_pkcs8.pem
+```
+
+3. 导出公钥 App Public Key
+
+```bash
+openssl rsa -in jwt_private_key.pem -pubout -out jwt_public_key.pem
+```
+
+4. 将 jwt_public_key.pem 中的内容,去除换行和空格,转成字符串。
+
+处理前:
+```language
+-----BEGIN PUBLIC KEY-----
+MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAwow0APEh9F91vvtAzl7V
+FmXRAOGhlo+22KX+rqC3ziGg4+yIk8evAL1T97XEuK1huqcAp+p4PIG2t/Rb3FBD
++vVJGoXKsyLCMUmT4Sy5/TRhb3TM0CHefvMZTSMwcVzKT07DtxyGgFZj9WsUYZWr
+BUPcu0vD6s7m5Qe3qFJJWVeRX8NDnVAxySzrz4bI4+1qvtyey/uap3I6txxRxUlI
+aMyTsD8pl63u14dD2FHRM6JY3tmdEpBEMWI91qmYbl9HkH/D6Xtumg0Hmzh06bdr
+lO3YNscpr6iN2ug6yGNtAh4/ug4P4ZV9nxImcj8l8Pt3jio1O0IIpf4MUCMD+C7P
+rQIDAQAB
+-----END PUBLIC KEY-----
+```
+处理后:
+```language
+-----BEGIN PUBLIC KEY-----
+MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAwow0APEh9F91vvtAzl7VFmXRAOGhlo+22KX+rqC3ziGg4+yIk8evAL1T97XEuK1huqcAp+p4PIG2t/Rb3FBD+vVJGoXKsyLCMUmT4Sy5/TRhb3TM0CHefvMZTSMwcVzKT07DtxyGgFZj9WsUYZWrBUPcu0vD6s7m5Qe3qFJJWVeRX8NDnVAxySzrz4bI4+1qvtyey/uap3I6txxRxUlIaMyTsD8pl63u14dD2FHRM6JY3tmdEpBEMWI91qmYbl9HkH/D6Xtumg0Hmzh06bdrlO3YNscpr6iN2ug6yGNtAh4/ug4P4ZV9nxImcj8l8Pt3jio1O0IIpf4MUCMD+C7PrQIDAQAB
+-----END PUBLIC KEY-----
+```
+
+4. 将 jwt_private_key_pkcs8.pem 中的内容,去除换行和空格,转成字符串。
+
+处理前:
+```language
+-----BEGIN PRIVATE KEY-----
+MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQDCjDQA8SH0X3W+
++0DOXtUWZdEA4aGWj7bYpf6uoLfOIaDj7IiTx68AvVP3tcS4rWG6pwCn6ng8gba3
+9FvcUEP69UkahcqzIsIxSZPhLLn9NGFvdMzQId5+8xlNIzBxXMpPTsO3HIaAVmP1
+axRhlasFQ9y7S8PqzublB7eoUklZV5Ffw0OdUDHJLOvPhsjj7Wq+3J7L+5qncjq3
+HFHFSUhozJOwPymXre7Xh0PYUdEzolje2Z0SkEQxYj3WqZhuX0eQf8Ppe26aDQeb
+OHTpt2uU7dg2xymvqI3a6DrIY20CHj+6Dg/hlX2fEiZyPyXw+3eOKjU7Qgil/gxQ
+IwP4Ls+tAgMBAAECggEAaQOlTpza5z5gIKcfZEZsX5q2JvOkddE9sdRolXrLvMkK
+P/39+0def9ey65OCjO2KQ2bCQ+Gc5YxfRQzySQpKp7yfqWFu+SNaD6DX4kRyYOtV
+bQRvSin+ICi5D5pfG9IqooSxwLX1JHF9o4wZhFN17XGkRLWxG55zpE12JbXFQiPB
+pck6hcMfx+r5wk7t4ret/8P/MDcyrPuUavJemd4D2jRrD7AmOGJDvElioFcOKA+V
+S8oe/uBdpU8cbYJvct68fHOzG9IW3hdqYV18fhNtWqp9WeuUP+F2UMmOXbAtZ106
+Zcd+V/jsse2G9KvGzmDA61ZGxzHUjt+JNIpN+V2HQQKBgQDkfYb8vIMc2yV0CM30
+mAaPIapgpw8brYS8v+azQR/jjsuHFJ1CQJAih79y2gwdjKbDl0XByjj/qiHLTPcu
+6dkuavdsV9MrlFfVqAXUMNDHrWEn5nMahlq3UZbflBqlavTr0gvEA8Da+ZXcRvWg
+TP5+g5RFrKHJVOyQ+GzgDggQawKBgQDZ+IDRthf0UHvvZsoUbeb37Wut9jdjRgLJ
+S1X4RtH+NPN23lvtTKJmUNfrFxiOfeVBfCXmGep0ibTqDVo0zBeHSu4BFM3BsICu
+7xafmLafZxZqHcgWuF9keOCWjKN5fzub5xGqd2yge9hGN2zA2U9qp4mltGzeoZ/0
+TuLuR59GRwKBgCGga7ZUVANyKQ/rn8vod8am0LlKvMl4/vj8UQp+gh/uSvvFR+OR
+NuUuDznq5y+OHJjacXS0uzC9LB4MZLBtz/2p1mIGhth6C3cxNDJnQMKyPIMvwi7c
+KQujoU2kMUu48vSlw/+EAeT4KFrzwoBl9GpQGQkr/99udSZcuUE8L2mjAoGAPRLn
+LVuDTL58a3D2sFC3BcLth/nUPSmxwCsutHlLf5ngme7l/RCa9GY0ibeX9t0JrpaV
+m+qpCexH18jT/LUu5oa1N3JX0Kye8eUmBqPoj7N30VX06YDRobpI24Yei/19e0p8
+ZbI+qpzo1YvUGhkJqo21AMwUMTFCO1cbOL6yvyMCgYAHUNBLhSOaIZpvbmyh5uz5
+Va/IIYU5nJcVAan8ExzdVBqeiDqlIDsUt/4xoV2sWOK1lDmL1QYeOOTOHdVcSUyN
+ZpvB3b/9RZ1bNQZA1trBBxjY7dXNwZZp0ah/bmO+i4dPXl+bU2mUqdyb1emFwcj0
+uNGn7GMQXLxalpCkz4SXRg==
+-----END PRIVATE KEY-----
+```
+处理后:
+```language
+-----BEGIN PRIVATE KEY-----
+MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQDCjDQA8SH0X3W++0DOXtUWZdEA4aGWj7bYpf6uoLfOIaDj7IiTx68AvVP3tcS4rWG6pwCn6ng8gba39FvcUEP69UkahcqzIsIxSZPhLLn9NGFvdMzQId5+8xlNIzBxXMpPTsO3HIaAVmP1axRhlasFQ9y7S8PqzublB7eoUklZV5Ffw0OdUDHJLOvPhsjj7Wq+3J7L+5qncjq3HFHFSUhozJOwPymXre7Xh0PYUdEzolje2Z0SkEQxYj3WqZhuX0eQf8Ppe26aDQebOHTpt2uU7dg2xymvqI3a6DrIY20CHj+6Dg/hlX2fEiZyPyXw+3eOKjU7Qgil/gxQIwP4Ls+tAgMBAAECggEAaQOlTpza5z5gIKcfZEZsX5q2JvOkddE9sdRolXrLvMkKP/39+0def9ey65OCjO2KQ2bCQ+Gc5YxfRQzySQpKp7yfqWFu+SNaD6DX4kRyYOtVbQRvSin+ICi5D5pfG9IqooSxwLX1JHF9o4wZhFN17XGkRLWxG55zpE12JbXFQiPBpck6hcMfx+r5wk7t4ret/8P/MDcyrPuUavJemd4D2jRrD7AmOGJDvElioFcOKA+VS8oe/uBdpU8cbYJvct68fHOzG9IW3hdqYV18fhNtWqp9WeuUP+F2UMmOXbAtZ106Zcd+V/jsse2G9KvGzmDA61ZGxzHUjt+JNIpN+V2HQQKBgQDkfYb8vIMc2yV0CM30mAaPIapgpw8brYS8v+azQR/jjsuHFJ1CQJAih79y2gwdjKbDl0XByjj/qiHLTPcu6dkuavdsV9MrlFfVqAXUMNDHrWEn5nMahlq3UZbflBqlavTr0gvEA8Da+ZXcRvWgTP5+g5RFrKHJVOyQ+GzgDggQawKBgQDZ+IDRthf0UHvvZsoUbeb37Wut9jdjRgLJS1X4RtH+NPN23lvtTKJmUNfrFxiOfeVBfCXmGep0ibTqDVo0zBeHSu4BFM3BsICu7xafmLafZxZqHcgWuF9keOCWjKN5fzub5xGqd2yge9hGN2zA2U9qp4mltGzeoZ/0TuLuR59GRwKBgCGga7ZUVANyKQ/rn8vod8am0LlKvMl4/vj8UQp+gh/uSvvFR+ORNuUuDznq5y+OHJjacXS0uzC9LB4MZLBtz/2p1mIGhth6C3cxNDJnQMKyPIMvwi7cKQujoU2kMUu48vSlw/+EAeT4KFrzwoBl9GpQGQkr/99udSZcuUE8L2mjAoGAPRLnLVuDTL58a3D2sFC3BcLth/nUPSmxwCsutHlLf5ngme7l/RCa9GY0ibeX9t0JrpaVm+qpCexH18jT/LUu5oa1N3JX0Kye8eUmBqPoj7N30VX06YDRobpI24Yei/19e0p8ZbI+qpzo1YvUGhkJqo21AMwUMTFCO1cbOL6yvyMCgYAHUNBLhSOaIZpvbmyh5uz5Va/IIYU5nJcVAan8ExzdVBqeiDqlIDsUt/4xoV2sWOK1lDmL1QYeOOTOHdVcSUyNZpvB3b/9RZ1bNQZA1trBBxjY7dXNwZZp0ah/bmO+i4dPXl+bU2mUqdyb1emFwcj0uNGn7GMQXLxalpCkz4SXRg==
+-----END PRIVATE KEY-----
+```
+
+
+5. (可选)将pem内容进行 base64 编码后,配置到k8s
+
+echo -n '-----BEGIN PUBLIC KEY-----
+MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAwow0APEh9F91vvtAzl7VFmXRAOGhlo+22KX+rqC3ziGg4+yIk8evAL1T97XEuK1huqcAp+p4PIG2t/Rb3FBD+vVJGoXKsyLCMUmT4Sy5/TRhb3TM0CHefvMZTSMwcVzKT07DtxyGgFZj9WsUYZWrBUPcu0vD6s7m5Qe3qFJJWVeRX8NDnVAxySzrz4bI4+1qvtyey/uap3I6txxRxUlIaMyTsD8pl63u14dD2FHRM6JY3tmdEpBEMWI91qmYbl9HkH/D6Xtumg0Hmzh06bdrlO3YNscpr6iN2ug6yGNtAh4/ug4P4ZV9nxImcj8l8Pt3jio1O0IIpf4MUCMD+C7PrQIDAQAB
+-----END PUBLIC KEY-----' |base64
+
+
+echo -n '-----BEGIN PRIVATE KEY-----
+MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQDCjDQA8SH0X3W++0DOXtUWZdEA4aGWj7bYpf6uoLfOIaDj7IiTx68AvVP3tcS4rWG6pwCn6ng8gba39FvcUEP69UkahcqzIsIxSZPhLLn9NGFvdMzQId5+8xlNIzBxXMpPTsO3HIaAVmP1axRhlasFQ9y7S8PqzublB7eoUklZV5Ffw0OdUDHJLOvPhsjj7Wq+3J7L+5qncjq3HFHFSUhozJOwPymXre7Xh0PYUdEzolje2Z0SkEQxYj3WqZhuX0eQf8Ppe26aDQebOHTpt2uU7dg2xymvqI3a6DrIY20CHj+6Dg/hlX2fEiZyPyXw+3eOKjU7Qgil/gxQIwP4Ls+tAgMBAAECggEAaQOlTpza5z5gIKcfZEZsX5q2JvOkddE9sdRolXrLvMkKP/39+0def9ey65OCjO2KQ2bCQ+Gc5YxfRQzySQpKp7yfqWFu+SNaD6DX4kRyYOtVbQRvSin+ICi5D5pfG9IqooSxwLX1JHF9o4wZhFN17XGkRLWxG55zpE12JbXFQiPBpck6hcMfx+r5wk7t4ret/8P/MDcyrPuUavJemd4D2jRrD7AmOGJDvElioFcOKA+VS8oe/uBdpU8cbYJvct68fHOzG9IW3hdqYV18fhNtWqp9WeuUP+F2UMmOXbAtZ106Zcd+V/jsse2G9KvGzmDA61ZGxzHUjt+JNIpN+V2HQQKBgQDkfYb8vIMc2yV0CM30mAaPIapgpw8brYS8v+azQR/jjsuHFJ1CQJAih79y2gwdjKbDl0XByjj/qiHLTPcu6dkuavdsV9MrlFfVqAXUMNDHrWEn5nMahlq3UZbflBqlavTr0gvEA8Da+ZXcRvWgTP5+g5RFrKHJVOyQ+GzgDggQawKBgQDZ+IDRthf0UHvvZsoUbeb37Wut9jdjRgLJS1X4RtH+NPN23lvtTKJmUNfrFxiOfeVBfCXmGep0ibTqDVo0zBeHSu4BFM3BsICu7xafmLafZxZqHcgWuF9keOCWjKN5fzub5xGqd2yge9hGN2zA2U9qp4mltGzeoZ/0TuLuR59GRwKBgCGga7ZUVANyKQ/rn8vod8am0LlKvMl4/vj8UQp+gh/uSvvFR+ORNuUuDznq5y+OHJjacXS0uzC9LB4MZLBtz/2p1mIGhth6C3cxNDJnQMKyPIMvwi7cKQujoU2kMUu48vSlw/+EAeT4KFrzwoBl9GpQGQkr/99udSZcuUE8L2mjAoGAPRLnLVuDTL58a3D2sFC3BcLth/nUPSmxwCsutHlLf5ngme7l/RCa9GY0ibeX9t0JrpaVm+qpCexH18jT/LUu5oa1N3JX0Kye8eUmBqPoj7N30VX06YDRobpI24Yei/19e0p8ZbI+qpzo1YvUGhkJqo21AMwUMTFCO1cbOL6yvyMCgYAHUNBLhSOaIZpvbmyh5uz5Va/IIYU5nJcVAan8ExzdVBqeiDqlIDsUt/4xoV2sWOK1lDmL1QYeOOTOHdVcSUyNZpvB3b/9RZ1bNQZA1trBBxjY7dXNwZZp0ah/bmO+i4dPXl+bU2mUqdyb1emFwcj0uNGn7GMQXLxalpCkz4SXRg==
+-----END PRIVATE KEY-----' |base64